コード例 #1
0
    def test_load(self):
        """ Access control can load universal format data """
        user1 = make_user('user1', 'user1', True)
        user2 = make_user('user2', 'user2', False)
        user3 = make_user('user3', 'user3', False)
        user3.admin = True
        self.db.add_all([user1, user2, user3])
        transaction.commit()
        self.access.set_allow_register(False)
        self.access.create_group('g1')
        self.access.create_group('g2')
        self.access.edit_user_group('user2', 'g1', True)
        self.access.edit_user_group('user2', 'g2', True)
        self.access.edit_user_group('user3', 'g2', True)
        self.access.edit_user_permission('pkg1', 'user2', 'read', True)
        self.access.edit_user_permission('pkg2', 'user3', 'read', True)
        self.access.edit_user_permission('pkg2', 'user3', 'write', True)
        self.access.edit_group_permission('pkg1', 'g1', 'read', True)
        self.access.edit_group_permission('pkg2', 'g2', 'read', True)
        self.access.edit_group_permission('pkg2', 'g2', 'write', True)

        data1 = self.access.dump()

        SQLAccessBackend.configure(self.settings)
        kwargs = SQLAccessBackend.configure(self.settings)
        access2 = SQLAccessBackend(MagicMock(), **kwargs)
        access2.load(data1)
        data2 = access2.dump()

        def assert_nice_equals(obj1, obj2):
            """ Assertion that handles unordered lists inside dicts """
            if isinstance(obj1, dict):
                self.assertEqual(len(obj1), len(obj2))
                for key, val in obj1.iteritems():
                    assert_nice_equals(val, obj2[key])
            elif isinstance(obj1, list):
                self.assertItemsEqual(obj1, obj2)
            else:
                self.assertEqual(obj1, obj2)

        assert_nice_equals(data2, data1)

        # Load operation should be idempotent
        access2.load(data2)
        data3 = access2.dump()
        assert_nice_equals(data3, data2)
コード例 #2
0
    def test_load(self):
        """ Access control can load universal format data """
        user1 = make_user('user1', 'user1', True)
        user2 = make_user('user2', 'user2', False)
        user3 = make_user('user3', 'user3', False)
        user3.admin = True
        self.db.add_all([user1, user2, user3])
        transaction.commit()
        self.access.set_allow_register(False)
        self.access.create_group('g1')
        self.access.create_group('g2')
        self.access.edit_user_group('user2', 'g1', True)
        self.access.edit_user_group('user2', 'g2', True)
        self.access.edit_user_group('user3', 'g2', True)
        self.access.edit_user_permission('pkg1', 'user2', 'read', True)
        self.access.edit_user_permission('pkg2', 'user3', 'read', True)
        self.access.edit_user_permission('pkg2', 'user3', 'write', True)
        self.access.edit_group_permission('pkg1', 'g1', 'read', True)
        self.access.edit_group_permission('pkg2', 'g2', 'read', True)
        self.access.edit_group_permission('pkg2', 'g2', 'write', True)

        data1 = self.access.dump()

        SQLAccessBackend.configure(self.settings)
        kwargs = SQLAccessBackend.configure(self.settings)
        access2 = SQLAccessBackend(MagicMock(), **kwargs)
        access2.load(data1)
        data2 = access2.dump()

        def assert_nice_equals(obj1, obj2):
            """ Assertion that handles unordered lists inside dicts """
            if isinstance(obj1, dict):
                self.assertEqual(len(obj1), len(obj2))
                for key, val in obj1.iteritems():
                    assert_nice_equals(val, obj2[key])
            elif isinstance(obj1, list):
                self.assertItemsEqual(obj1, obj2)
            else:
                self.assertEqual(obj1, obj2)

        assert_nice_equals(data2, data1)

        # Load operation should be idempotent
        access2.load(data2)
        data3 = access2.dump()
        assert_nice_equals(data3, data2)
コード例 #3
0
 def setUpClass(cls):
     super(TestSQLiteBackend, cls).setUpClass()
     cls.settings = {
         'auth.db.url': cls.DB_URL,
     }
     try:
         cls.kwargs = SQLAccessBackend.configure(cls.settings)
     except OperationalError:
         raise unittest.SkipTest("Couldn't connect to database")
コード例 #4
0
 def setUpClass(cls):
     super(TestSQLBackend, cls).setUpClass()
     cls.settings = {
         'auth.db.url': 'sqlite:///:memory:',
     }
     cls.kwargs = SQLAccessBackend.configure(cls.settings)
コード例 #5
0
 def setUpClass(cls):
     super(TestSQLBackend, cls).setUpClass()
     cls.settings = {
         'auth.db.url': 'sqlite:///:memory:',
     }
     cls.kwargs = SQLAccessBackend.configure(cls.settings)