Esempio n. 1
0
 def test_typical_usage(self):
     self.assertEqual(canonicalize_url("http://www.example.com/do?a=1&b=2&c=3"),
                      "http://www.example.com/do?a=1&b=2&c=3")
     self.assertEqual(canonicalize_url("http://www.example.com/do?c=1&b=2&a=3"),
                      "http://www.example.com/do?a=3&b=2&c=1")
     self.assertEqual(canonicalize_url("http://www.example.com/do?&a=1"),
                      "http://www.example.com/do?a=1")
Esempio n. 2
0
 def test_spaces(self):
     self.assertEqual(canonicalize_url("http://www.example.com/do?q=a space&a=1"),
                      "http://www.example.com/do?a=1&q=a+space")
     self.assertEqual(canonicalize_url("http://www.example.com/do?q=a+space&a=1"),
                      "http://www.example.com/do?a=1&q=a+space")
     self.assertEqual(canonicalize_url("http://www.example.com/do?q=a%20space&a=1"),
                      "http://www.example.com/do?a=1&q=a+space")
Esempio n. 3
0
 def test_non_ascii_percent_encoding_in_path(self):
     self.assertEqual(canonicalize_url("http://www.example.com/a do?a=1"),
                      "http://www.example.com/a%20do?a=1"),
     self.assertEqual(canonicalize_url("http://www.example.com/a %20do?a=1"),
                      "http://www.example.com/a%20%20do?a=1"),
     self.assertEqual(canonicalize_url("http://www.example.com/a do\xc2\xa3.html?a=1"),
                      "http://www.example.com/a%20do%C2%A3.html?a=1")
Esempio n. 4
0
 def test_non_ascii_percent_encoding_in_query_argument(self):
     self.assertEqual(canonicalize_url(u"http://www.example.com/do?price=\xa3500&a=5&z=3"),
                      u"http://www.example.com/do?a=5&price=%C2%A3500&z=3")
     self.assertEqual(canonicalize_url("http://www.example.com/do?price=\xc2\xa3500&a=5&z=3"),
                      "http://www.example.com/do?a=5&price=%C2%A3500&z=3")
     self.assertEqual(canonicalize_url("http://www.example.com/do?price(\xc2\xa3)=500&a=1"),
                      "http://www.example.com/do?a=1&price%28%C2%A3%29=500")
Esempio n. 5
0
 def test_remove_fragments(self):
     self.assertEqual(
         canonicalize_url(u"http://*****:*****@www.example.com/do?a=1#frag"),
         u"http://*****:*****@www.example.com/do?a=1")
     self.assertEqual(
         canonicalize_url(u"http://*****:*****@www.example.com/do?a=1#frag",
                          keep_fragments=True),
         u"http://*****:*****@www.example.com/do?a=1#frag")
Esempio n. 6
0
 def test_non_ascii_percent_encoding_in_path(self):
     self.assertEqual(canonicalize_url("http://www.example.com/a do?a=1"),
                      "http://www.example.com/a%20do?a=1"),
     self.assertEqual(
         canonicalize_url("http://www.example.com/a %20do?a=1"),
         "http://www.example.com/a%20%20do?a=1"),
     self.assertEqual(
         canonicalize_url("http://www.example.com/a do\xc2\xa3.html?a=1"),
         "http://www.example.com/a%20do%C2%A3.html?a=1")
Esempio n. 7
0
 def test_typical_usage(self):
     self.assertEqual(
         canonicalize_url("http://www.example.com/do?a=1&b=2&c=3"),
         "http://www.example.com/do?a=1&b=2&c=3")
     self.assertEqual(
         canonicalize_url("http://www.example.com/do?c=1&b=2&a=3"),
         "http://www.example.com/do?a=3&b=2&c=1")
     self.assertEqual(canonicalize_url("http://www.example.com/do?&a=1"),
                      "http://www.example.com/do?a=1")
Esempio n. 8
0
 def test_spaces(self):
     self.assertEqual(
         canonicalize_url("http://www.example.com/do?q=a space&a=1"),
         "http://www.example.com/do?a=1&q=a+space")
     self.assertEqual(
         canonicalize_url("http://www.example.com/do?q=a+space&a=1"),
         "http://www.example.com/do?a=1&q=a+space")
     self.assertEqual(
         canonicalize_url("http://www.example.com/do?q=a%20space&a=1"),
         "http://www.example.com/do?a=1&q=a+space")
Esempio n. 9
0
    def test_keep_blank_values(self):
        self.assertEqual(canonicalize_url("http://www.example.com/do?b=&a=2", keep_blank_values=False),
                         "http://www.example.com/do?a=2")
        self.assertEqual(canonicalize_url("http://www.example.com/do?b=&a=2"),
                         "http://www.example.com/do?a=2&b=")
        self.assertEqual(canonicalize_url("http://www.example.com/do?b=&c&a=2", keep_blank_values=False),
                         "http://www.example.com/do?a=2")
        self.assertEqual(canonicalize_url("http://www.example.com/do?b=&c&a=2"),
                         "http://www.example.com/do?a=2&b=&c=")

        self.assertEqual(canonicalize_url(u'http://www.example.com/do?1750,4'),
                         'http://www.example.com/do?1750%2C4=')
Esempio n. 10
0
 def test_non_ascii_percent_encoding_in_query_argument(self):
     self.assertEqual(
         canonicalize_url(
             u"http://www.example.com/do?price=\xa3500&a=5&z=3"),
         u"http://www.example.com/do?a=5&price=%C2%A3500&z=3")
     self.assertEqual(
         canonicalize_url(
             "http://www.example.com/do?price=\xc2\xa3500&a=5&z=3"),
         "http://www.example.com/do?a=5&price=%C2%A3500&z=3")
     self.assertEqual(
         canonicalize_url(
             "http://www.example.com/do?price(\xc2\xa3)=500&a=1"),
         "http://www.example.com/do?a=1&price%28%C2%A3%29=500")
Esempio n. 11
0
 def test_dont_convert_safe_chars(self):
     self.assertEqual(
         canonicalize_url(
             "http://www.simplybedrooms.com/White-Bedroom-Furniture/Bedroom-Mirror:-Josephine-Cheval-Mirror.html"
         ),
         "http://www.simplybedrooms.com/White-Bedroom-Furniture/Bedroom-Mirror:-Josephine-Cheval-Mirror.html"
     )
Esempio n. 12
0
    def test_keep_blank_values(self):
        self.assertEqual(
            canonicalize_url("http://www.example.com/do?b=&a=2",
                             keep_blank_values=False),
            "http://www.example.com/do?a=2")
        self.assertEqual(canonicalize_url("http://www.example.com/do?b=&a=2"),
                         "http://www.example.com/do?a=2&b=")
        self.assertEqual(
            canonicalize_url("http://www.example.com/do?b=&c&a=2",
                             keep_blank_values=False),
            "http://www.example.com/do?a=2")
        self.assertEqual(
            canonicalize_url("http://www.example.com/do?b=&c&a=2"),
            "http://www.example.com/do?a=2&b=&c=")

        self.assertEqual(canonicalize_url(u'http://www.example.com/do?1750,4'),
                         'http://www.example.com/do?1750%2C4=')
Esempio n. 13
0
 def test_safe_characters_unicode(self):
     # urllib.quote uses a mapping cache of encoded characters. when parsing
     # an already percent-encoded url, it will fail if that url was not
     # percent-encoded as utf-8, that's why canonicalize_url must always
     # convert the urls to string. the following test asserts that
     # functionality.
     self.assertEqual(canonicalize_url(u'http://www.example.com/caf%E9-con-leche.htm'),
                      'http://www.example.com/caf%E9-con-leche.htm')
Esempio n. 14
0
 def test_safe_characters_unicode(self):
     # urllib.quote uses a mapping cache of encoded characters. when parsing
     # an already percent-encoded url, it will fail if that url was not
     # percent-encoded as utf-8, that's why canonicalize_url must always
     # convert the urls to string. the following test asserts that
     # functionality.
     self.assertEqual(
         canonicalize_url(u'http://www.example.com/caf%E9-con-leche.htm'),
         'http://www.example.com/caf%E9-con-leche.htm')
Esempio n. 15
0
 def test_auth_and_ports(self):
     self.assertEqual(canonicalize_url(u"http://*****:*****@www.example.com:81/do?now=1"),
                      u"http://*****:*****@www.example.com:81/do?now=1")
Esempio n. 16
0
 def test_remove_fragments(self):
     self.assertEqual(canonicalize_url(u"http://*****:*****@www.example.com/do?a=1#frag"),
                      u"http://*****:*****@www.example.com/do?a=1")
     self.assertEqual(canonicalize_url(u"http://*****:*****@www.example.com/do?a=1#frag", keep_fragments=True),
                      u"http://*****:*****@www.example.com/do?a=1#frag")
Esempio n. 17
0
 def test_sorting(self):
     self.assertEqual(
         canonicalize_url("http://www.example.com/do?c=3&b=5&b=2&a=50"),
         "http://www.example.com/do?a=50&b=2&b=5&c=3")
Esempio n. 18
0
 def test_append_missing_path(self):
     self.assertEqual(canonicalize_url("http://www.example.com"),
                      "http://www.example.com/")
Esempio n. 19
0
 def test_normalize_percent_encoding_in_path(self):
     self.assertEqual(canonicalize_url("http://www.example.com/a%a3do"),
                      "http://www.example.com/a%A3do"),
Esempio n. 20
0
 def test_normalize_percent_encoding_in_query_arguments(self):
     self.assertEqual(canonicalize_url("http://www.example.com/do?k=b%a3"),
                      "http://www.example.com/do?k=b%A3")
Esempio n. 21
0
 def test_normalize_percent_encoding_in_query_arguments(self):
     self.assertEqual(canonicalize_url("http://www.example.com/do?k=b%a3"),
                      "http://www.example.com/do?k=b%A3")
Esempio n. 22
0
 def test_normalize_percent_encoding_in_path(self):
     self.assertEqual(canonicalize_url("http://www.example.com/a%a3do"),
                      "http://www.example.com/a%A3do"),
Esempio n. 23
0
 def test_auth_and_ports(self):
     self.assertEqual(
         canonicalize_url(u"http://*****:*****@www.example.com:81/do?now=1"),
         u"http://*****:*****@www.example.com:81/do?now=1")
Esempio n. 24
0
 def test_sorting(self):
     self.assertEqual(canonicalize_url("http://www.example.com/do?c=3&b=5&b=2&a=50"),
                      "http://www.example.com/do?a=50&b=2&b=5&c=3")
Esempio n. 25
0
 def test_returns_str(self):
     assert isinstance(canonicalize_url(u"http://www.example.com"), str)
Esempio n. 26
0
 def _get_fingerprint(self, url):
     return self.fingerprint_function(canonicalize_url(url))
Esempio n. 27
0
 def test_simple_case(self):
     self.assertEqual(canonicalize_url("http://www.example.com/"),
                      "http://www.example.com/")
Esempio n. 28
0
 def test_domains_are_case_insensitive(self):
     self.assertEqual(canonicalize_url("http://www.EXAMPLE.com/"),
                      "http://www.example.com/")
Esempio n. 29
0
 def test_dont_convert_safe_chars(self):
     self.assertEqual(canonicalize_url(
         "http://www.simplybedrooms.com/White-Bedroom-Furniture/Bedroom-Mirror:-Josephine-Cheval-Mirror.html"),
         "http://www.simplybedrooms.com/White-Bedroom-Furniture/Bedroom-Mirror:-Josephine-Cheval-Mirror.html")
Esempio n. 30
0
 def test_domains_are_case_insensitive(self):
     self.assertEqual(canonicalize_url("http://www.EXAMPLE.com/"),
                      "http://www.example.com/")
Esempio n. 31
0
 def test_quoted_slash_and_question_sign(self):
     self.assertEqual(
         canonicalize_url("http://foo.com/AC%2FDC+rocks%3f/?yeah=1"),
         "http://foo.com/AC%2FDC+rocks%3F/?yeah=1")
     self.assertEqual(canonicalize_url("http://foo.com/AC%2FDC/"),
                      "http://foo.com/AC%2FDC/")
Esempio n. 32
0
 def test_quoted_slash_and_question_sign(self):
     self.assertEqual(canonicalize_url("http://foo.com/AC%2FDC+rocks%3f/?yeah=1"),
                      "http://foo.com/AC%2FDC+rocks%3F/?yeah=1")
     self.assertEqual(canonicalize_url("http://foo.com/AC%2FDC/"),
                      "http://foo.com/AC%2FDC/")
Esempio n. 33
0
 def test_returns_str(self):
     assert isinstance(canonicalize_url(u"http://www.example.com"), str)
Esempio n. 34
0
 def _add_fingerprint(self, obj):
     obj.meta['fingerprint'] = self.fingerprint_function(canonicalize_url(obj.url))
     return obj
Esempio n. 35
0
 def test_append_missing_path(self):
     self.assertEqual(canonicalize_url("http://www.example.com"),
                      "http://www.example.com/")
Esempio n. 36
0
 def _get_fingerprint(self, url):
     return self.fingerprint_function(canonicalize_url(url))
Esempio n. 37
0
 def test_simple_case(self):
     self.assertEqual(canonicalize_url("http://www.example.com/"),
                      "http://www.example.com/")