"""Unit Tests for contract_party model.""" from abacus_contract.constants.constants import CONTRACT_PARTY_TARGET_TYPES from abacus_contract.models.contract_party import ContractParty from tests.utils.factories import ContractFactory from tests.utils.factories import ContractPartyFactory def test_create_contract_party(): """Test to create contract_party record.""" mock_contract = ContractFactory.create() mock_contract_party = ContractParty.create( contract_id=mock_contract.contract_id, target_id='1ec7c1bf-2318-4052-9406-a3e35a620bd3', target_type=CONTRACT_PARTY_TARGET_TYPES.CONTRIBUTOR ) result = ContractParty.query.all() assert len(result) == 1 assert result[0] == mock_contract_party def test_get_contract_party(): """Test to get contract_party record.""" mock_contract = ContractFactory.create() mock_contract_party = ContractPartyFactory(contract=mock_contract) contract_id = mock_contract.contract_id target_id = mock_contract_party.target_id target_type = CONTRACT_PARTY_TARGET_TYPES.CONTRIBUTOR result = ContractParty.get_contract_party( contract_id, target_id, target_type ) assert result.contract_id == contract_id assert result.target_type == target_type assert result.deleted_by is None assert result.deleted_at is None def test_get_by_contract_id_and_target_type(): """Test to get contract parties by contract_id and target_type.""" mock_contract = ContractFactory.create() target_ids = [ '8941b2f5-f0d9-49b1-bfa7-186b684299b1', '2a2aee19-7c67-423a-a7c6-420c246f6f9f' ] [ContractPartyFactory.create( contract=mock_contract, target_id=target_id ) for target_id in target_ids] ContractPartyFactory( contract=mock_contract, deleted_by='Testing' ) contract_id = mock_contract.contract_id target_type = CONTRACT_PARTY_TARGET_TYPES.CONTRIBUTOR items, total_count = ContractParty.get_by_contract_id( contract_id, 3, 0, target_type ) assert len(items) == 2 assert total_count == 2 assert all([(item.target_id in target_ids) for item in items]) def test_get_by_contract_id(): """Test to get contract parties by contract_id.""" mock_contract = ContractFactory.create() ContractPartyFactory.create( contract=mock_contract, target_id='8941b2f5-f0d9-49b1-bfa7-186b684299b1' ) ContractPartyFactory.create( contract=mock_contract, target_id='784739', target_type=CONTRACT_PARTY_TARGET_TYPES.LABEL ) ContractPartyFactory( contract=mock_contract, deleted_by='Testing' ) target_types = [ CONTRACT_PARTY_TARGET_TYPES.CONTRIBUTOR, CONTRACT_PARTY_TARGET_TYPES.LABEL ] target_ids = [ '8941b2f5-f0d9-49b1-bfa7-186b684299b1', '784739' ] contract_id = mock_contract.contract_id items, total_count = ContractParty.get_by_contract_id( contract_id, 3, 0 ) assert len(items) == 2 assert total_count == 2 assert all([(item.target_type in target_types) for item in items]) assert all([(item.target_id in target_ids) for item in items])