예제 #1
0
def test_keyring_lookup_encrypted_fallback_exists_no_password(fs, mocker, monkeypatch):
    monkeypatch.delenv("PYTHON_KEYRING_BACKEND", raising=False)
    get_keyring = mocker.patch("dandi.girder.get_keyring", return_value=fail.Keyring())
    fs.create_file(keyfile.EncryptedKeyring().file_path)
    kb, password = girder.keyring_lookup("testservice", "testusername")
    assert isinstance(kb, keyfile.EncryptedKeyring)
    assert password is None
    get_keyring.assert_called_once_with()
예제 #2
0
def test_keyring_lookup_encrypted_fallback_exists_no_password(
        mocker: MockerFixture, monkeypatch: pytest.MonkeyPatch) -> None:
    monkeypatch.delenv("PYTHON_KEYRING_BACKEND", raising=False)
    get_keyring = mocker.patch("dandi.keyring.get_keyring",
                               return_value=fail.Keyring())
    kf = Path(keyfile.EncryptedKeyring().file_path)
    kf.parent.mkdir(parents=True, exist_ok=True)
    kf.touch()
    kb, password = keyring_lookup("testservice", "testusername")
    assert isinstance(kb, keyfile.EncryptedKeyring)
    assert password is None
    get_keyring.assert_called_once_with()
예제 #3
0
def test_keyring_lookup_encrypted_fallback_exists_password(fs, mocker, monkeypatch):
    monkeypatch.delenv("PYTHON_KEYRING_BACKEND", raising=False)
    get_keyring = mocker.patch("dandi.girder.get_keyring", return_value=fail.Keyring())
    kb0 = keyfile.EncryptedKeyring()
    getpass = mocker.patch("getpass.getpass", return_value="file-password")
    kb0.set_password("testservice", "testusername", "testpassword")
    assert getpass.call_count == 2
    getpass.reset_mock()
    kb, password = girder.keyring_lookup("testservice", "testusername")
    assert getpass.call_count == 1
    assert isinstance(kb, keyfile.EncryptedKeyring)
    assert password == "testpassword"
    get_keyring.assert_called_once_with()
예제 #4
0
 def init_keyring(self):
     return file.EncryptedKeyring()