rana-cli/tests/test_session_cache.py

59 lines
2 KiB
Python

# -*- coding: utf-8 -*-
from wakatime.session_cache import SessionCache
from wakatime.logger import setup_logging
from . import utils
class SessionCacheTestCase(utils.TestCase):
patch_these = [
'wakatime.packages.requests.adapters.HTTPAdapter.send',
'wakatime.offlinequeue.Queue.push',
['wakatime.offlinequeue.Queue.pop', None],
['wakatime.offlinequeue.Queue.connect', None],
]
def setUp(self):
super(SessionCacheTestCase, self).setUp()
class MockArgs(object):
timestamp = 0
is_write = False
entity = ''
version = ''
plugin = ''
verbose = False
logfile = ''
self.args = MockArgs()
setup_logging(self.args, self.args.version)
def test_can_crud_session(self):
with utils.NamedTemporaryFile() as fh:
cache = SessionCache()
cache.DB_FILE = fh.name
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_handles_connection_exception(self):
with utils.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)