Commit ca8f534f authored by FichteFoll's avatar FichteFoll

Add tests for the details urls

I decided to allow trailing slashes for now because they seem to work
internally (at least thos package seem to be installable) and quite a
few use it.
parent cf924e53
...@@ -133,6 +133,16 @@ class TestContainer(object): ...@@ -133,6 +133,16 @@ class TestContainer(object):
'labels': list 'labels': list
} }
d_reg = r'''^ (https:// github\.com/ [^/]+/ [^/]+ (/tree/ .+ (?<!/)
|/tags
|/)?
|https:// bitbucket\.org/ [^/]+/ [^/]+ (/src/ .+ (?<!/)
|\#tags
|/)?
) $'''
# Strip multilines for better debug info on failures
details_regex = re.compile(' '.join(d_reg.split()), re.X)
def _test_repository_keys(self, include, data): def _test_repository_keys(self, include, data):
self.assertTrue(2 <= len(data) <= 3, "Unexpected number of keys") self.assertTrue(2 <= len(data) <= 3, "Unexpected number of keys")
self.assertIn('schema_version', data) self.assertIn('schema_version', data)
...@@ -182,10 +192,14 @@ class TestContainer(object): ...@@ -182,10 +192,14 @@ class TestContainer(object):
self.assertIn(k, self.package_key_types_map) self.assertIn(k, self.package_key_types_map)
self.assertIsInstance(v, self.package_key_types_map[k], k) self.assertIsInstance(v, self.package_key_types_map[k], k)
if k in ('details', 'homepage', 'readme', 'issues', 'donate', if k in ('homepage', 'readme', 'issues', 'donate', 'buy'):
'buy'):
self.assertRegex(v, '^https?://') self.assertRegex(v, '^https?://')
if k == 'details':
self.assertRegex(v, self.details_regex,
'The details url is badly formatted or '
'invalid')
# Test for invalid characters (on file systems) # Test for invalid characters (on file systems)
if k == 'name': if k == 'name':
# Invalid on Windows (and sometimes problematic on UNIX) # Invalid on Windows (and sometimes problematic on UNIX)
...@@ -233,8 +247,13 @@ class TestContainer(object): ...@@ -233,8 +247,13 @@ class TestContainer(object):
if k == 'date': if k == 'date':
self.assertRegex(v, r"^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d$") self.assertRegex(v, r"^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d$")
if k in ('details', 'url'): if k == 'url':
self.assertRegex(v, '^https?://') self.assertRegex(v, r'^https?://')
if k == 'details':
self.assertRegex(v, self.details_regex,
'The details url is badly formatted or '
'invalid')
if k == 'sublime_text': if k == 'sublime_text':
self.assertRegex(v, '^(\*|<=?\d{4}|>=?\d{4})$', self.assertRegex(v, '^(\*|<=?\d{4}|>=?\d{4})$',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment