40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
|
|
import tempfile
|
|
from wakatime.session_cache import SessionCache
|
|
from . import utils
|
|
|
|
|
|
class SessionCacheTestCase(utils.TestCase):
|
|
|
|
def test_can_crud_session(self):
|
|
with tempfile.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_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)
|