import pytest as pytest from db import db import pytest from models import models, Project from tests import BaseTestCase from tests.test_utils import FixtureLoader from tests.workers.fixtures.prs_projects_worker_fixture import fixture from workers.prs.prs_projects_worker import PRSProjectsWorker from workers.prs.prs_purchase_orders_worker import PRSPurchaseOrdersWorker class PRSProjectsTestCase(BaseTestCase): def setUp(self): super().setUp() FixtureLoader(models=models).import_as_sql(fixture) @staticmethod def __get_prs_projects(): return db.session.query(Project).filter(Project.source == 'PRS').all() @staticmethod def __get_project(project_id): return db.session.query(Project).filter(Project.id == project_id).first() def test_project_import_existed_data_should_not_update_at(self): PRSProjectsWorker().execute() projects_after_first_import = self.__get_prs_projects() PRSProjectsWorker().execute() projects_after_second_import = self.__get_prs_projects() self.soft_assert_equal(len(projects_after_first_import) > 1, True) self.soft_assert_equal(len(projects_after_second_import) > 1, True) self.soft_assert_equal( [p.last_edit_at for p in projects_after_first_import], [p.last_edit_at for p in projects_after_second_import] ) self.assert_all() @pytest.mark.skip(reason="Temporary disabled") def test_prs_purchase_order_import_trigger_project_updated_at(self): projects_before_first_import = self.__get_prs_projects() PRSPurchaseOrdersWorker().execute() projects_after_first_import = self.__get_prs_projects() self.soft_assert(self.assertNotEqual, [p.last_edit_at for p in projects_before_first_import], [p.last_edit_at for p in projects_after_first_import] ) PRSPurchaseOrdersWorker().execute() projects_after_second_import = self.__get_prs_projects() self.soft_assert_equal( [p.last_edit_at for p in projects_after_first_import], [p.last_edit_at for p in projects_after_second_import] ) self.assert_all()