Skip to content

Commit

Permalink
Use a mock keyring backend
Browse files Browse the repository at this point in the history
Closes #2
  • Loading branch information
osteele committed Jun 14, 2018
1 parent 9d8ff06 commit 7b19b8e
Show file tree
Hide file tree
Showing 4 changed files with 220 additions and 38 deletions.
8 changes: 8 additions & 0 deletions Pipfile
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
[[source]]

url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"


[packages]

keyring = "*"
ipython = "*"


[dev-packages]

pytest = "*"
bumpversion = "*"
sphinx = "*"
sphinx-rtd-theme = "*"
tox = "*"
flit = "*"
ipython = "*"
pytest-watch = "*"


[requires]

python_version = "3.6"
182 changes: 172 additions & 10 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 35 additions & 0 deletions conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import os
import keyring
import pytest
from keyring.errors import PasswordDeleteError

os.environ['USER'] = 'ipython_secrets_PYTEST_USER'


class MockKeyringBackend(keyring.backend.KeyringBackend):
_passwords = dict()

def clear(self):
self._passwords.clear()

def get_password(self, servicename, username):
return self._passwords.get((servicename, username))

def set_password(self, servicename, username, password):
self._passwords[(servicename, username)] = password

def delete_password(self, servicename, username):
try:
self._passwords.pop((servicename, username))
except IndexError:
raise PasswordDeleteError()


mockKeyringBackend = MockKeyringBackend()
keyring.set_keyring(mockKeyringBackend)


@pytest.fixture
def keyring_backend():
mockKeyringBackend.clear()
return mockKeyringBackend

0 comments on commit 7b19b8e

Please sign in to comment.