def setUp(self): super(TestSQLiteBackend, self).setUp() transaction.begin() request = MagicMock() request.tm = transaction.manager self.access = SQLAccessBackend(request, **self.kwargs) self.db = self.kwargs['dbmaker']() zope.sqlalchemy.register(self.db, transaction_manager=transaction.manager)
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) transaction.commit() data1 = self.access.dump() self.access.db.close() self.db.close() self._drop_and_recreate() kwargs = SQLAccessBackend.configure(self.settings) self.access = SQLAccessBackend(MagicMock(), **kwargs) self.access.load(data1) data2 = self.access.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 six.iteritems(obj1): 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 self.access.load(data2) data3 = self.access.dump() assert_nice_equals(data3, data2)
def setUp(self): super(TestSQLBackend, self).setUp() self.db = self.kwargs['dbmaker']() self.access = SQLAccessBackend(MagicMock(), **self.kwargs)
def setUp(self): super(TestSQLBackend, self).setUp() self.db = SQLAccessBackend.dbmaker() self.access = SQLAccessBackend(MagicMock())