"""Contract Term Condition model tests.""" from datetime import datetime from abacus_contract.models.contract_term_condition import ContractTermCondition from tests.utils.factories import ContractTermConditionFactory, ContractTermFactory def test_get_active_term_conditions(): """Test get active term conditions.""" contract_term = ContractTermFactory.create() contract_term_conditions = ContractTermConditionFactory.create_batch( 3, contract_term=contract_term ) contract_term_conditions[0].deleted_at = datetime.today() contract_term_conditions[0].deleted_by = 'someone' active_conditions = ContractTermCondition.get_active_term_conditions( contract_term.contract_term_id ).all() assert len(active_conditions) == len(contract_term_conditions) - 1 for active_condition in active_conditions: assert not active_condition.deleted_at assert not active_condition.deleted_by def test_get_active_term_conditions_with_order_by(): """Test get active term conditions are returned ordered by priority.""" contract_term = ContractTermFactory.create() contract_term_conditions = [ ContractTermConditionFactory.create( contract_term=contract_term, priority=priority ) for priority in [3, 2, 1] ] active_conditions = ContractTermCondition.get_active_term_conditions_with_order_by( contract_term.contract_term_id ) assert len(active_conditions) == len(contract_term_conditions) assert active_conditions[0].priority == 1 assert active_conditions[1].priority == 2 assert active_conditions[2].priority == 3 assert active_conditions[0] == contract_term_conditions[2] assert active_conditions[1] == contract_term_conditions[1] assert active_conditions[2] == contract_term_conditions[0] def test_get_all_by_id(): """Test getting all active contract_term_conditions by their IDs.""" contract_term_conditions = ContractTermConditionFactory.create_batch(3) contract_term_condition_ids = [ condition.contract_term_condition_id for condition in contract_term_conditions ] active_conditions = ContractTermCondition.get_all_by_id(contract_term_condition_ids) assert len(active_conditions) == len(contract_term_conditions) contract_term_conditions[0].deleted_at = datetime.today() contract_term_conditions[0].deleted_by = 'no one' active_conditions = ContractTermCondition.get_all_by_id(contract_term_condition_ids) assert len(active_conditions) == len(contract_term_conditions) - 1