use configparser from py3.5 so we can set delimiters to only equal char to fix #83

This commit is contained in:
Alan Hamlett 2017-03-04 10:07:00 -08:00
parent 079b40c865
commit 50141ef7b9
6 changed files with 1652 additions and 5 deletions

View file

@ -0,0 +1,7 @@
[settings]
debug = false
api_key = ba50f683-bb6b-4f31-9c84-7c70412234f7
[projectmap]
samples/projects/project_map:_with_colon/ = proj-map-nomatch-1
samples/projects/project_map = proj-map-match
samples/projects/project_map:_with_colon/ = proj-map-nomatch-2

View file

@ -0,0 +1,9 @@
[settings]
debug = false
api_key = ba50f683-bb6b-4f31-9c84-7c70412234f7
[projectmap]
samples/projects/project_map/ = proj-map-duplicate-1
samples/projects/project_map/ = proj-map-duplicate-2
samples/projects/project_map/ = proj-map-duplicate-3
samples/projects/project_map/ = proj-map-duplicate-4
samples/projects/project_map/ = proj-map-duplicate-5

View file

@ -345,7 +345,10 @@ class ProjectTestCase(utils.TestCase):
self.assertEquals('hg', self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['project'])
self.assertEquals('default', self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['branch'])
def test_project_map(self):
@log_capture()
def test_project_map(self, logs):
logging.disable(logging.NOTSET)
response = Response()
response.status_code = 0
self.patched['wakatime.packages.requests.adapters.HTTPAdapter.send'].return_value = response
@ -360,7 +363,17 @@ class ProjectTestCase(utils.TestCase):
self.assertEquals('proj-map', self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['project'])
def test_project_map_group_usage(self):
self.assertEquals(sys.stdout.getvalue(), '')
self.assertEquals(sys.stderr.getvalue(), '')
log_output = "\n".join([u(' ').join(x) for x in logs.actual()])
expected = u('')
self.assertEquals(log_output, expected)
@log_capture()
def test_project_map_group_usage(self, logs):
logging.disable(logging.NOTSET)
response = Response()
response.status_code = 0
self.patched['wakatime.packages.requests.adapters.HTTPAdapter.send'].return_value = response
@ -375,6 +388,13 @@ class ProjectTestCase(utils.TestCase):
self.assertEquals('proj-map42', self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['project'])
self.assertEquals(sys.stdout.getvalue(), '')
self.assertEquals(sys.stderr.getvalue(), '')
log_output = "\n".join([u(' ').join(x) for x in logs.actual()])
expected = u('')
self.assertEquals(log_output, expected)
@log_capture()
def test_project_map_with_invalid_regex(self, logs):
logging.disable(logging.NOTSET)
@ -423,3 +443,53 @@ class ProjectTestCase(utils.TestCase):
log_output = "\n".join([u(' ').join(x) for x in logs.actual()])
expected = u('WakaTime WARNING Regex error (tuple index out of range) for projectmap pattern: proj-map{3}')
self.assertEquals(log_output, expected)
@log_capture()
def test_project_map_allows_duplicate_keys(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/projects/project_map/emptyfile.txt'
config = 'tests/samples/configs/project_map_with_duplicate_keys.cfg'
args = ['--file', entity, '--config', config, '--time', now]
execute(args)
self.assertEquals('proj-map-duplicate-5', self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['project'])
self.assertEquals(sys.stdout.getvalue(), '')
self.assertEquals(sys.stderr.getvalue(), '')
log_output = "\n".join([u(' ').join(x) for x in logs.actual()])
expected = u('')
self.assertEquals(log_output, expected)
@log_capture()
def test_project_map_allows_colon_in_key(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/projects/project_map/emptyfile.txt'
config = 'tests/samples/configs/project_map_with_colon_in_key.cfg'
args = ['--file', entity, '--config', config, '--time', now]
execute(args)
self.assertEquals('proj-map-match', self.patched['wakatime.offlinequeue.Queue.push'].call_args[0][0]['project'])
self.assertEquals(sys.stdout.getvalue(), '')
self.assertEquals(sys.stderr.getvalue(), '')
log_output = "\n".join([u(' ').join(x) for x in logs.actual()])
expected = u('')
self.assertEquals(log_output, expected)