import pytest from pydantic import ValidationError from setra_client.models import Batch, Voucher, Transaction def test_batch(batch_fixture): assert Batch(**batch_fixture) def test_voucher(voucher_fixture): assert Voucher(**voucher_fixture) def test_voucher_has_transactions(voucher_fixture): voucher = Voucher(**voucher_fixture) assert len(voucher.transactions) == 2 assert voucher.transactions.__getitem__(0).amount == 1 assert voucher.transactions.__getitem__(1).amount == 2 def test_transaction(trans_fixture): assert Transaction(**trans_fixture) def test_transaction_fail(trans_fail_fixture): # Check missing required field fails with pytest.raises(ValidationError): Transaction(**trans_fail_fixture) def test_batch_with_voucher(batch_with_voucher_fixture): assert Batch(**batch_with_voucher_fixture) def test_batch_fail(batch_fail_fixture): # Using wrong data format, should fail: with pytest.raises(ValidationError): Batch(**batch_fail_fixture)