rana-cli/tests/test_wakatime_base.py

64 lines
2.4 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
2015-08-12 01:59:29 +00:00
import sys
from wakatime.compat import u
from wakatime.packages.requests.models import Response
2015-08-12 01:59:29 +00:00
from . import utils
try:
from mock import patch
2015-08-11 21:53:35 +00:00
except ImportError:
from unittest.mock import patch
from wakatime.base import main
@patch('wakatime.packages.requests.adapters.HTTPAdapter.send')
2015-08-12 01:59:29 +00:00
class BaseTestCase(utils.TestCase):
def test_help_contents(self, mock_requests):
2015-08-12 17:28:01 +00:00
args = ['--help']
with self.assertRaises(SystemExit):
2015-08-12 01:59:29 +00:00
main(args)
expected_stdout = open('tests/samples/output/test_help_contents').read()
self.assertEquals(sys.stdout.getvalue(), expected_stdout)
self.assertEquals(sys.stderr.getvalue(), '')
def test_argument_parsing(self, mock_requests):
response = Response()
response.status_code = 201
mock_requests.return_value = response
2015-08-12 18:04:11 +00:00
args = ['--file', 'tests/samples/twolinefile.txt', '--key', '123', '--config', 'foo']
retval = main(args)
self.assertEquals(retval, 0)
2015-08-12 02:06:01 +00:00
expected_stdout = u("Error: Could not read from config file foo\n")
self.assertEquals(sys.stdout.getvalue(), expected_stdout)
2015-08-12 01:59:29 +00:00
self.assertEquals(sys.stderr.getvalue(), '')
def test_missing_config_file(self, mock_requests):
2015-08-12 17:28:01 +00:00
args = ['--file', 'tests/samples/emptyfile.txt', '--config', 'foo']
2015-08-12 01:59:29 +00:00
with self.assertRaises(SystemExit):
main(args)
expected_stdout = u("Error: Could not read from config file foo\n")
expected_stderr = open('tests/samples/output/test_missing_config_file').read()
self.assertEquals(sys.stdout.getvalue(), expected_stdout)
self.assertEquals(sys.stderr.getvalue(), expected_stderr)
2015-08-12 18:04:11 +00:00
def test_config_file(self, mock_requests):
2015-08-12 01:59:29 +00:00
response = Response()
response.status_code = 201
mock_requests.return_value = response
2015-08-12 17:28:01 +00:00
args = ['--file', 'tests/samples/emptyfile.txt', '--config', 'tests/samples/sample.cfg']
2015-08-12 01:59:29 +00:00
retval = main(args)
self.assertEquals(retval, 0)
self.assertEquals(sys.stdout.getvalue(), '')
self.assertEquals(sys.stderr.getvalue(), '')
2015-08-12 18:04:11 +00:00
def test_bad_config_file(self, mock_requests):
2015-08-12 17:28:01 +00:00
args = ['--file', 'tests/samples/emptyfile.txt', '--config', 'tests/samples/bad_config.cfg']
2015-08-12 01:59:29 +00:00
retval = main(args)
self.assertEquals(retval, 103)
2015-08-12 02:06:01 +00:00
self.assertIn('ParsingError', sys.stdout.getvalue())
2015-08-12 01:59:29 +00:00
self.assertEquals(sys.stderr.getvalue(), '')