"""Accounting Run model tests.""" from datetime import datetime from royalties.constants import constants from royalties.models.accounting_run import AccountingRun from royalties.tests.utils.factories import ( AccountingPeriodFactory, AccountingRunFactory, RunControllerFactory, ) run_start_time = datetime(2019, 11, 22, 4, 59) def test_build(test_app_request): """Test building an accounting run object.""" run_controller = RunControllerFactory.create() new_acct_run = AccountingRun.build(run_controller=run_controller) assert new_acct_run.accounting_run_id is None assert new_acct_run.run_controller == run_controller assert new_acct_run.run_status is None def test_create(test_app_request): """Test creating an accounting run.""" accounting_period = AccountingPeriodFactory.create() run_controller = RunControllerFactory.create() new_acct_run = AccountingRun.create( accounting_period=accounting_period, run_controller=run_controller ) assert new_acct_run.accounting_run_id is not None assert new_acct_run.accounting_period == accounting_period assert new_acct_run.run_controller == run_controller assert new_acct_run.run_status == constants.ACCOUNTING_RUN_STATUSES.NO_ACTION_TAKEN assert new_acct_run.end_date is None def test_to_get_accounting_runs_by_period_id(test_app_request): """Test to get an accounting runs.""" accounting_period = AccountingPeriodFactory.create() run_controller_1 = RunControllerFactory.create(run_controller_name='Priority 1') run_controller_2 = RunControllerFactory.create(run_controller_name='Priority 2') accounting_run_1 = AccountingRunFactory.create( accounting_period=accounting_period, run_controller=run_controller_1 ) accounting_run_2 = AccountingRunFactory.create( accounting_period=accounting_period, run_controller=run_controller_2 ) page_one_with_two_items = AccountingRun.get_page( accounting_period.accounting_period_id ).all() assert page_one_with_two_items == [accounting_run_1, accounting_run_2] def test_get_accounting_runs_by_period_and_run_controller_id(test_app_request): """Test to get accounting runs by accounting_period and run_controller id.""" accounting_period_1 = AccountingPeriodFactory.create() accounting_period_2 = AccountingPeriodFactory.create() run_controller_1 = RunControllerFactory.create(run_controller_name='Priority 1') run_controller_2 = RunControllerFactory.create(run_controller_name='Priority 2') accounting_run_1 = AccountingRunFactory.create( accounting_period=accounting_period_1, run_controller=run_controller_1 ) AccountingRunFactory.create( accounting_period=accounting_period_1, run_controller=run_controller_2 ) AccountingRunFactory.create( accounting_period=accounting_period_2, run_controller=run_controller_2 ) result = AccountingRun.get_by_accounting_period_and_run_controller( accounting_period_1.accounting_period_id, run_controller_1.run_controller_id ) assert result == [accounting_run_1]