From dd5678a919f0ea8a7d3affed0b47ae746b32ca4c Mon Sep 17 00:00:00 2001 From: Alan Hamlett Date: Sun, 27 Sep 2015 01:59:39 -0700 Subject: [PATCH] tests for connection issues with session caching --- tests/test_session_cache.py | 38 ++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/tests/test_session_cache.py b/tests/test_session_cache.py index c59009e..540d23c 100644 --- a/tests/test_session_cache.py +++ b/tests/test_session_cache.py @@ -10,15 +10,31 @@ class SessionCacheTestCase(utils.TestCase): def test_can_crud_session(self): with tempfile.NamedTemporaryFile() as fh: - db_file = fh.name + cache = SessionCache() + cache.DB_FILE = fh.name - cache = SessionCache() - cache.DB_FILE = db_file - session = cache.get() - session.headers.update({'x-test': 'abc'}) - cache.save(session) - session = cache.get() - self.assertEquals(session.headers.get('x-test'), 'abc') - cache.delete() - session = cache.get() - self.assertEquals(session.headers.get('x-test'), None) + session = cache.get() + session.headers.update({'x-test': 'abc'}) + cache.save(session) + session = cache.get() + self.assertEquals(session.headers.get('x-test'), 'abc') + cache.delete() + session = cache.get() + self.assertEquals(session.headers.get('x-test'), None) + + def test_get_handles_connection_error(self): + with tempfile.NamedTemporaryFile() as fh: + cache = SessionCache() + cache.DB_FILE = fh.name + + with utils.mock.patch('wakatime.session_cache.SessionCache.connect') as mock_connect: + mock_connect.side_effect = OSError('') + + session = cache.get() + session.headers.update({'x-test': 'abc'}) + cache.save(session) + session = cache.get() + self.assertEquals(session.headers.get('x-test'), None) + cache.delete() + session = cache.get() + self.assertEquals(session.headers.get('x-test'), None)