def test_to_dict(self): """Test output of to_dict() method""" org = Organization(name='Example') self.session.add(org) dom1 = Domain(domain='example.com', is_top_domain=True, organization=org) dom2 = Domain(domain='us.example.net', is_top_domain=False, organization=org) self.session.add(dom1) self.session.add(dom2) self.session.commit() # Tests d = org.to_dict() self.assertIsInstance(d, dict) self.assertEqual(d['name'], 'Example') doms = d['domains'] self.assertEqual(len(doms), 2) d0 = doms[0] self.assertEqual(d0['domain'], 'example.com') self.assertEqual(d0['top_domain'], True) self.assertEqual(d0['organization'], 'Example') d1 = doms[1] self.assertEqual(d1['domain'], 'us.example.net') self.assertEqual(d1['top_domain'], False) self.assertEqual(d1['organization'], 'Example')
def test_unique_organizations(self): """Check whether organizations are unique""" with self.assertRaises(IntegrityError): org1 = Organization(name='Example') org2 = Organization(name='Example') self.session.add(org1) self.session.add(org2) self.session.commit()
def test_charset(self): """Check encoding charset""" # With an invalid encoding both names wouldn't be inserted; # In MySQL, chars 'ı' and 'i' are considered the same with a # collation distinct to <charset>_unicode_ci org1 = Organization(name='ıCompany'.encode('utf-8')) org2 = Organization(name='iCompany') self.session.add(org1) self.session.add(org2) self.session.commit()
def test_to_dict(self): """Test output of to_dict() method""" uid = UniqueIdentity(uuid='John Smith') self.session.add(uid) org = Organization(name='Example') self.session.add(org) rol = Enrollment(uidentity=uid, organization=org, start=datetime.datetime(1999, 1, 1, 0, 0, 0), end=datetime.datetime(2001, 1, 1, 0, 0, 0)) self.session.add(rol) self.session.commit() # Tests d = rol.to_dict() self.assertIsInstance(d, dict) self.assertEqual(d['uuid'], 'John Smith') self.assertEqual(d['organization'], 'Example') self.assertEqual(d['start'], datetime.datetime(1999, 1, 1, 0, 0, 0)) self.assertEqual(d['end'], datetime.datetime(2001, 1, 1, 0, 0, 0))
def test_not_null_relationships(self): """Check whether every enrollment is assigned organizations and unique identities""" if sys.version_info[0] >= 3: # Python 3 expected = IntegrityError else: # Python 2 expected = OperationalError with self.assertRaisesRegexp(expected, NULL_CHECK_ERROR): rol1 = Enrollment() self.session.add(rol1) self.session.commit() self.session.rollback() with self.assertRaisesRegexp(expected, NULL_CHECK_ERROR): uid = UniqueIdentity(uuid='John Smith') self.session.add(uid) rol2 = Enrollment(uidentity=uid) self.session.add(rol2) self.session.commit() self.session.rollback() with self.assertRaisesRegexp(expected, NULL_CHECK_ERROR): org = Organization(name='Example') self.session.add(org) rol3 = Enrollment(organization=org) self.session.add(rol3) self.session.commit() self.session.rollback()
def test_not_null_relationships(self): """Check whether every enrollment is assigned organizations and unique identities""" with self.assertRaisesRegex(IntegrityError, NULL_CHECK_ERROR): rol1 = Enrollment() self.session.add(rol1) self.session.commit() self.session.rollback() with self.assertRaisesRegex(IntegrityError, NULL_CHECK_ERROR): uid = UniqueIdentity(uuid='John Smith') self.session.add(uid) rol2 = Enrollment(uidentity=uid) self.session.add(rol2) self.session.commit() self.session.rollback() with self.assertRaisesRegex(IntegrityError, NULL_CHECK_ERROR): org = Organization(name='Example') self.session.add(org) rol3 = Enrollment(organization=org) self.session.add(rol3) self.session.commit() self.session.rollback()
def test_default_enrollment_period(self): """Check whether the default period is set when initializing the class""" uid = UniqueIdentity(uuid='John Smith') self.session.add(uid) org = Organization(name='Example') self.session.add(org) rol1 = Enrollment(uidentity=uid, organization=org) self.session.add(rol1) self.session.commit() self.assertEqual(rol1.start, datetime.datetime(1900, 1, 1, 0, 0, 0)) self.assertEqual(rol1.end, datetime.datetime(2100, 1, 1, 0, 0, 0)) # Setting start and end dates to None produce the same result rol2 = Enrollment(uidentity=uid, organization=org, start=None, end=datetime.datetime(2222, 1, 1, 0, 0, 0)) self.session.add(rol2) self.session.commit() self.assertEqual(rol2.start, datetime.datetime(1900, 1, 1, 0, 0, 0)) self.assertEqual(rol2.end, datetime.datetime(2222, 1, 1, 0, 0, 0)) rol3 = Enrollment(uidentity=uid, organization=org, start=datetime.datetime(1999, 1, 1, 0, 0, 0), end=None) self.session.add(rol3) self.session.commit() self.assertEqual(rol3.start, datetime.datetime(1999, 1, 1, 0, 0, 0)) self.assertEqual(rol3.end, datetime.datetime(2100, 1, 1, 0, 0, 0))
def test_none_name_organizations(self): """Check whether organizations without name can be stored""" with self.assertRaisesRegex(IntegrityError, NULL_CHECK_ERROR): org1 = Organization() self.session.add(org1) self.session.commit()
def test_is_top_domain_invalid_type(self): """Check invalid values on top_domain bool collumn""" with self.assertRaisesRegexp(StatementError, INVALID_DATATYPE_ERROR): org1 = Organization(name='Example') self.session.add(org1) dom1 = Domain(domain='example.com', is_top_domain='True') dom1.organization = org1 self.session.add(dom1) self.session.commit()
def test_none_name_domains(self): """Check whether domains without name can be stored""" with self.assertRaisesRegex(IntegrityError, NULL_CHECK_ERROR): org1 = Organization(name='Example') self.session.add(org1) dom1 = Domain() dom1.organization = org1 self.session.add(dom1) self.session.commit()
def test_none_name_organizations(self): """Check whether organizations without name can be stored""" if sys.version_info[0] >= 3: # Python 3 expected = IntegrityError else: # Python 2 expected = OperationalError with self.assertRaisesRegexp(expected, NULL_CHECK_ERROR): org1 = Organization() self.session.add(org1) self.session.commit()
def test_unique_domains(self): """Check whether domains are unique""" with self.assertRaisesRegexp(IntegrityError, DUP_CHECK_ERROR): org1 = Organization(name='Example') self.session.add(org1) dom1 = Domain(domain='example.com') dom1.organization = org1 dom2 = Domain(domain='example.com') dom2.organization = org1 self.session.add(dom1) self.session.add(dom2) self.session.commit()
def test_unique_enrollments(self): """Check if there is only one tuple with the same values""" with self.assertRaisesRegexp(IntegrityError, DUP_CHECK_ERROR): uid = UniqueIdentity(uuid='John Smith') self.session.add(uid) org = Organization(name='Example') self.session.add(org) rol1 = Enrollment(uidentity=uid, organization=org) rol2 = Enrollment(uidentity=uid, organization=org) self.session.add(rol1) self.session.add(rol2) self.session.commit()
def test_to_dict(self): """Test output of to_dict() method""" org = Organization(name='Example') self.session.add(org) dom = Domain(domain='example.com', is_top_domain=True, organization=org) self.session.add(dom) self.session.commit() # Tests d = dom.to_dict() self.assertIsInstance(d, dict) self.assertEqual(d['domain'], 'example.com') self.assertEqual(d['top_domain'], True) self.assertEqual(d['organization'], 'Example')