Esempio n. 1
0
def test_credentials_returns_sorted_list_credentials(mocker):
    db = Database(path='path', extension='.pass')
    mocker.patch.object(db, 'all', mocker.MagicMock())
    mock_sorted = mocker.patch('passpie.database.sorted', create=True)

    credentials = db.credentials()
    assert credentials == mock_sorted()
Esempio n. 2
0
def test_database_has_keys_returns_true_when_file_dot_keys_found_in_db_path(mocker):
    db = Database(path='path', extension='.pass')
    mock_exists = mocker.patch('passpie.database.os.path.exists', return_value=True)
    mock_join = mocker.patch('passpie.database.os.path.join')

    assert db.has_keys() is True
    mock_exists.assert_called_once_with(mock_join('path', '.keys'))
Esempio n. 3
0
def test_database_filename_returns_expected_filename_of_credential(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    assert db.filename("login@name") == os.path.normpath("path/name/login.pass")
    assert db.filename("@name") == os.path.normpath("path/name/.pass")
Esempio n. 4
0
def test_database_has_keys_returns_true_when_file_dot_keys_found_in_db_path(mocker):
    config = {"path": "path", "extension": ".pass"}
    mock_exists = mocker.patch("passpie.database.os.path.exists", return_value=True)
    mock_join = mocker.patch("passpie.database.os.path.join")
    db = Database(config)

    assert db.has_keys() is True
    mock_exists.assert_called_once_with(mock_join("path", ".keys"))
Esempio n. 5
0
def test_credentials_returns_sorted_list_credentials(mocker):
    config = {"path": "path", "extension": ".pass"}
    db = Database(config)
    mocker.patch.object(db, "all", mocker.MagicMock())
    mock_sorted = mocker.patch("passpie.database.sorted", create=True)

    credentials = db.credentials()
    assert credentials == mock_sorted()
Esempio n. 6
0
def test_database_add_with_empty_login_logs_error_and_return_none(mocker):
    db = Database(path='path', extension='.pass')
    mocker.patch('passpie.database.split_fullname', return_value=(None, 'name'))
    mock_logging = mocker.patch('passpie.database.logging')

    result = db.add(fullname='login@name', password='******', comment='comment')
    assert result is None
    mock_logging.error.assert_called_once_with(
        'Cannot add credential with empty login. use "@<name>" syntax')
Esempio n. 7
0
def test_database_add_with_empty_login_logs_error_and_return_none(mocker):
    config = {"path": "path", "extension": ".pass"}
    db = Database(config)
    mocker.patch("passpie.database.split_fullname", return_value=(None, "name"))
    mock_logging = mocker.patch("passpie.database.logging")

    result = db.add(fullname="login@name", password="******", comment="comment")
    assert result is None
    mock_logging.error.assert_called_once_with('Cannot add credential with empty login. use "@<name>" syntax')
Esempio n. 8
0
def test_database_credential_with_fullname_does_a_db_where_with_split_fullname(mocker):
    db = Database(path='path', extension='.pass')
    mocker.patch('passpie.database.split_fullname', return_value=('login', 'name'))
    mock_get = mocker.patch.object(db, 'get', return_value=[{}])

    result = db.credential('login@name')
    assert db.get.called
    assert result == [{}]
    db.get.assert_called_once_with((where('login') == 'login') & (where('name') == 'name'))
Esempio n. 9
0
def test_database_filename_returns_expected_filename_of_credential(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    assert db.filename("login@name") == os.path.normpath(
        "path/name/login.pass")
    assert db.filename("@name") == os.path.normpath("path/name/.pass")
Esempio n. 10
0
def test_database_credential_with_fullname_does_a_db_where_with_split_fullname(mocker):
    config = {"path": "path", "extension": ".pass"}
    db = Database(config)
    mocker.patch("passpie.database.split_fullname", return_value=("login", "name"))
    mock_get = mocker.patch.object(db, "get", return_value=[{}])

    result = db.credential("login@name")
    assert db.get.called
    assert result == [{}]
    db.get.assert_called_once_with((where("login") == "login") & (where("name") == "name"))
Esempio n. 11
0
def test_credentials_returns_sorted_list_credentials(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch.object(db, 'all', mocker.MagicMock())
    mock_sorted = mocker.patch('passpie.database.sorted', create=True)

    credentials = db.credentials()
    assert credentials == mock_sorted()
Esempio n. 12
0
def test_credentials_returns_sorted_list_credentials(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch.object(db, 'all', mocker.MagicMock())
    mock_sorted = mocker.patch('passpie.database.sorted', create=True)

    credentials = db.credentials()
    assert credentials == mock_sorted()
Esempio n. 13
0
def test_database_credential_with_fullname_does_a_db_get_with_filtering_name_only(mocker):
    config = {"path": "path", "extension": ".pass"}
    db = Database(config)
    mocker.patch("passpie.database.split_fullname", return_value=(None, "example.com"))
    mock_get = mocker.patch.object(db, "get", return_value=[{}])
    Credential = Query()

    result = db.credential("login@name")

    assert db.get.called
    db.get.assert_called_once_with(Credential.name == "example.com")
Esempio n. 14
0
def test_credentials_filter_credentials_by_login_and_name_when_name_only_fullname_passed(mocker):
    config = {"path": "path", "extension": ".pass"}
    db = Database(config)
    mocker.patch.object(db, "search")
    mocker.patch.object(db, "all")
    mocker.patch("passpie.database.split_fullname", return_value=(None, "example.com"))
    Credential = Query()

    credentials = db.credentials(fullname="@example.com")
    assert db.search.called is True
    assert db.all.called is False
    db.search.assert_called_once_with((Credential.name == "example.com"))
Esempio n. 15
0
def test_credentials_filter_credentials_by_login_and_name_when_name_only_fullname_passed(mocker):
    db = Database(path='path', extension='.pass')
    mocker.patch.object(db, 'search')
    mocker.patch.object(db, 'all')
    mocker.patch('passpie.database.split_fullname', return_value=(None, 'example.com'))
    Credential = Query()

    credentials = db.credentials(fullname="@example.com")
    assert db.search.called is True
    assert db.all.called is False
    db.search.assert_called_once_with(
        (Credential.name == "example.com")
    )
Esempio n. 16
0
def test_database_has_keys_returns_true_when_file_dot_keys_found_in_db_path(
        mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    mock_exists = mocker.patch('passpie.database.os.path.exists',
                               return_value=True)
    mock_join = mocker.patch('passpie.database.os.path.join')
    db = Database(config)

    assert db.has_keys() is True
    mock_exists.assert_called_once_with(mock_join('path', '.keys'))
Esempio n. 17
0
def test_database_matches_uses_table_remove_credential_from_database(mocker):
    config = {"path": "path", "extension": ".pass"}
    db = Database(config)
    mocker.patch.object(db, "search", mocker.MagicMock())
    mocker.patch("passpie.database.make_fullname", return_value="login@name")
    regex = ".*"
    Credential = Query()
    result = db.matches(regex=regex)

    assert db.search.called
    assert isinstance(result, list)
    db.search.assert_called_once_with(
        Credential.name.matches(regex) | Credential.login.matches(regex) | Credential.comment.matches(regex)
    )
Esempio n. 18
0
def test_database_credential_with_fullname_does_a_db_get_with_filtering_name_only(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch('passpie.database.split_fullname', return_value=(None, 'example.com'))
    mock_get = mocker.patch.object(db, 'get', return_value=[{}])
    Credential = Query()

    result = db.credential('login@name')

    assert db.get.called
    db.get.assert_called_once_with(Credential.name == "example.com")
Esempio n. 19
0
def test_database_add_insert_credential_to_database(mocker):
    db = Database(path='path', extension='.pass')
    mock_get = mocker.patch.object(db, 'insert')
    mocker.patch('passpie.database.split_fullname', return_value=('login', 'name'))
    mock_datetime = mocker.patch('passpie.database.datetime')
    credential = dict(fullname='login@name',
                      name='name',
                      login='******',
                      password='******',
                      comment='comment',
                      modified=mock_datetime.now())

    db.add(fullname='login@name', password='******', comment='comment')
    assert db.insert.called
    db.insert.assert_called_once_with(credential)
Esempio n. 20
0
def test_database_matches_uses_table_remove_credential_from_database(mocker):
    db = Database(path='path', extension='.pass')
    mocker.patch.object(db, 'search', mocker.MagicMock())
    mocker.patch('passpie.database.make_fullname', return_value='login@name')
    regex = '.*'
    Credential = Query()
    result = db.matches(regex=regex)

    assert db.search.called
    assert isinstance(result, list)
    db.search.assert_called_once_with(
        Credential.name.matches(regex) |
        Credential.login.matches(regex) |
        Credential.comment.matches(regex)
    )
Esempio n. 21
0
def test_database_credential_with_fullname_does_a_db_where_with_split_fullname(
        mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch('passpie.database.split_fullname',
                 return_value=('login', 'name'))
    mock_get = mocker.patch.object(db, 'get', return_value=[{}])

    result = db.credential('login@name')
    assert db.get.called
    assert result == [{}]
    db.get.assert_called_once_with((where('login') == 'login')
                                   & (where('name') == 'name'))
Esempio n. 22
0
def test_database_credential_with_fullname_does_a_db_get_with_filtering_name_only(
        mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch('passpie.database.split_fullname',
                 return_value=(None, 'example.com'))
    mock_get = mocker.patch.object(db, 'get', return_value=[{}])
    Credential = Query()

    result = db.credential('login@name')

    assert db.get.called
    db.get.assert_called_once_with(Credential.name == "example.com")
Esempio n. 23
0
def test_database_add_with_empty_login_logs_error_and_return_none(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch('passpie.database.split_fullname',
                 return_value=(None, 'name'))
    mock_logging = mocker.patch('passpie.database.logging')

    result = db.add(fullname='login@name',
                    password='******',
                    comment='comment')
    assert result is None
    mock_logging.error.assert_called_once_with(
        'Cannot add credential with empty login. use "@<name>" syntax')
Esempio n. 24
0
def test_credentials_filter_credentials_by_login_and_name_when_empty_login_fullname_passed(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch.object(db, 'search')
    mocker.patch.object(db, 'all')
    mocker.patch('passpie.database.split_fullname', return_value=('', 'example.com'))
    Credential = Query()

    credentials = db.credentials(fullname="@example.com")
    assert db.search.called is True
    assert db.all.called is False
    db.search.assert_called_once_with(
        (Credential.login == "") & (Credential.name == "example.com")
    )
Esempio n. 25
0
def test_database_matches_uses_table_remove_credential_from_database(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch.object(db, 'search', mocker.MagicMock())
    mocker.patch('passpie.database.make_fullname', return_value='login@name')
    regex = '.*'
    Credential = Query()
    result = db.matches(regex=regex)

    assert db.search.called
    assert isinstance(result, list)
    db.search.assert_called_once_with(
        Credential.name.matches(regex) | Credential.login.matches(regex)
        | Credential.comment.matches(regex))
Esempio n. 26
0
def test_credentials_filter_credentials_by_login_and_name_when_name_only_fullname_passed(
        mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch.object(db, 'search')
    mocker.patch.object(db, 'all')
    mocker.patch('passpie.database.split_fullname',
                 return_value=(None, 'example.com'))
    Credential = Query()

    credentials = db.credentials(fullname="@example.com")
    assert db.search.called is True
    assert db.all.called is False
    db.search.assert_called_once_with((Credential.name == "example.com"))
Esempio n. 27
0
def test_database_add_insert_credential_to_database(mocker):
    config = {"path": "path", "extension": ".pass"}
    db = Database(config)
    mock_get = mocker.patch.object(db, "insert")
    mocker.patch("passpie.database.split_fullname", return_value=("login", "name"))
    mock_datetime = mocker.patch("passpie.database.datetime")
    credential = dict(
        fullname="login@name",
        name="name",
        login="******",
        password="******",
        comment="comment",
        modified=mock_datetime.now(),
    )

    db.add(fullname="login@name", password="******", comment="comment")
    assert db.insert.called
    db.insert.assert_called_once_with(credential)
Esempio n. 28
0
def test_database_add_insert_credential_to_database(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mock_get = mocker.patch.object(db, 'insert')
    mocker.patch('passpie.database.split_fullname',
                 return_value=('login', 'name'))
    mock_datetime = mocker.patch('passpie.database.datetime')
    credential = dict(fullname='login@name',
                      name='name',
                      login='******',
                      password='******',
                      comment='comment',
                      modified=mock_datetime.now())

    db.add(fullname='login@name', password='******', comment='comment')
    assert db.insert.called
    db.insert.assert_called_once_with(credential)
Esempio n. 29
0
def test_database_remove_uses_table_remove_credential_from_database(mocker):
    db = Database(path='path', extension='.pass')
    mocker.patch.object(db, 'table', mocker.MagicMock())
    mocker.patch('passpie.database.make_fullname', return_value='login@name')

    db.remove(fullname='login@name')

    assert db.table().remove.called
    db.table().remove.assert_called_once_with((where('fullname') == 'login@name'))
Esempio n. 30
0
def test_database_remove_uses_table_remove_credential_from_database(mocker):
    config = {"path": "path", "extension": ".pass"}
    db = Database(config)
    mocker.patch.object(db, "table", mocker.MagicMock())
    mocker.patch("passpie.database.make_fullname", return_value="login@name")

    db.remove(fullname="login@name")

    assert db.table().remove.called
    db.table().remove.assert_called_once_with((where("fullname") == "login@name"))
Esempio n. 31
0
def test_database_remove_uses_table_remove_credential_from_database(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch.object(db, 'table', mocker.MagicMock())
    mocker.patch('passpie.database.make_fullname', return_value='login@name')

    db.remove(fullname='login@name')

    assert db.table().remove.called
    db.table().remove.assert_called_once_with(
        (where('fullname') == 'login@name'))
Esempio n. 32
0
def test_database_update_uses_table_update_credential_to_database(mocker):
    config = {"path": "path", "extension": ".pass"}
    db = Database(config)
    mocker.patch.object(db, "table", mocker.MagicMock())
    mocker.patch("passpie.database.make_fullname", return_value="login@name")
    mock_datetime = mocker.patch("passpie.database.datetime")
    values = {"login": "******", "name": "name", "comment": "new comment"}

    db.update(fullname="login@name", values=values)

    assert db.table().update.called
    db.table().update.assert_called_once_with(values, (where("fullname") == "login@name"))
Esempio n. 33
0
def test_database_update_uses_table_update_credential_to_database(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch.object(db, 'table', mocker.MagicMock())
    mocker.patch('passpie.database.make_fullname', return_value='login@name')
    mock_datetime = mocker.patch('passpie.database.datetime')
    values = {'login': '******', 'name': 'name', 'comment': 'new comment'}

    db.update(fullname='login@name', values=values)
    query = (Query().login == 'login') & (Query().name == 'name')

    assert db.table().update.called
    db.table().update.assert_called_once_with(values, query)
Esempio n. 34
0
def test_database_update_uses_table_update_credential_to_database(mocker):
    db = Database(path='path', extension='.pass')
    mocker.patch.object(db, 'table', mocker.MagicMock())
    mocker.patch('passpie.database.make_fullname', return_value='login@name')
    mock_datetime = mocker.patch('passpie.database.datetime')
    values = {
        'login': '******',
        'name': 'name',
        'comment': 'new comment'
    }

    db.update(fullname='login@name', values=values)

    assert db.table().update.called
    db.table().update.assert_called_once_with(values, (where('fullname') == 'login@name'))
Esempio n. 35
0
def test_database_update_uses_table_update_credential_to_database(mocker):
    config = {
        'path': 'path',
        'extension': '.pass',
    }
    db = Database(config)
    mocker.patch.object(db, 'table', mocker.MagicMock())
    mocker.patch('passpie.database.make_fullname', return_value='login@name')
    mock_datetime = mocker.patch('passpie.database.datetime')
    values = {
        'login': '******',
        'name': 'name',
        'comment': 'new comment'
    }

    db.update(fullname='login@name', values=values)
    query = (Query().login == 'login') & (Query().name == 'name')

    assert db.table().update.called
    db.table().update.assert_called_once_with(values, query)