예제 #1
0
    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')
예제 #2
0
    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')
예제 #3
0
    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()
예제 #4
0
    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()
예제 #5
0
    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))
예제 #6
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()
예제 #8
0
    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()
예제 #10
0
    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()
예제 #12
0
    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()
예제 #13
0
    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()
예제 #14
0
    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()
예제 #15
0
    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')