tests for logging
This commit is contained in:
parent
0d1c95cf9c
commit
8aa20da2f1
5 changed files with 87 additions and 14 deletions
3
tests/samples/debug_enabled.cfg
Normal file
3
tests/samples/debug_enabled.cfg
Normal file
|
@ -0,0 +1,3 @@
|
|||
[settings]
|
||||
debug = true
|
||||
api_key = 1234
|
3
tests/samples/good_config.cfg
Normal file
3
tests/samples/good_config.cfg
Normal file
|
@ -0,0 +1,3 @@
|
|||
[settings]
|
||||
debug = false
|
||||
api_key = 1234
|
76
tests/test_logging.py
Normal file
76
tests/test_logging.py
Normal file
|
@ -0,0 +1,76 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
from wakatime.main import execute
|
||||
from wakatime.packages import requests
|
||||
|
||||
import logging
|
||||
import os
|
||||
import tempfile
|
||||
import time
|
||||
import sys
|
||||
from testfixtures import log_capture
|
||||
from wakatime.compat import u
|
||||
from wakatime.packages.requests.models import Response
|
||||
from . import utils
|
||||
|
||||
|
||||
class LanguagesTestCase(utils.TestCase):
|
||||
patch_these = [
|
||||
'wakatime.packages.requests.adapters.HTTPAdapter.send',
|
||||
'wakatime.offlinequeue.Queue.push',
|
||||
['wakatime.offlinequeue.Queue.pop', None],
|
||||
'wakatime.session_cache.SessionCache.save',
|
||||
'wakatime.session_cache.SessionCache.delete',
|
||||
['wakatime.session_cache.SessionCache.get', requests.session],
|
||||
]
|
||||
|
||||
@log_capture()
|
||||
def test_default_log_file_used(self, logs):
|
||||
logging.disable(logging.NOTSET)
|
||||
|
||||
response = Response()
|
||||
response.status_code = 0
|
||||
self.patched['wakatime.packages.requests.adapters.HTTPAdapter.send'].return_value = response
|
||||
|
||||
now = u(int(time.time()))
|
||||
entity = 'tests/samples/codefiles/python.py'
|
||||
config = 'tests/samples/sample.cfg'
|
||||
args = ['--file', entity, '--config', config, '--time', now]
|
||||
|
||||
retval = execute(args)
|
||||
self.assertEquals(retval, 102)
|
||||
self.assertEquals(sys.stdout.getvalue(), '')
|
||||
self.assertEquals(sys.stderr.getvalue(), '')
|
||||
|
||||
self.assertEquals(logging.WARNING, logging.getLogger('WakaTime').level)
|
||||
logfile = os.path.realpath(os.path.expanduser('~/.wakatime.log'))
|
||||
self.assertEquals(logfile, logging.getLogger('WakaTime').handlers[0].baseFilename)
|
||||
output = u("\n").join([u(' ').join(x) for x in logs.actual()])
|
||||
self.assertEquals(output, u("WakaTime WARNING Regex error (unbalanced parenthesis) for include pattern: \\(invalid regex)\nWakaTime WARNING Regex error (unbalanced parenthesis) for exclude pattern: \\(invalid regex)"))
|
||||
|
||||
@log_capture()
|
||||
def test_log_file_location_can_be_changed(self, logs):
|
||||
logging.disable(logging.NOTSET)
|
||||
|
||||
response = Response()
|
||||
response.status_code = 0
|
||||
self.patched['wakatime.packages.requests.adapters.HTTPAdapter.send'].return_value = response
|
||||
|
||||
with tempfile.NamedTemporaryFile() as fh:
|
||||
now = u(int(time.time()))
|
||||
entity = 'tests/samples/codefiles/python.py'
|
||||
config = 'tests/samples/good_config.cfg'
|
||||
logfile = os.path.realpath(fh.name)
|
||||
args = ['--file', entity, '--config', config, '--time', now, '--logfile', logfile]
|
||||
|
||||
execute(args)
|
||||
|
||||
retval = execute(args)
|
||||
self.assertEquals(retval, 102)
|
||||
self.assertEquals(sys.stdout.getvalue(), '')
|
||||
self.assertEquals(sys.stderr.getvalue(), '')
|
||||
|
||||
self.assertEquals(logging.WARNING, logging.getLogger('WakaTime').level)
|
||||
self.assertEquals(logfile, logging.getLogger('WakaTime').handlers[0].baseFilename)
|
||||
logs.check()
|
Loading…
Add table
Add a link
Reference in a new issue