diff --git a/tests/test_html.py b/tests/test_html.py
index 67696963..1b30fa95 100644
--- a/tests/test_html.py
+++ b/tests/test_html.py
@@ -99,8 +99,9 @@ def test_existing_filter_redirects(app_client):
path = path_base + '?' + urllib.parse.urlencode(filter_args)
response = app_client.get(path, allow_redirects=False, gather_request=False)
assert response.status == 302
- assert response.headers['Location'].endswith(
- '?name__contains=hello&age__gte=22&age__lt=30&name__contains=world'
+ assert_querystring_equal(
+ 'name__contains=hello&age__gte=22&age__lt=30&name__contains=world',
+ response.headers['Location'].split('?')[1],
)
# Setting _filter_column_3 to empty string should remove *_3 entirely
@@ -108,8 +109,9 @@ def test_existing_filter_redirects(app_client):
path = path_base + '?' + urllib.parse.urlencode(filter_args)
response = app_client.get(path, allow_redirects=False, gather_request=False)
assert response.status == 302
- assert response.headers['Location'].endswith(
- '?name__contains=hello&age__gte=22&name__contains=world'
+ assert_querystring_equal(
+ 'name__contains=hello&age__gte=22&name__contains=world',
+ response.headers['Location'].split('?')[1],
)
# ?_filter_op=exact should be removed if unaccompanied by _fiter_column
@@ -399,6 +401,10 @@ def test_table_metadata(app_client):
assert_footer_links(soup)
+def assert_querystring_equal(expected, actual):
+ assert sorted(expected.split('&')) == sorted(actual.split('&'))
+
+
def assert_footer_links(soup):
footer_links = soup.find('div', {'class': 'ft'}).findAll('a')
assert 3 == len(footer_links)