def test_repeats(self): """ GET parameters with multiple values should have all their values preserved """ request = Mock(GET=QueryDict('foo=bar&baz=5&foo=ok')) url = urlparse.urlsplit(page_url(request, 4)) args = urlparse.parse_qs(url.query) eq_(args, {'foo': ['bar', 'ok'], 'baz': ['5'], 'page': ['4']})
def test_existing_page_arg(self): """ If the current page already has a page GET argument, override it. """ request = Mock(GET=QueryDict('foo=bar&page=5')) url = urlparse.urlsplit(page_url(request, 4)) args = urlparse.parse_qs(url.query) eq_(args, {'foo': ['bar'], 'page': ['4']})
def test_existing_page_arg(self): """ If the current page already has a page GET argument, override it. """ request = Mock(GET={'foo': 'bar', 'page': 5}) url = urlparse.urlsplit(page_url(request, 4)) args = urlparse.parse_qs(url.query) eq_(args, {'foo': ['bar'], 'page': ['4']})
def test_basic(self): """ page_url should return a relative link to the current page, preserving the GET arguments from the given request, and adding a page parameter for the given page. """ request = Mock(GET={'foo': 'bar', 'baz': 5}) url = urlparse.urlsplit(page_url(request, 4)) args = urlparse.parse_qs(url.query) eq_(args, {'foo': ['bar'], 'baz': ['5'], 'page': ['4']})