def setUp(self): init_test_db(self.engine) self.session = self.session_maker() self.data_manager = DataManager(self.session, DummyDossier)
class DataManagerTest(unittest.TestCase): @classmethod def setUpClass(cls): config = configparser.ConfigParser() config.read(os.path.join(os.path.dirname(__file__), 'test.ini')) settings = config.items('app:oe_utils') settings = dict((s[0], s[1]) for s in settings) cls.engine = engine_from_config(settings, prefix='sqlalchemy.') cls.session_maker = sessionmaker( bind=cls.engine, extension=ZopeTransactionExtension() ) def setUp(self): init_test_db(self.engine) self.session = self.session_maker() self.data_manager = DataManager(self.session, DummyDossier) def tearDown(self): self.session.close() def test_get_dossier(self): dossier = self.data_manager.get(1) self.assertIsNotNone(dossier) self.assertEqual(1, dossier.id) def test_get_dummy(self): dummy = self.data_manager.get(1, Dummy) self.assertIsNotNone(dummy) self.assertEqual(1, dummy.id) self.assertIsInstance(dummy, Dummy) def test_get_one_unexisting_dossier(self): self.assertRaises(NoResultFound, self.data_manager.get_one, 1112) def test_get_unexisting_dossier(self): res = self.data_manager.get(1112) self.assertIsNone(res) def test_delete_dossier(self): with transaction.manager as manager: self.data_manager.delete(1) manager.commit() self.assertRaises(NoResultFound, self.data_manager.get_one, 1) def test_delete_unexisting_dossier(self): self.assertRaises(NoResultFound, self.data_manager.delete, 11234) def test_save_dossier_new(self): dossier = DummyDossier(id=3) dossier_saved = self.data_manager.save(dossier) self.assertEqual(3, dossier_saved.id) def test_save_dossier_edit(self): dossier = DummyDossier(id=22) dossier.dossierdata = {"test": "blabla"} self.data_manager.save(dossier) self.session.flush() saved_dossier = self.data_manager.get(22) self.assertEqual({"test": "blabla"}, saved_dossier.dossierdata) def test_save_dossier_new_and_edit(self): dossier = DummyDossier(id=3) dossier_saved = self.data_manager.save(dossier) dossier.dossierdata = {"test": "blabla"} dossier_saved = self.data_manager.save(dossier) self.assertEqual(3, dossier_saved.id) def test_process_ranged_query(self): fill_db(self.session) query = self.session.query(DummyDossier) result_range = Range(start=0, end=4) result_dto = self.data_manager.process_ranged_query(query, result_range) self.assertTrue(isinstance(result_dto, ResultDTO)) self.assertEqual(77, result_dto.total) self.assertEqual(5, len(result_dto.data)) def test_process_empty_range_query(self): fill_db(self.session) query = self.session.query(DummyDossier) result_dto = self.data_manager.process_ranged_query(query, None) self.assertTrue(isinstance(result_dto, ResultDTO)) self.assertEqual(77, result_dto.total) self.assertEqual(77, len(result_dto.data)) def test_insert_append_object(self): dossier = DummyDossier(id=66) email = DossierEmail() email.email = '*****@*****.**' dossier.emails.append(email) self.data_manager.save(dossier)