From fdaabdd27e5805f255677d32b7c3e4fdc25d62b5 Mon Sep 17 00:00:00 2001 From: Alan Hamlett Date: Mon, 7 Sep 2015 21:40:01 -0700 Subject: [PATCH] tests for mercurial project detection --- tests/samples/projects/hg/.hg/branch | 1 + tests/test_wakatime_project.py | 19 +++++++++++++++++++ wakatime/projects/mercurial.py | 6 +++--- 3 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 tests/samples/projects/hg/.hg/branch diff --git a/tests/samples/projects/hg/.hg/branch b/tests/samples/projects/hg/.hg/branch new file mode 100644 index 0000000..beba0f5 --- /dev/null +++ b/tests/samples/projects/hg/.hg/branch @@ -0,0 +1 @@ +test-hg-branch diff --git a/tests/test_wakatime_project.py b/tests/test_wakatime_project.py index 02d0aa2..bfe6190 100644 --- a/tests/test_wakatime_project.py +++ b/tests/test_wakatime_project.py @@ -119,6 +119,25 @@ class LanguagesTestCase(utils.TestCase): self.assertNotIn('project', self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]) + def test_mercurial_project_detected(self): + response = Response() + response.status_code = 0 + self.patched['wakatime.packages.requests.adapters.HTTPAdapter.send'].return_value = response + + with utils.mock.patch('wakatime.projects.git.Git.process') as mock_git: + mock_git.return_value = False + + now = u(int(time.time())) + entity = 'tests/samples/projects/hg/emptyfile.txt' + config = 'tests/samples/sample.cfg' + + args = ['--file', entity, '--config', config, '--time', now] + + execute(args) + + self.assertEquals('hg', self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['project']) + self.assertEquals('test-hg-branch', self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['branch']) + def test_project_map(self): response = Response() response.status_code = 0 diff --git a/wakatime/projects/mercurial.py b/wakatime/projects/mercurial.py index 11e15fa..7cb3e5e 100644 --- a/wakatime/projects/mercurial.py +++ b/wakatime/projects/mercurial.py @@ -29,7 +29,7 @@ class Mercurial(BaseProject): def name(self): if self.configDir: return u(os.path.basename(os.path.dirname(self.configDir))) - return None + return None # pragma: nocover def branch(self): if self.configDir: @@ -37,13 +37,13 @@ class Mercurial(BaseProject): try: with open(branch_file, 'r', encoding='utf-8') as fh: return u(fh.readline().strip().rsplit('/', 1)[-1]) - except UnicodeDecodeError: + except UnicodeDecodeError: # pragma: nocover try: with open(branch_file, 'r', encoding=sys.getfilesystemencoding()) as fh: return u(fh.readline().strip().rsplit('/', 1)[-1]) except: log.exception("Exception:") - except IOError: + except IOError: # pragma: nocover log.exception("Exception:") return u('default')