Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 2d2ee88

Browse filesBrowse files
Piper Merriamphpdude
authored andcommitted
Add uuid version to uuid regex
1 parent 321877b commit 2d2ee88
Copy full SHA for 2d2ee88

File tree

Expand file treeCollapse file tree

2 files changed

+11
-4
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+11
-4
lines changed

‎macrosurl/__init__.py

Copy file name to clipboardExpand all lines: macrosurl/__init__.py
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
'month': r'(0?([1-9])|10|11|12)',
1111
'day': r'((0|1|2)?([1-9])|[1-3]0|31)',
1212
'date': r'\d{4}-(0?([1-9])|10|11|12)-((0|1|2)?([1-9])|[1-3]0|31)',
13-
'uuid': r'[a-fA-F0-9]{8}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{12}'
13+
'uuid': r'[a-fA-F0-9]{8}-?[a-fA-F0-9]{4}-?[1345][a-fA-F0-9]{3}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{12}',
1414
}
1515

1616

@@ -74,4 +74,4 @@ def url(regex, view, kwargs=None, name=None, prefix=''):
7474
if isinstance(view, tuple) and len(view) == 3:
7575
end_dollar = False
7676

77-
return baseurl(MacroUrlPattern(regex, end_dollar=end_dollar), view, kwargs=kwargs, name=name, prefix=prefix)
77+
return baseurl(MacroUrlPattern(regex, end_dollar=end_dollar), view, kwargs=kwargs, name=name, prefix=prefix)

‎tests/urls.py

Copy file name to clipboardExpand all lines: tests/urls.py
+9-2Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,11 @@ def test_date(self):
6666

6767
def test_uid(self):
6868
self.assertEqual(MacroUrlPattern('invoice/:uuid').compiled,
69-
'^invoice/(?P<uuid>[a-fA-F0-9]{8}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{12})$')
69+
'^invoice/(?P<uuid>[a-fA-F0-9]{8}-?[a-fA-F0-9]{4}-?[1345][a-fA-F0-9]{3}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{12})$')
7070

7171
def test_strongurl(self):
7272
self.assertEqual(MacroUrlPattern('orders/:date/:uuid/products/:slug/:variant_id').compiled,
73-
'^orders/(?P<date>\\d{4}-(0?([1-9])|10|11|12)-((0|1|2)?([1-9])|[1-3]0|31))/(?P<uuid>[a-fA-F0-9]{8}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{12})/products/(?P<slug>[\\w-]+)/(?P<variant_id>\\d+)$')
73+
'^orders/(?P<date>\\d{4}-(0?([1-9])|10|11|12)-((0|1|2)?([1-9])|[1-3]0|31))/(?P<uuid>[a-fA-F0-9]{8}-?[a-fA-F0-9]{4}-?[1345][a-fA-F0-9]{3}-?[a-fA-F0-9]{4}-?[a-fA-F0-9]{12})/products/(?P<slug>[\\w-]+)/(?P<variant_id>\\d+)$')
7474

7575
# noinspection PyProtectedMember
7676
def test_includes_end(self):
@@ -130,3 +130,10 @@ def test_uuid(self):
130130
self.assertIsNone(url("invoice/:uuid", 'view').resolve('invoice/123123-123123-1231231-1231312-3-1312312-'))
131131
for i in range(1, 1000):
132132
self.assertIsNotNone(url("invoice/:uuid", 'view').resolve('invoice/%s' % uuid.uuid4()))
133+
134+
def test_no_match_for_invalid_uuid(self):
135+
"""
136+
UUID with invalid version. The allowed versions are 1, 2, 4 and 5
137+
xxxxxxxx-xxxx-Vxxx-xxx-xxxxxxxxxxxx
138+
"""
139+
self.assertIsNone(url("invoice/:uuid", 'view').resolve('invoice/3e41b04d-0978-9027-86c2-aa90c63ecb54'))

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.