|
@@ -70,9 +70,15 @@ class SlugifyTests(TestCase):
|
|
|
|
|
|
def test_valid_slugify_output(self):
|
|
|
"""Misago's slugify correctly slugifies string"""
|
|
|
- test_cases = (('Bob', 'bob'), ('Eric The Fish', 'eric-the-fish'),
|
|
|
- ('John Snow', 'john-snow'), ('J0n', 'j0n'), ('An###ne', 'anne'),
|
|
|
- ('S**t', 'st'), ('Łók', 'lok'), )
|
|
|
+ test_cases = [
|
|
|
+ ('Bob', 'bob'),
|
|
|
+ ('Eric The Fish', 'eric-the-fish'),
|
|
|
+ ('John Snow', 'john-snow'),
|
|
|
+ ('J0n', 'j0n'),
|
|
|
+ ('An###ne', 'anne'),
|
|
|
+ ('S**t', 'st'),
|
|
|
+ ('Łók', 'lok'),
|
|
|
+ ]
|
|
|
|
|
|
for original, slug in test_cases:
|
|
|
self.assertEqual(slugify(original), slug)
|
|
@@ -81,36 +87,41 @@ class SlugifyTests(TestCase):
|
|
|
class ParseIso8601StringTests(TestCase):
|
|
|
def test_valid_input(self):
|
|
|
"""util parses iso 8601 strings"""
|
|
|
- INPUTS = (
|
|
|
- '2016-10-22T20:55:39.185085Z', '2016-10-22T20:55:39.185085-01:00',
|
|
|
- '2016-10-22T20:55:39-01:00', '2016-10-22T20:55:39.185085+01:00',
|
|
|
- )
|
|
|
+ INPUTS = [
|
|
|
+ '2016-10-22T20:55:39.185085Z',
|
|
|
+ '2016-10-22T20:55:39.185085-01:00',
|
|
|
+ '2016-10-22T20:55:39-01:00',
|
|
|
+ '2016-10-22T20:55:39.185085+01:00',
|
|
|
+ ]
|
|
|
|
|
|
for test_input in INPUTS:
|
|
|
self.assertTrue(parse_iso8601_string(test_input))
|
|
|
|
|
|
def test_invalid_input(self):
|
|
|
"""util throws ValueError on invalid input"""
|
|
|
- INPUTS = (
|
|
|
- '', '2016-10-22', '2016-10-22T30:55:39.185085+11:00',
|
|
|
+ INPUTS = [
|
|
|
+ '',
|
|
|
+ '2016-10-22',
|
|
|
+ '2016-10-22T30:55:39.185085+11:00',
|
|
|
'2016-10-22T20:55:39.18SSSSS5085Z',
|
|
|
- )
|
|
|
+ ]
|
|
|
|
|
|
for test_input in INPUTS:
|
|
|
with self.assertRaises(ValueError):
|
|
|
self.assertTrue(parse_iso8601_string(test_input))
|
|
|
|
|
|
|
|
|
-PLAINTEXT_FORMAT_CASES = (
|
|
|
- ('Lorem ipsum.',
|
|
|
- '<p>Lorem ipsum.</p>'), ('Lorem <b>ipsum</b>.', '<p>Lorem <b>ipsum</b>.</p>'),
|
|
|
+PLAINTEXT_FORMAT_CASES = [
|
|
|
+ ('Lorem ipsum.', '<p>Lorem ipsum.</p>'),
|
|
|
+ ('Lorem <b>ipsum</b>.', '<p>Lorem <b>ipsum</b>.</p>'),
|
|
|
('Lorem "ipsum" dolor met.', '<p>Lorem "ipsum" dolor met.</p>'),
|
|
|
('Lorem ipsum.\nDolor met.', '<p>Lorem ipsum.<br />Dolor met.</p>'),
|
|
|
- ('Lorem ipsum.\n\nDolor met.', '<p>Lorem ipsum.</p>\n\n<p>Dolor met.</p>'), (
|
|
|
+ ('Lorem ipsum.\n\nDolor met.', '<p>Lorem ipsum.</p>\n\n<p>Dolor met.</p>'),
|
|
|
+ (
|
|
|
'http://misago-project.org/login/',
|
|
|
'<p><a href="http://misago-project.org/login/">http://misago-project.org/login/</a></p>'
|
|
|
),
|
|
|
-)
|
|
|
+]
|
|
|
|
|
|
|
|
|
class FormatPlaintextForHtmlTests(TestCase):
|
|
@@ -141,37 +152,41 @@ class CleanReturnPathTests(TestCase):
|
|
|
def test_get_request(self):
|
|
|
"""clean_return_path works for GET requests"""
|
|
|
bad_request = MockRequest(
|
|
|
- 'GET', {'HTTP_REFERER': 'http://cookies.com',
|
|
|
- 'HTTP_HOST': 'misago-project.org'}
|
|
|
+ 'GET', {
|
|
|
+ 'HTTP_REFERER': 'http://cookies.com',
|
|
|
+ 'HTTP_HOST': 'misago-project.org',
|
|
|
+ }
|
|
|
)
|
|
|
self.assertIsNone(clean_return_path(bad_request))
|
|
|
|
|
|
bad_request = MockRequest(
|
|
|
- 'GET',
|
|
|
- {'HTTP_REFERER': 'https://misago-project.org/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/'}
|
|
|
+ 'GET', {
|
|
|
+ 'HTTP_REFERER': 'https://misago-project.org/',
|
|
|
+ 'HTTP_HOST': 'misago-project.org/',
|
|
|
+ }
|
|
|
)
|
|
|
self.assertIsNone(clean_return_path(bad_request))
|
|
|
|
|
|
bad_request = MockRequest(
|
|
|
'GET', {
|
|
|
'HTTP_REFERER': 'https://misago-project.org/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/assadsa/'
|
|
|
+ 'HTTP_HOST': 'misago-project.org/assadsa/',
|
|
|
}
|
|
|
)
|
|
|
self.assertIsNone(clean_return_path(bad_request))
|
|
|
|
|
|
ok_request = MockRequest(
|
|
|
- 'GET',
|
|
|
- {'HTTP_REFERER': 'http://misago-project.org/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/'}
|
|
|
+ 'GET', {
|
|
|
+ 'HTTP_REFERER': 'http://misago-project.org/',
|
|
|
+ 'HTTP_HOST': 'misago-project.org/',
|
|
|
+ }
|
|
|
)
|
|
|
self.assertEqual(clean_return_path(ok_request), '/')
|
|
|
|
|
|
ok_request = MockRequest(
|
|
|
'GET', {
|
|
|
'HTTP_REFERER': 'http://misago-project.org/login/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/'
|
|
|
+ 'HTTP_HOST': 'misago-project.org/',
|
|
|
}
|
|
|
)
|
|
|
self.assertEqual(clean_return_path(ok_request), '/login/')
|
|
@@ -179,16 +194,22 @@ class CleanReturnPathTests(TestCase):
|
|
|
def test_post_request(self):
|
|
|
"""clean_return_path works for POST requests"""
|
|
|
bad_request = MockRequest(
|
|
|
- 'POST',
|
|
|
- {'HTTP_REFERER': 'http://misago-project.org/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/'}, {'return_path': '/sdasdsa/'}
|
|
|
+ 'POST', {
|
|
|
+ 'HTTP_REFERER': 'http://misago-project.org/',
|
|
|
+ 'HTTP_HOST': 'misago-project.org/',
|
|
|
+ }, {
|
|
|
+ 'return_path': '/sdasdsa/',
|
|
|
+ }
|
|
|
)
|
|
|
self.assertIsNone(clean_return_path(bad_request))
|
|
|
|
|
|
ok_request = MockRequest(
|
|
|
- 'POST',
|
|
|
- {'HTTP_REFERER': 'http://misago-project.org/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/'}, {'return_path': '/login/'}
|
|
|
+ 'POST', {
|
|
|
+ 'HTTP_REFERER': 'http://misago-project.org/',
|
|
|
+ 'HTTP_HOST': 'misago-project.org/',
|
|
|
+ }, {
|
|
|
+ 'return_path': '/login/',
|
|
|
+ }
|
|
|
)
|
|
|
self.assertEqual(clean_return_path(ok_request), '/login/')
|
|
|
|
|
@@ -197,23 +218,25 @@ class IsRefererLocalTests(TestCase):
|
|
|
def test_local_referers(self):
|
|
|
"""local referers return true"""
|
|
|
ok_request = MockRequest(
|
|
|
- 'GET',
|
|
|
- {'HTTP_REFERER': 'http://misago-project.org/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/'}
|
|
|
+ 'GET', {
|
|
|
+ 'HTTP_REFERER': 'http://misago-project.org/',
|
|
|
+ 'HTTP_HOST': 'misago-project.org/',
|
|
|
+ }
|
|
|
)
|
|
|
self.assertTrue(is_referer_local(ok_request))
|
|
|
|
|
|
ok_request = MockRequest(
|
|
|
- 'GET',
|
|
|
- {'HTTP_REFERER': 'http://misago-project.org/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/'}
|
|
|
+ 'GET', {
|
|
|
+ 'HTTP_REFERER': 'http://misago-project.org/',
|
|
|
+ 'HTTP_HOST': 'misago-project.org/',
|
|
|
+ }
|
|
|
)
|
|
|
self.assertTrue(is_referer_local(ok_request))
|
|
|
|
|
|
ok_request = MockRequest(
|
|
|
'GET', {
|
|
|
'HTTP_REFERER': 'http://misago-project.org/login/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/'
|
|
|
+ 'HTTP_HOST': 'misago-project.org/',
|
|
|
}
|
|
|
)
|
|
|
self.assertTrue(is_referer_local(ok_request))
|
|
@@ -221,23 +244,25 @@ class IsRefererLocalTests(TestCase):
|
|
|
def test_foreign_referers(self):
|
|
|
"""non-local referers return false"""
|
|
|
bad_request = MockRequest(
|
|
|
- 'GET',
|
|
|
- {'HTTP_REFERER': 'http://else-project.org/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/'}
|
|
|
+ 'GET', {
|
|
|
+ 'HTTP_REFERER': 'http://else-project.org/',
|
|
|
+ 'HTTP_HOST': 'misago-project.org/',
|
|
|
+ }
|
|
|
)
|
|
|
self.assertFalse(is_referer_local(bad_request))
|
|
|
|
|
|
bad_request = MockRequest(
|
|
|
- 'GET',
|
|
|
- {'HTTP_REFERER': 'https://misago-project.org/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/'}
|
|
|
+ 'GET', {
|
|
|
+ 'HTTP_REFERER': 'https://misago-project.org/',
|
|
|
+ 'HTTP_HOST': 'misago-project.org/',
|
|
|
+ }
|
|
|
)
|
|
|
self.assertFalse(is_referer_local(bad_request))
|
|
|
|
|
|
bad_request = MockRequest(
|
|
|
'GET', {
|
|
|
'HTTP_REFERER': 'http://misago-project.org/',
|
|
|
- 'HTTP_HOST': 'misago-project.org/assadsa/'
|
|
|
+ 'HTTP_HOST': 'misago-project.org/assadsa/',
|
|
|
}
|
|
|
)
|
|
|
self.assertFalse(is_referer_local(bad_request))
|