Mock redis in tests using mockredis
This commit is contained in:
parent
b8ce29ed6d
commit
331d421e10
4 changed files with 19 additions and 6 deletions
|
@ -1,3 +1,7 @@
|
|||
mock==1.0.1
|
||||
pytest==3.5.1
|
||||
pytest-cov==2.5.1
|
||||
mockredispy==2.9.3
|
||||
coverage==4.2
|
||||
flake8==3.0.4
|
||||
tox==2.3.1
|
||||
tox==3.0.0
|
||||
|
|
|
@ -25,7 +25,10 @@ app.secret_key = os.environ.get('SECRET_KEY', 'Secret Key')
|
|||
app.config.update(
|
||||
dict(STATIC_URL=os.environ.get('STATIC_URL', 'static')))
|
||||
|
||||
if os.environ.get('REDIS_URL'):
|
||||
if os.environ.get('MOCK_REDIS'):
|
||||
from mockredis import mock_strict_redis_client
|
||||
redis_client = mock_strict_redis_client()
|
||||
elif os.environ.get('REDIS_URL'):
|
||||
redis_client = redis.StrictRedis.from_url(os.environ.get('REDIS_URL'))
|
||||
else:
|
||||
redis_host = os.environ.get('REDIS_HOST', 'localhost')
|
||||
|
|
6
tests.py
6
tests.py
|
@ -1,3 +1,4 @@
|
|||
from mock import patch
|
||||
import time
|
||||
import unittest
|
||||
import uuid
|
||||
|
@ -5,6 +6,7 @@ from unittest import TestCase
|
|||
|
||||
from cryptography.fernet import Fernet
|
||||
from werkzeug.exceptions import BadRequest
|
||||
from mockredis import mock_strict_redis_client
|
||||
|
||||
# noinspection PyPep8Naming
|
||||
import snappass.main as snappass
|
||||
|
@ -14,6 +16,7 @@ __author__ = 'davedash'
|
|||
|
||||
class SnapPassTestCase(TestCase):
|
||||
|
||||
@patch('redis.client.StrictRedis', mock_strict_redis_client)
|
||||
def test_get_password(self):
|
||||
password = "melatonin overdose 1337!$"
|
||||
key = snappass.set_password(password, 30)
|
||||
|
@ -91,6 +94,9 @@ class SnapPassTestCase(TestCase):
|
|||
password = 'open sesame'
|
||||
key = snappass.set_password(password, 1)
|
||||
time.sleep(1.5)
|
||||
# Expire functionality must be explicitly invoked using do_expire(time).
|
||||
# mockredis does not support automatic expiration at this time
|
||||
snappass.redis_client.do_expire()
|
||||
self.assertEqual(None, snappass.get_password(key))
|
||||
|
||||
|
||||
|
|
8
tox.ini
8
tox.ini
|
@ -2,12 +2,12 @@
|
|||
envlist = py27, py34, py35, py36, flake8
|
||||
|
||||
[testenv]
|
||||
deps =
|
||||
pytest
|
||||
pytest-cov
|
||||
setenv =
|
||||
MOCK_REDIS = 1
|
||||
commands =
|
||||
pip install -r requirements.txt
|
||||
py.test --junitxml=junit-{envname}.xml --cov-report xml tests.py
|
||||
pip install -r dev-requirements.txt
|
||||
py.test --junitxml=junit-{envname}.xml --cov-report xml tests.py -s
|
||||
|
||||
[testenv:flake8]
|
||||
commands =
|
||||
|
|
Loading…
Reference in a new issue