from datetime import date import testing.postgresql from unittest import TestCase from data.data_provider import DataProvider from data.models import ContactInfo, Head, Location, PhoneNumber, Division, \ Enterprise, Activity class TestDataProvider(TestCase): def setUp(self): self.db = testing.postgresql.Postgresql() self.dp = DataProvider(self.db.url()) self.dp.migrate() def test_create_contact(self): head = Head(None, date(1998, 10, 11), None) loc = Location(None, "Russia", "Orenburg", "Elovaya", "16", "259A", date(2010, 11, 28), None) num = PhoneNumber(None, date(2018, 10, 10), None) cont = ContactInfo(None, "hello@gmail.com", [num], [head], [loc]) self.dp.create_contact_info(cont) print(f"ContactInfo id is {cont.id}") self.assertIsNotNone(cont.id) print(f"Head id is {head.id}") self.assertIsNotNone(head.id) print(f"Location id is {loc.id}") self.assertIsNotNone(loc.id) print(f"PhoneNumber id is {num.id}") self.assertIsNotNone(num.id) def test_create_enterprise(self): head = Head(None, date(1998, 10, 11), None) loc = Location(None, "Russia", "Orenburg", "Elovaya", "16", "259A", date(2010, 11, 28), None) num = PhoneNumber(None, date(2018, 10, 10), None) cont = ContactInfo(None, "hello@gmail.com", [num], [head], [loc]) head_div = Head(None, date(1998, 10, 11), None) loc_div = Location(None, "Russia", "Orenburg", "Elovaya", "16", "259A", date(2010, 11, 28), None) num_div = PhoneNumber(None, date(2018, 10, 10), None) cont_div = ContactInfo(None, "eeeeee", [num_div], [head_div], [loc_div]) div = Division(None, cont_div, []) enterprise = Enterprise(None, [], [div], cont, "hello", "world") self.dp.create_enterprise(enterprise) self.assertIsNotNone(div.id) self.assertIsNotNone(enterprise.id) self.assertIsNotNone(cont.id) def test_create_activity(self): act = Activity(None, "some activity") self.dp.create_activity(act) self.assertIsNotNone(act.id) def test_get_enterprise_activities(self): act = Activity(None, "some activity") self.dp.create_activity(act) head = Head(None, date(1998, 10, 11), None) loc = Location(None, "Russia", "Orenburg", "Elovaya", "16", "259A", date(2010, 11, 28), None) num = PhoneNumber(None, date(2018, 10, 10), None) cont = ContactInfo(None, "hello@gmail.com", [num], [head], [loc]) head_div = Head(None, date(1998, 10, 11), None) loc_div = Location(None, "Russia", "Orenburg", "Elovaya", "16", "259A", date(2010, 11, 28), None) num_div = PhoneNumber(None, date(2018, 10, 10), None) cont_div = ContactInfo(None, "eeeeee", [num_div], [head_div], [loc_div]) div = Division(None, cont_div, [act]) enterprise = Enterprise(None, [act], [div], cont, "hello", "world") self.dp.create_enterprise(enterprise) test_enterprise = self.dp.get_enterprise_by_id(enterprise.id) self.assertGreater(len(test_enterprise.activities), 0) self.assertEqual(test_enterprise.activities[0].name, act.name) self.assertEqual(len(test_enterprise.divisions), 1) self.assertEqual(len(test_enterprise.divisions[0].activities), 1) self.assertEqual(test_enterprise.divisions[0].activities[0].name, act.name) self.assertEqual(len(self.dp.get_enterprises()), 1) def tearDown(self): self.db.stop()