From da6b58393a5202108dd43460f0dd2b2a4e609405 Mon Sep 17 00:00:00 2001
From: Martijn Vermaat <martijn@vermaat.name>
Date: Sat, 10 Oct 2015 12:50:39 +0200
Subject: [PATCH] Use MUTALYZER_TEST_REDIS_URI in unit tests

---
 doc/testing.rst | 3 +++
 tests/utils.py  | 7 ++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/doc/testing.rst b/doc/testing.rst
index 706d5225..e7bf32f0 100644
--- a/doc/testing.rst
+++ b/doc/testing.rst
@@ -31,6 +31,9 @@ PostgreSQL::
 
     $ pg_virtualenv bash -c 'MUTALYZER_TEST_DATABASE_URI=postgres://${PGUSER}:${PGPASSWORD}@${PGHOST}:${PGPORT}/${PGDATABASE} py.test'
 
+Similarly, the `MUTALYZER_TEST_REDIS_URI` specifies a Redis server to use for
+testing. If unspecified, a mock Redis server is used.
+
 Tests are `run automatically on Travis CI
 <https://travis-ci.org/mutalyzer/mutalyzer>`_ with SQLite, PostgreSQL, and
 MySQL, for each pull request and push on GitHub.
diff --git a/tests/utils.py b/tests/utils.py
index 6743804f..0e77b291 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -11,6 +11,7 @@ import shutil
 import tempfile
 
 from mutalyzer.config import settings
+from mutalyzer.redisclient import client as redis
 from mutalyzer import db
 
 
@@ -27,11 +28,12 @@ class TestEnvironment(object):
         os.close(log_handle)
 
         database_uri = os.getenv('MUTALYZER_TEST_DATABASE_URI', 'sqlite://')
+        redis_uri = os.getenv('MUTALYZER_TEST_REDIS_URI', None)
 
         settings.configure({'DEBUG':        False,
                             'TESTING':      True,
                             'CACHE_DIR':    self.cache_dir,
-                            'REDIS_URI':    None,
+                            'REDIS_URI':    redis_uri,
                             'DATABASE_URI': database_uri,
                             'LOG_FILE':     self.log_file})
 
@@ -41,6 +43,9 @@ class TestEnvironment(object):
             db.Base.metadata.drop_all(db.session.get_bind())
             db.Base.metadata.create_all(db.session.get_bind())
 
+        if redis_uri is not None:
+            redis.flushdb()
+
         for fixture in fixtures:
             fixture()
 
-- 
GitLab