"""Tests for product_contributor MySQL queries.""" from datetime import datetime from contributor.queries.mysql.product_contributor import ProductContributor class TestProductContributorModel: def test_model_has_correct_tablename(self) -> None: assert ProductContributor.__tablename__ == "product_contributors" def test_model_instantiation_with_all_fields(self) -> None: created_at = datetime.now() updated_at = datetime.now() product_contributor = ProductContributor( id=1, product_id=100, contributor_id=50, contributor_role_id=10, sequence_number=1, created_at=created_at, updated_at=updated_at, ) assert product_contributor.id == 1 assert product_contributor.product_id == 100 assert product_contributor.contributor_id == 50 assert product_contributor.contributor_role_id == 10 assert product_contributor.sequence_number == 1 assert product_contributor.created_at == created_at assert product_contributor.updated_at == updated_at def test_model_instantiation_with_required_fields_only(self) -> None: product_contributor = ProductContributor( product_id=100, contributor_id=50, contributor_role_id=10, created_at=datetime.now(), updated_at=datetime.now(), ) assert product_contributor.product_id == 100 assert product_contributor.contributor_id == 50 assert product_contributor.contributor_role_id == 10 def test_model_instantiation_with_sequence_number(self) -> None: product_contributor = ProductContributor( product_id=100, contributor_id=50, contributor_role_id=10, sequence_number=5, created_at=datetime.now(), updated_at=datetime.now(), ) assert product_contributor.sequence_number == 5 def test_model_has_all_required_attributes(self) -> None: required_fields = [ "id", "product_id", "contributor_id", "contributor_role_id", "sequence_number", "created_at", "updated_at", ] for field in required_fields: assert hasattr(ProductContributor, field)