use configparser from py3.5 so we can set delimiters to only equal char to fix #83
This commit is contained in:
parent
079b40c865
commit
50141ef7b9
6 changed files with 1652 additions and 5 deletions
7
tests/samples/configs/project_map_with_colon_in_key.cfg
Normal file
7
tests/samples/configs/project_map_with_colon_in_key.cfg
Normal 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
|
|
@ -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
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue