Beispiel #1
0
    def it_passes_initialisation_configuraton_to_data_source(self, data_source):
        password = "******"
        config = {"iterations": 10}
        keychain = Keychain(data_source)
        keychain.initialise(password, config)

        data_source.initialise.assert_called_with(password, config)
Beispiel #2
0
    def it_delegates_creating_items_to_the_data_source(self, data_source,
                                                       item):
        data_source.create_item.return_value = item
        keychain = Keychain(data_source)

        assert keychain.create_item() == item
        data_source.create_item.assert_called_with(None)
Beispiel #3
0
    def it_is_created_non_initialised_for_a_non_initialised_data_source(
            self, data_source):
        data_source.is_initialised.return_value = False

        keychain = Keychain(data_source)

        assert keychain.is_initialised() is False
Beispiel #4
0
    def it_passes_initialisation_configuraton_to_data_source(
            self, data_source):
        password = "******"
        config = {"iterations": 10}
        keychain = Keychain(data_source)
        keychain.initialise(password, config)

        data_source.initialise.assert_called_with(password, config)
Beispiel #5
0
    def it_changes_password(self, data_source):
        data_source.authenticate.return_value = None
        data_source.set_password.return_value = None

        keychain = Keychain(data_source)
        keychain.unlock("password")
        keychain.set_password("foobar")

        data_source.set_password.assert_called_with("foobar")
Beispiel #6
0
    def it_is_iterable_as_list_of_items_when_unlocked(self, data_source):
        data_source.is_authenticated.return_value = True
        keychain = Keychain(data_source)

        try:
            iter(keychain)
        except TypeError:
            raise AssertionError("Keychain is not iterable")
Beispiel #7
0
    def it_gets_items_by_id_from_data_source(self, data_source, item):
        data_source.is_initialised.return_value = True
        data_source.is_authenticated.return_value = True
        data_source.get_item_by_id.return_value = item

        keychain = Keychain(data_source)

        assert keychain[item.get_id()] == item
Beispiel #8
0
    def it_changes_password(self, data_source):
        data_source.authenticate.return_value = None
        data_source.set_password.return_value = None

        keychain = Keychain(data_source)
        keychain.unlock("password")
        keychain.set_password("foobar")

        data_source.set_password.assert_called_with("foobar")
Beispiel #9
0
    def it_is_initialisable_using_a_password(self, data_source):
        keychain = Keychain(data_source)
        keychain.initialise("somepassword")

        data_source.initialise.assert_called()
Beispiel #10
0
    def it_delegates_saving_items_to_the_data_source(self, data_source, item):
        keychain = Keychain(data_source)
        keychain.save_item(item)

        data_source.save_item.assert_called_with(item)
Beispiel #11
0
    def it_delegates_initialisation_to_the_data_source(self, data_source):
        keychain = Keychain(data_source)
        keychain.initialise("somepassword")

        assert data_source.initialise.called is True
Beispiel #12
0
    def it_throws_if_setting_password_on_a_locked_keychain(self, data_source):
        data_source.is_authenticated.return_value = False
        keychain = Keychain(data_source)

        keychain.set_password("foobar")
Beispiel #13
0
    def it_throws_if_gettings_items_from_a_locked_keychain(self, data_source):
        data_source.is_authenticated.return_value = False

        keychain = Keychain(data_source)
        keychain['ABC']
Beispiel #14
0
    def it_passes_initialisation_data_to_create_item(self, data_source, item):
        keychain = Keychain(data_source)
        keychain.create_item('some data')

        data_source.create_item.assert_called_with('some data')
Beispiel #15
0
    def it_is_unlocked_if_the_data_source_has_been_authenticated(self, data_source):
        data_source.is_authenticated.return_value = True
        keychain = Keychain(data_source)

        assert keychain.is_locked() is False
Beispiel #16
0
 def it_throws_if_initialising_existing_keychain(self, data_source):
     data_source.is_initialised.return_value = True
     keychain = Keychain(data_source)
     keychain.initialise("somepassword")
Beispiel #17
0
    def it_is_created_non_initialised_for_a_non_initialised_data_source(self, data_source):
        data_source.is_initialised.return_value = False

        keychain = Keychain(data_source)

        assert keychain.is_initialised() is False
Beispiel #18
0
    def it_delegates_initialisation_to_the_data_source(self, data_source):
        keychain = Keychain(data_source)
        keychain.initialise("somepassword")

        assert data_source.initialise.called is True
Beispiel #19
0
    def it_remains_uninitialised_if_not_initialised(self, data_source):
        data_source.is_initialised.return_value = False
        keychain = Keychain(data_source)

        assert keychain.is_initialised() is False
Beispiel #20
0
    def it_throws_if_adding_items_to_a_locked_keychain(self, data_source):
        data_source.save_item.side_effect = UnauthenticatedDataSourceException

        keychain = Keychain(data_source)
        keychain.save_item({"id": "someitem_id"})
Beispiel #21
0
    def it_unlocks_the_keychain_with_the_right_password(self, data_source):
        keychain = Keychain(data_source)
        keychain.unlock('rightpassword')

        data_source.authenticate.assert_called_with('rightpassword')
Beispiel #22
0
    def it_passes_initialisation_data_to_create_item(self, data_source, item):
        keychain = Keychain(data_source)
        keychain.create_item('some data')

        data_source.create_item.assert_called_with('some data')
Beispiel #23
0
    def it_throws_if_unlocking_with_incorrect_password(self, data_source):
        data_source.authenticate.side_effect = IncorrectPasswordException

        keychain = Keychain(data_source)
        keychain.unlock("wrongpassword")
Beispiel #24
0
    def it_throws_if_adding_items_to_a_locked_keychain(self, data_source):
        data_source.save_item.side_effect = UnauthenticatedDataSourceException

        keychain = Keychain(data_source)
        keychain.save_item({"id": "someitem_id"})
Beispiel #25
0
 def it_throws_if_initialising_existing_keychain(self, data_source):
     data_source.is_initialised.return_value = True
     keychain = Keychain(data_source)
     keychain.initialise("somepassword")
Beispiel #26
0
    def it_delegates_saving_items_to_the_data_source(self, data_source, item):
        keychain = Keychain(data_source)
        keychain.save_item(item)

        data_source.save_item.assert_called_with(item)
Beispiel #27
0
    def it_locks_itself_by_deauthenticating_the_data_source(self, data_source):
        keychain = Keychain(data_source)

        data_source.deauthenticate.assert_called()
Beispiel #28
0
    def it_delegates_creating_items_to_the_data_source(self, data_source, item):
        data_source.create_item.return_value = item
        keychain = Keychain(data_source)

        assert keychain.create_item() == item
        data_source.create_item.assert_called_with(None)
Beispiel #29
0
    def it_is_initialisable_using_a_password(self, data_source):
        keychain = Keychain(data_source)
        keychain.initialise("somepassword")

        data_source.initialise.assert_called()
Beispiel #30
0
    def it_remains_uninitialised_if_not_initialised(self, data_source):
        data_source.is_initialised.return_value = False
        keychain = Keychain(data_source)

        assert keychain.is_initialised() is False
Beispiel #31
0
    def it_is_not_iterable_as_list_of_items_when_locked(self, data_source):
        data_source.is_authenticated.return_value = False
        keychain = Keychain(data_source)

        iter(keychain)
Beispiel #32
0
    def it_throws_if_unlocking_with_incorrect_password(self, data_source):
        data_source.authenticate.side_effect = IncorrectPasswordException

        keychain = Keychain(data_source)
        keychain.unlock("wrongpassword")
Beispiel #33
0
    def it_throws_if_setting_password_on_a_locked_keychain(self, data_source):
        data_source.is_authenticated.return_value = False
        keychain = Keychain(data_source)

        keychain.set_password("foobar")
Beispiel #34
0
    def it_is_unlocked_if_the_data_source_has_been_authenticated(
            self, data_source):
        data_source.is_authenticated.return_value = True
        keychain = Keychain(data_source)

        assert keychain.is_locked() is False
Beispiel #35
0
    def it_throws_if_unlocking_uninitialized_keychain(self, data_source):
        data_source.is_initialised.return_value = False
        keychain = Keychain(data_source)

        keychain.unlock("somepassword")
Beispiel #36
0
    def it_unlocks_the_keychain_with_the_right_password(self, data_source):
        keychain = Keychain(data_source)
        keychain.unlock('rightpassword')

        data_source.authenticate.assert_called_with('rightpassword')
Beispiel #37
0
    def it_throws_if_unlocking_uninitialized_keychain(self, data_source):
        data_source.is_initialised.return_value = False
        keychain = Keychain(data_source)

        keychain.unlock("somepassword")