def test_local_set_user_as_admin():
    storage = create_autospec(IDMappingStorage, spec_set=True, instance=True)

    LocalUserLookup(storage).set_user_as_admin(Username('n'), True)
    LocalUserLookup(storage).set_user_as_admin(Username('r'), False)

    assert storage.set_local_user_as_admin.call_args_list == [
        ((Username('n'), True), {}), ((Username('r'), False), {})
    ]
def test_local_new_token():
    storage = create_autospec(IDMappingStorage, spec_set=True, instance=True)

    t = LocalUserLookup(storage).new_token(Username('bar'))

    assert is_base64(t.token) is True
    assert len(t.token) is 28

    assert storage.update_local_user_token.call_args_list == \
        [((Username('bar'), t.get_hashed_token()), {})]
Beispiel #3
0
 def _admin(self, local_user_handler: LocalUserLookup, username: Username,
            admin: str, verbose):
     try:
         local_user_handler.set_user_as_admin(username, admin == self._TRUE)
     except Exception as e:
         self._handle_error(e, verbose)
         return 1
     self._stdout.write("Set user {}'s admin state to {}.\n".format(
         username.name, admin))
     return 0
def test_local_is_valid_user():
    storage = create_autospec(IDMappingStorage, spec_set=True, instance=True)
    storage.user_exists.return_value = True

    luh = LocalUserLookup(storage)

    assert luh.is_valid_user(Username('foo')) == (True, None, 3600)

    storage.user_exists.return_value = False

    assert luh.is_valid_user(Username('bar')) == (False, None, 3600)

    assert storage.user_exists.call_args_list == [((Username('foo'), ), {}),
                                                  ((Username('bar'), ), {})]
def check_local_get_user_admin(isadmin):
    storage = create_autospec(IDMappingStorage, spec_set=True, instance=True)
    storage.get_user.return_value = (Username('bar'), isadmin)

    assert LocalUserLookup(storage).get_user(Token('foo')) == \
        (User(AuthsourceID('local'), Username('bar')), isadmin, None, 300)

    thash = '2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae'
    assert storage.get_user.call_args_list == [((HashedToken(thash), ), {})]
Beispiel #6
0
 def _new_token(self, local_user_handler: LocalUserLookup,
                username: Username, verbose):
     try:
         t = local_user_handler.new_token(username)
     except Exception as e:
         self._handle_error(e, verbose)
         return 1
     self._stdout.write("Replaced user {}'s token with token:\n{}\n".format(
         username.name, t.token))
     return 0
Beispiel #7
0
 def _create_user(self, local_user_handler: LocalUserLookup,
                  username: Username, verbose):
     try:
         t = local_user_handler.create_user(username)
     except Exception as e:
         self._handle_error(e, verbose)
         return 1
     self._stdout.write('Created user {} with token:\n{}\n'.format(
         username.name, t.token))
     return 0
Beispiel #8
0
    def build_local_user_lookup(self, cfgpath: Path = None) -> LocalUserLookup:
        """
        Build a local user lookup handler.

        :param cfgpath: the the path to the build configuration file. The configuration is memoized
            and used in any future builds, and any other configurations are ignored.
        :raises IDMappingBuildException: if a build error occurs.
        """
        self._set_cfg(cfgpath)
        return LocalUserLookup(self._build_storage())
def test_local_get_users():
    storage = create_autospec(IDMappingStorage, spec_set=True, instance=True)
    storage.get_users.return_value = {
        Username('foo'): False,
        Username('bar'): True
    }

    assert LocalUserLookup(storage).get_users() == {
        Username('foo'): False,
        Username('bar'): True
    }

    assert storage.get_users.call_args_list == [((), {})]
Beispiel #10
0
 def _list_users(self, local_user_handler: LocalUserLookup, verbose):
     try:
         users = local_user_handler.get_users()
     except Exception as e:
         self._handle_error(e, verbose)
         return 1
     self._stdout.write('* indicates an administrator:\n')
     userstr = {u.name: users[u]
                for u in users}  # may want to make comparable
     for u in sorted(userstr):
         admin = userstr[u]
         self._stdout.write('{}{}\n'.format(u, ' *' if admin else ''))
     return 0
def test_local_set_user_as_admin_fail():
    storage = create_autospec(IDMappingStorage, spec_set=True, instance=True)
    with raises(Exception) as got:
        LocalUserLookup(storage).set_user_as_admin(None, True)
    assert_exception_correct(got.value, TypeError('username cannot be None'))
def test_local_get_authsource():
    storage = create_autospec(IDMappingStorage, spec_set=True, instance=True)
    assert LocalUserLookup(storage).get_authsource_id() == AuthsourceID(
        'local')
def test_local_init_fail():
    with raises(Exception) as got:
        LocalUserLookup(None)
    assert_exception_correct(got.value, TypeError('storage cannot be None'))