Beispiel #1
0
    def test_missing_config_file(self):
        args = ['--file', 'tests/samples/emptyfile.txt', '--config', 'foo']
        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)

        self.patched['wakatime.session_cache.SessionCache.get'].assert_not_called()
Beispiel #2
0
    def test_help_contents(self):
        args = ['--help']
        with self.assertRaises(SystemExit):
            main(args)
        expected_stdout = open('tests/samples/output/test_help_contents').read()
        self.assertEquals(sys.stdout.getvalue(), expected_stdout)
        self.assertEquals(sys.stderr.getvalue(), '')

        self.patched['wakatime.offlinequeue.Queue.push'].assert_not_called()
        self.patched['wakatime.offlinequeue.Queue.pop'].assert_not_called()
Beispiel #3
0
    def test_help_contents(self):
        args = ['--help']
        with self.assertRaises(SystemExit):
            main(args)
        expected_stdout = open(
            'tests/samples/output/test_help_contents').read()
        self.assertEquals(sys.stdout.getvalue(), expected_stdout)
        self.assertEquals(sys.stderr.getvalue(), '')

        self.patched['wakatime.offlinequeue.Queue.push'].assert_not_called()
        self.patched['wakatime.offlinequeue.Queue.pop'].assert_not_called()
Beispiel #4
0
    def test_missing_config_file(self):
        args = ['--file', 'tests/samples/emptyfile.txt', '--config', 'foo']
        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)

        self.patched[
            'wakatime.session_cache.SessionCache.get'].assert_not_called()
Beispiel #5
0
    def test_config_file(self):
        response = Response()
        response.status_code = 201
        self.patched[
            'wakatime.packages.requests.adapters.HTTPAdapter.send'].return_value = response

        args = [
            '--file', 'tests/samples/emptyfile.txt', '--config',
            'tests/samples/sample.cfg'
        ]
        retval = main(args)
        self.assertEquals(retval, 0)
        self.assertEquals(sys.stdout.getvalue(), '')
        self.assertEquals(sys.stderr.getvalue(), '')

        self.patched[
            'wakatime.session_cache.SessionCache.get'].assert_called_once_with(
            )
        self.patched[
            'wakatime.session_cache.SessionCache.delete'].assert_not_called()
        self.patched[
            'wakatime.session_cache.SessionCache.save'].assert_called_once_with(
                ANY)

        self.patched['wakatime.offlinequeue.Queue.push'].assert_not_called()
        self.patched[
            'wakatime.offlinequeue.Queue.pop'].assert_called_once_with()
Beispiel #6
0
    def test_400_response(self):
        response = Response()
        response.status_code = 400
        self.patched[
            'wakatime.packages.requests.adapters.HTTPAdapter.send'].return_value = response

        now = u(int(time.time()))

        args = [
            '--file', 'tests/samples/twolinefile.txt', '--key', '123',
            '--config', 'tests/samples/paranoid.cfg', '--time', now
        ]

        retval = main(args)
        self.assertEquals(retval, 102)
        self.assertEquals(sys.stdout.getvalue(), '')
        self.assertEquals(sys.stderr.getvalue(), '')

        self.patched[
            'wakatime.session_cache.SessionCache.delete'].assert_called_once_with(
            )
        self.patched[
            'wakatime.session_cache.SessionCache.get'].assert_called_once_with(
            )
        self.patched[
            'wakatime.session_cache.SessionCache.save'].assert_not_called()

        self.patched['wakatime.offlinequeue.Queue.push'].assert_not_called()
        self.patched['wakatime.offlinequeue.Queue.pop'].assert_not_called()
    def test_python_dependencies_detected(self):
        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/codefile.py'
        config = 'tests/samples/sample.cfg'

        args = ['--file', entity, '--config', config, '--time', now]

        retval = main(args)
        self.assertEquals(retval, 102)
        self.assertEquals(sys.stdout.getvalue(), '')
        self.assertEquals(sys.stderr.getvalue(), '')

        self.patched['wakatime.session_cache.SessionCache.get'].assert_called_once_with()
        self.patched['wakatime.session_cache.SessionCache.delete'].assert_called_once_with()
        self.patched['wakatime.session_cache.SessionCache.save'].assert_not_called()

        heartbeat = {
            'language': 'Python',
            'lines': 26,
            'entity': os.path.abspath(entity),
            'project': os.path.basename(os.path.abspath('.')),
            'dependencies': ['wakatime', 'os', 'mock', 'simplejson', 'django'],
            'branch': os.environ.get('TRAVIS_COMMIT', ANY),
            'time': float(now),
            'type': 'file',
        }
        stats = '{"cursorpos": null, "dependencies": ["wakatime", "os", "mock", "simplejson", "django"], "lines": 26, "lineno": null, "language": "Python"}'

        self.patched['wakatime.offlinequeue.Queue.push'].assert_called_once_with(heartbeat, stats, None)
        self.patched['wakatime.offlinequeue.Queue.pop'].assert_not_called()
Beispiel #8
0
    def test_set_project_from_command_line(self):
        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/twolinefile.txt'
        config = 'tests/samples/sample.cfg'

        args = ['--file', entity, '--project', 'xyz', '--config', config, '--time', now]

        retval = main(args)
        self.assertEquals(retval, 102)
        self.assertEquals(sys.stdout.getvalue(), '')
        self.assertEquals(sys.stderr.getvalue(), '')

        self.patched['wakatime.session_cache.SessionCache.get'].assert_called_once_with()
        self.patched['wakatime.session_cache.SessionCache.delete'].assert_called_once_with()
        self.patched['wakatime.session_cache.SessionCache.save'].assert_not_called()

        heartbeat = {
            'language': 'Text only',
            'lines': 2,
            'entity': os.path.abspath(entity),
            'project': 'xyz',
            'branch': os.environ.get('TRAVIS_COMMIT', ANY),
            'time': float(now),
            'type': 'file',
        }
        stats = '{"cursorpos": null, "dependencies": [], "lines": 2, "lineno": null, "language": "Text only"}'

        self.patched['wakatime.offlinequeue.Queue.push'].assert_called_once_with(heartbeat, stats, None)
        self.patched['wakatime.offlinequeue.Queue.pop'].assert_not_called()
Beispiel #9
0
 def test_bad_config_file(self):
     args = ['--file', 'tests/samples/emptyfile.txt', '--config', 'tests/samples/bad_config.cfg']
     retval = main(args)
     self.assertEquals(retval, 103)
     self.assertIn('ParsingError', sys.stdout.getvalue())
     self.assertEquals(sys.stderr.getvalue(), '')
     self.patched['wakatime.offlinequeue.Queue.push'].assert_not_called()
     self.patched['wakatime.session_cache.SessionCache.get'].assert_not_called()
     self.patched['wakatime.session_cache.SessionCache.delete'].assert_not_called()
     self.patched['wakatime.session_cache.SessionCache.save'].assert_not_called()
Beispiel #10
0
 def test_bad_config_file(self):
     args = [
         '--file', 'tests/samples/emptyfile.txt', '--config',
         'tests/samples/bad_config.cfg'
     ]
     retval = main(args)
     self.assertEquals(retval, 103)
     self.assertIn('ParsingError', sys.stdout.getvalue())
     self.assertEquals(sys.stderr.getvalue(), '')
     self.patched['wakatime.offlinequeue.Queue.push'].assert_not_called()
     self.patched[
         'wakatime.session_cache.SessionCache.get'].assert_not_called()
     self.patched[
         'wakatime.session_cache.SessionCache.delete'].assert_not_called()
     self.patched[
         'wakatime.session_cache.SessionCache.save'].assert_not_called()
Beispiel #11
0
    def test_config_file(self):
        response = Response()
        response.status_code = 201
        self.patched['wakatime.packages.requests.adapters.HTTPAdapter.send'].return_value = response

        args = ['--file', 'tests/samples/emptyfile.txt', '--config', 'tests/samples/sample.cfg']
        retval = main(args)
        self.assertEquals(retval, 0)
        self.assertEquals(sys.stdout.getvalue(), '')
        self.assertEquals(sys.stderr.getvalue(), '')

        self.patched['wakatime.session_cache.SessionCache.get'].assert_called_once_with()
        self.patched['wakatime.session_cache.SessionCache.delete'].assert_not_called()
        self.patched['wakatime.session_cache.SessionCache.save'].assert_called_once_with(ANY)

        self.patched['wakatime.offlinequeue.Queue.push'].assert_not_called()
        self.patched['wakatime.offlinequeue.Queue.pop'].assert_called_once_with()
Beispiel #12
0
    def test_set_project_from_command_line(self):
        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/twolinefile.txt'
        config = 'tests/samples/sample.cfg'

        args = [
            '--file', entity, '--project', 'xyz', '--config', config, '--time',
            now
        ]

        retval = main(args)
        self.assertEquals(retval, 102)
        self.assertEquals(sys.stdout.getvalue(), '')
        self.assertEquals(sys.stderr.getvalue(), '')

        self.patched[
            'wakatime.session_cache.SessionCache.get'].assert_called_once_with(
            )
        self.patched[
            'wakatime.session_cache.SessionCache.delete'].assert_called_once_with(
            )
        self.patched[
            'wakatime.session_cache.SessionCache.save'].assert_not_called()

        heartbeat = {
            'language': 'Text only',
            'lines': 2,
            'entity': os.path.abspath(entity),
            'project': 'xyz',
            'branch': os.environ.get('TRAVIS_COMMIT', ANY),
            'time': float(now),
            'type': 'file',
        }
        stats = '{"cursorpos": null, "dependencies": [], "lines": 2, "lineno": null, "language": "Text only"}'

        self.patched[
            'wakatime.offlinequeue.Queue.push'].assert_called_once_with(
                heartbeat, stats, None)
        self.patched['wakatime.offlinequeue.Queue.pop'].assert_not_called()
    def test_python_dependencies_detected(self):
        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/codefile.py'
        config = 'tests/samples/sample.cfg'

        args = ['--file', entity, '--config', config, '--time', now]

        retval = main(args)
        self.assertEquals(retval, 102)
        self.assertEquals(sys.stdout.getvalue(), '')
        self.assertEquals(sys.stderr.getvalue(), '')

        self.patched[
            'wakatime.session_cache.SessionCache.get'].assert_called_once_with(
            )
        self.patched[
            'wakatime.session_cache.SessionCache.delete'].assert_called_once_with(
            )
        self.patched[
            'wakatime.session_cache.SessionCache.save'].assert_not_called()

        heartbeat = {
            'language': 'Python',
            'lines': 26,
            'entity': os.path.abspath(entity),
            'project': os.path.basename(os.path.abspath('.')),
            'dependencies': ['wakatime', 'os', 'mock', 'simplejson', 'django'],
            'branch': os.environ.get('TRAVIS_COMMIT', ANY),
            'time': float(now),
            'type': 'file',
        }
        stats = '{"cursorpos": null, "dependencies": ["wakatime", "os", "mock", "simplejson", "django"], "lines": 26, "lineno": null, "language": "Python"}'

        self.patched[
            'wakatime.offlinequeue.Queue.push'].assert_called_once_with(
                heartbeat, stats, None)
        self.patched['wakatime.offlinequeue.Queue.pop'].assert_not_called()
Beispiel #14
0
    def test_400_response(self):
        response = Response()
        response.status_code = 400
        self.patched['wakatime.packages.requests.adapters.HTTPAdapter.send'].return_value = response

        now = u(int(time.time()))

        args = ['--file', 'tests/samples/twolinefile.txt', '--key', '123',
                '--config', 'tests/samples/paranoid.cfg', '--time', now]


        retval = main(args)
        self.assertEquals(retval, 102)
        self.assertEquals(sys.stdout.getvalue(), '')
        self.assertEquals(sys.stderr.getvalue(), '')

        self.patched['wakatime.session_cache.SessionCache.delete'].assert_called_once_with()
        self.patched['wakatime.session_cache.SessionCache.get'].assert_called_once_with()
        self.patched['wakatime.session_cache.SessionCache.save'].assert_not_called()

        self.patched['wakatime.offlinequeue.Queue.push'].assert_not_called()
        self.patched['wakatime.offlinequeue.Queue.pop'].assert_not_called()