Example #1
0
 def setUp(self):
     request = DummyRequest()
     self.auth = ('user', 'pass')
     settings = {
         'auth.backend_server': 'server',
         'auth.user': self.auth[0],
         'auth.password': self.auth[1],
     }
     kwargs = RemoteAccessBackend.configure(settings)
     self.backend = RemoteAccessBackend(request, **kwargs)
     self.requests = MagicMock()
     patch.dict('sys.modules', requests=self.requests).start()
 def setUp(self):
     request = DummyRequest()
     self.auth = ('user', 'pass')
     settings = {
         'auth.backend_server': 'server',
         'auth.user': self.auth[0],
         'auth.password': self.auth[1],
     }
     kwargs = RemoteAccessBackend.configure(settings)
     self.backend = RemoteAccessBackend(request, **kwargs)
     self.requests = MagicMock()
     patch.dict('sys.modules', requests=self.requests).start()
Example #3
0
class TestRemoteBackend(unittest.TestCase):
    """ Tests for the access backend that delegates calls to remote server """
    def setUp(self):
        request = DummyRequest()
        self.auth = ('user', 'pass')
        settings = {
            'auth.backend_server': 'server',
            'auth.user': self.auth[0],
            'auth.password': self.auth[1],
        }
        kwargs = RemoteAccessBackend.configure(settings)
        self.backend = RemoteAccessBackend(request, **kwargs)
        self.requests = MagicMock()
        patch.dict('sys.modules', requests=self.requests).start()

    def tearDown(self):
        patch.stopall()

    def test_verify(self):
        """ Delegate login to remote server """
        verified = self.backend.verify_user('user', 'pass')
        params = {'username': '******', 'password': '******'}
        self.requests.get.assert_called_with('server/verify',
                                             params=params,
                                             auth=self.auth)
        self.assertEqual(verified, self.requests.get().json())

    def test_user_groups(self):
        """ Delegate fetching user groups to remote server """
        groups = self.backend.groups('dsa')
        params = {'username': '******'}
        self.requests.get.assert_called_with('server/groups',
                                             params=params,
                                             auth=self.auth)
        self.assertEqual(groups, self.requests.get().json())

    def test_all_groups(self):
        """ Delegate fetching all groups to remote server """
        groups = self.backend.groups()
        self.requests.get.assert_called_with('server/groups',
                                             params={},
                                             auth=self.auth)
        self.assertEqual(groups, self.requests.get().json())

    def test_group_members(self):
        """ Delegate fetching group members to remote server """
        groups = self.backend.group_members('g1')
        params = {'group': 'g1'}
        self.requests.get.assert_called_with('server/group_members',
                                             params=params,
                                             auth=self.auth)
        self.assertEqual(groups, self.requests.get().json())

    def test_admin(self):
        """ Query server to determine if user is admin """
        is_admin = self.backend.is_admin('dsa')
        params = {'username': '******'}
        self.requests.get.assert_called_with('server/admin',
                                             params=params,
                                             auth=self.auth)
        self.assertEqual(is_admin, self.requests.get().json())

    def test_all_group_perms(self):
        """ Query server for all group permissions on a package """
        perms = self.backend.group_permissions('mypkg')
        params = {'package': 'mypkg'}
        self.requests.get.assert_called_with('server/group_permissions',
                                             params=params,
                                             auth=self.auth)
        self.assertEqual(perms, self.requests.get().json())

    def test_all_user_perms(self):
        """ Query server for all user permissions on a package """
        perms = self.backend.user_permissions('mypkg')
        params = {'package': 'mypkg'}
        self.requests.get.assert_called_with('server/user_permissions',
                                             params=params,
                                             auth=self.auth)
        self.assertEqual(perms, self.requests.get().json())

    def test_user_data(self):
        """ Retrieve all users """
        users = self.backend.user_data()
        self.requests.get.assert_called_with('server/user_data',
                                             params=None,
                                             auth=self.auth)
        self.assertEqual(users, self.requests.get().json())

    def test_single_user_data(self):
        """ Retrieve user data """
        users = self.backend.user_data('foo')
        self.requests.get.assert_called_with('server/user_data',
                                             params={'username': '******'},
                                             auth=self.auth)
        self.assertEqual(users, self.requests.get().json())

    def test_user_package_perms(self):
        """ Fetch all packages a user has permissions on """
        users = self.backend.user_package_permissions('u1')
        params = {'username': '******'}
        self.requests.get.assert_called_with('server/user_package_permissions',
                                             params=params,
                                             auth=self.auth)
        self.assertEqual(users, self.requests.get().json())

    def test_group_package_perms(self):
        """ Fetch all packages a group has permissions on """
        groups = self.backend.group_package_permissions('g1')
        params = {'group': 'g1'}
        self.requests.get.assert_called_with(
            'server/group_package_permissions', params=params, auth=self.auth)
        self.assertEqual(groups, self.requests.get().json())
class TestRemoteBackend(unittest.TestCase):

    """ Tests for the access backend that delegates calls to remote server """

    def setUp(self):
        request = DummyRequest()
        self.auth = ('user', 'pass')
        settings = {
            'auth.backend_server': 'server',
            'auth.user': self.auth[0],
            'auth.password': self.auth[1],
        }
        kwargs = RemoteAccessBackend.configure(settings)
        self.backend = RemoteAccessBackend(request, **kwargs)
        self.requests = MagicMock()
        patch.dict('sys.modules', requests=self.requests).start()

    def tearDown(self):
        patch.stopall()

    def test_verify(self):
        """ Delegate login to remote server """
        verified = self.backend.verify_user('user', 'pass')
        params = {'username': '******', 'password': '******'}
        self.requests.get.assert_called_with('server/verify', params=params,
                                             auth=self.auth)
        self.assertEqual(verified, self.requests.get().json())

    def test_user_groups(self):
        """ Delegate fetching user groups to remote server """
        groups = self.backend.groups('dsa')
        params = {'username': '******'}
        self.requests.get.assert_called_with(
            'server/groups', params=params, auth=self.auth)
        self.assertEqual(groups, self.requests.get().json())

    def test_all_groups(self):
        """ Delegate fetching all groups to remote server """
        groups = self.backend.groups()
        self.requests.get.assert_called_with(
            'server/groups', params={}, auth=self.auth)
        self.assertEqual(groups, self.requests.get().json())

    def test_group_members(self):
        """ Delegate fetching group members to remote server """
        groups = self.backend.group_members('g1')
        params = {'group': 'g1'}
        self.requests.get.assert_called_with('server/group_members',
                                             params=params, auth=self.auth)
        self.assertEqual(groups, self.requests.get().json())

    def test_admin(self):
        """ Query server to determine if user is admin """
        is_admin = self.backend.is_admin('dsa')
        params = {'username': '******'}
        self.requests.get.assert_called_with('server/admin', params=params,
                                             auth=self.auth)
        self.assertEqual(is_admin, self.requests.get().json())

    def test_all_group_perms(self):
        """ Query server for all group permissions on a package """
        perms = self.backend.group_permissions('mypkg')
        params = {'package': 'mypkg'}
        self.requests.get.assert_called_with('server/group_permissions',
                                             params=params, auth=self.auth)
        self.assertEqual(perms, self.requests.get().json())

    def test_group_perms(self):
        """ Query server for group permissions on a package """
        perms = self.backend.group_permissions('mypkg', 'grp')
        params = {'package': 'mypkg', 'group': 'grp'}
        self.requests.get.assert_called_with('server/group_permissions',
                                             params=params, auth=self.auth)
        self.assertEqual(perms, self.requests.get().json())

    def test_all_user_perms(self):
        """ Query server for all user permissions on a package """
        perms = self.backend.user_permissions('mypkg')
        params = {'package': 'mypkg'}
        self.requests.get.assert_called_with('server/user_permissions',
                                             params=params, auth=self.auth)
        self.assertEqual(perms, self.requests.get().json())

    def test_user_perms(self):
        """ Query server for a user's permissions on a package """
        perms = self.backend.user_permissions('mypkg', 'u1')
        params = {'package': 'mypkg', 'username': '******'}
        self.requests.get.assert_called_with('server/user_permissions',
                                             params=params, auth=self.auth)
        self.assertEqual(perms, self.requests.get().json())

    def test_user_perms_with_username(self):
        """ Query server for a user's permissions on a package """
        perms = self.backend.user_permissions('mypkg', 'a')
        params = {'package': 'mypkg', 'username': '******'}
        self.requests.get.assert_called_with('server/user_permissions',
                                             params=params, auth=self.auth)
        self.assertEqual(perms, self.requests.get().json())

    def test_user_data(self):
        """ Retrieve all users """
        users = self.backend.user_data()
        self.requests.get.assert_called_with('server/user_data', params=None,
                                             auth=self.auth)
        self.assertEqual(users, self.requests.get().json())

    def test_single_user_data(self):
        """ Retrieve user data """
        users = self.backend.user_data('foo')
        self.requests.get.assert_called_with('server/user_data',
                                             params={'username': '******'},
                                             auth=self.auth)
        self.assertEqual(users, self.requests.get().json())

    def test_user_package_perms(self):
        """ Fetch all packages a user has permissions on """
        users = self.backend.user_package_permissions('u1')
        params = {'username': '******'}
        self.requests.get.assert_called_with('server/user_package_permissions',
                                             params=params, auth=self.auth)
        self.assertEqual(users, self.requests.get().json())

    def test_group_package_perms(self):
        """ Fetch all packages a group has permissions on """
        groups = self.backend.group_package_permissions('g1')
        params = {'group': 'g1'}
        self.requests.get.assert_called_with(
            'server/group_package_permissions',
            params=params, auth=self.auth)
        self.assertEqual(groups, self.requests.get().json())