Fix bug causing random project names when hide project names enabled
This commit is contained in:
parent
60b696858a
commit
8afc6133cf
4 changed files with 40 additions and 1 deletions
|
@ -497,6 +497,9 @@ class ConfigsTestCase(TestCase):
|
||||||
}
|
}
|
||||||
self.assertHeartbeatSent(heartbeat)
|
self.assertHeartbeatSent(heartbeat)
|
||||||
|
|
||||||
|
detected_proj = open(os.path.join(tempdir, 'git', '.wakatime-project')).read()
|
||||||
|
self.assertEquals(detected_proj, generated_proj)
|
||||||
|
|
||||||
self.assertHeartbeatNotSavedOffline()
|
self.assertHeartbeatNotSavedOffline()
|
||||||
self.assertOfflineHeartbeatsSynced()
|
self.assertOfflineHeartbeatsSynced()
|
||||||
self.assertSessionCacheSaved()
|
self.assertSessionCacheSaved()
|
||||||
|
|
|
@ -158,6 +158,13 @@ class ProjectTestCase(TestCase):
|
||||||
entity='projects/wakatime_project_file/emptyfile.txt',
|
entity='projects/wakatime_project_file/emptyfile.txt',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_wakatime_project_file_used_even_when_project_names_hidden(self):
|
||||||
|
self.shared(
|
||||||
|
expected_project='waka-project-file',
|
||||||
|
entity='projects/wakatime_project_file/emptyfile.txt',
|
||||||
|
extra_args=['--hide-project-names'],
|
||||||
|
)
|
||||||
|
|
||||||
def test_git_project_detected(self):
|
def test_git_project_detected(self):
|
||||||
tempdir = tempfile.mkdtemp()
|
tempdir = tempfile.mkdtemp()
|
||||||
shutil.copytree('tests/samples/projects/git', os.path.join(tempdir, 'git'))
|
shutil.copytree('tests/samples/projects/git', os.path.join(tempdir, 'git'))
|
||||||
|
@ -169,6 +176,33 @@ class ProjectTestCase(TestCase):
|
||||||
entity=os.path.join(tempdir, 'git', 'emptyfile.txt'),
|
entity=os.path.join(tempdir, 'git', 'emptyfile.txt'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_get_project_not_used_when_project_names_hidden(self):
|
||||||
|
response = Response()
|
||||||
|
response.status_code = 0
|
||||||
|
self.patched['wakatime.packages.requests.adapters.HTTPAdapter.send'].return_value = response
|
||||||
|
|
||||||
|
tempdir = tempfile.mkdtemp()
|
||||||
|
shutil.copytree('tests/samples/projects/git', os.path.join(tempdir, 'git'))
|
||||||
|
shutil.move(os.path.join(tempdir, 'git', 'dot_git'), os.path.join(tempdir, 'git', '.git'))
|
||||||
|
|
||||||
|
now = u(int(time.time()))
|
||||||
|
entity = os.path.join(tempdir, 'git', 'emptyfile.txt')
|
||||||
|
config = 'tests/samples/configs/good_config.cfg'
|
||||||
|
|
||||||
|
args = ['--hide-project-names', '--file', entity, '--config', config, '--time', now]
|
||||||
|
|
||||||
|
execute(args)
|
||||||
|
self.assertHeartbeatSavedOffline()
|
||||||
|
|
||||||
|
self.assertNotEquals('git', self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['project'])
|
||||||
|
self.assertEquals(None, self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['branch'])
|
||||||
|
proj = open(os.path.join(tempdir, 'git', '.wakatime-project')).read()
|
||||||
|
self.assertEquals(proj, self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['project'])
|
||||||
|
|
||||||
|
execute(args)
|
||||||
|
|
||||||
|
self.assertEquals(proj, self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['project'])
|
||||||
|
|
||||||
@log_capture()
|
@log_capture()
|
||||||
def test_ioerror_when_reading_git_branch(self, logs):
|
def test_ioerror_when_reading_git_branch(self, logs):
|
||||||
logging.disable(logging.NOTSET)
|
logging.disable(logging.NOTSET)
|
||||||
|
|
|
@ -335,7 +335,7 @@ def boolean_or_list(config_name, args, configs, alternative_names=[]):
|
||||||
"""Get a boolean or list of regexes from args and configs."""
|
"""Get a boolean or list of regexes from args and configs."""
|
||||||
|
|
||||||
# when argument flag present, set to wildcard regex
|
# when argument flag present, set to wildcard regex
|
||||||
for key in alternative_names:
|
for key in alternative_names + [config_name]:
|
||||||
if hasattr(args, key) and getattr(args, key):
|
if hasattr(args, key) and getattr(args, key):
|
||||||
setattr(args, config_name, ['.*'])
|
setattr(args, config_name, ['.*'])
|
||||||
return
|
return
|
||||||
|
|
|
@ -69,6 +69,8 @@ def get_project_info(configs, heartbeat, data):
|
||||||
project_name = data.get('project') or heartbeat.args.project
|
project_name = data.get('project') or heartbeat.args.project
|
||||||
|
|
||||||
hide_project = heartbeat.should_obfuscate_project()
|
hide_project = heartbeat.should_obfuscate_project()
|
||||||
|
if hide_project and project_name is not None:
|
||||||
|
return project_name, None
|
||||||
|
|
||||||
if project_name is None or branch_name is None:
|
if project_name is None or branch_name is None:
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue