예제 #1
0
 def test_escape(self):
     data = "\t\n\r !\"#$%&'()*+,-./0123456789:;<=>?@"\
         "ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
     escaped_normal = "%09%0A%0D%20!%22%23%24%25%26'()*%2B%2C-.%2F"\
         "0123456789%3A%3B%3C%3D%3E%3F%40"\
         "ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60"\
         "abcdefghijklmnopqrstuvwxyz%7B%7C%7D~"
     escaped_max = "%09%0A%0D%20%21%22%23%24%25%26%27%28%29%2A%2B%2C%2D"\
         "%2E%2F0123456789%3A%3B%3C%3D%3E%3F%40"\
         "ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E%5F%60"\
         "abcdefghijklmnopqrstuvwxyz%7B%7C%7D%7E"
     escaped_min = "%09%0A%0D%20!%22%23$%25&'()*+,-./0123456789:;%3C=%3E?@"\
         "ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60"\
         "abcdefghijklmnopqrstuvwxyz%7B%7C%7D~"
     self.compare_strings(
         escaped_normal, uri.escape_data(data), "Normal escaping")
     self.compare_strings(escaped_max, uri.escape_data(data,
                          lambda x: not uri.is_alpha_num(x)),
                          "Max escaping")
     self.compare_strings(
         escaped_min, uri.escape_data(data, lambda x: False),
         "Min escaping")
     self.compare_strings(data,
                          uri.unescape_data(uri.escape_data(data)),
                          "Round-trip escaping")
예제 #2
0
 def test_escape(self):
     data = "\t\n\r !\"#$%&'()*+,-./0123456789:;<=>?@"\
         "ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
     escaped_normal = "%09%0A%0D%20!%22%23%24%25%26'()*%2B%2C-.%2F"\
         "0123456789%3A%3B%3C%3D%3E%3F%40"\
         "ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60"\
         "abcdefghijklmnopqrstuvwxyz%7B%7C%7D~"
     escaped_max = "%09%0A%0D%20%21%22%23%24%25%26%27%28%29%2A%2B%2C%2D"\
         "%2E%2F0123456789%3A%3B%3C%3D%3E%3F%40"\
         "ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E%5F%60"\
         "abcdefghijklmnopqrstuvwxyz%7B%7C%7D%7E"
     escaped_min = "%09%0A%0D%20!%22%23$%25&'()*+,-./0123456789:;%3C=%3E?@"\
         "ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60"\
         "abcdefghijklmnopqrstuvwxyz%7B%7C%7D~"
     self.compare_strings(escaped_normal, uri.escape_data(data),
                          "Normal escaping")
     self.compare_strings(
         escaped_max,
         uri.escape_data(data, lambda x: not uri.is_alpha_num(x)),
         "Max escaping")
     self.compare_strings(escaped_min,
                          uri.escape_data(data,
                                          lambda x: False), "Min escaping")
     self.compare_strings(data, uri.unescape_data(uri.escape_data(data)),
                          "Round-trip escaping")
예제 #3
0
    def test_basics(self):
        """Tests for basic character classes.

        alpha = lowalpha | upalpha
        lowalpha = "a" | ... | "z"
        upalpha  = "A" | ... | "Z"
        digit = "0" | ... | "9"
        alphanum = alpha | digit
        reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
        unreserved  = alphanum | mark
        mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
        """
        # UPALPHA = <any US-ASCII uppercase letter "A".."Z">
        upalpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_up_alpha(c) == (c in upalpha),
                "is_up_alpha(chr(%i))" % i)
        lowalpha = "abcdefghijklmnopqrstuvwxyz"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(uri.is_low_alpha(c) == (c in lowalpha),
                            "is_low_alpha(chr(%i))" % i)
        alpha = upalpha + lowalpha
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(uri.is_alpha(c) == (c in alpha),
                            "is_alpha(chr(%i))" % i)
        digit = "0123456789"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(uri.is_digit(c) == (c in digit),
                            "is_digit(chr(%i))" % i)
        alphanum = alpha + digit
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(uri.is_alpha_num(c) == (c in alphanum),
                            "is_alpha_num(chr(%i))" % i)
        reserved = ";/?:@&=+$,"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(uri.is_reserved(c) == (c in reserved),
                            "is_reserved(chr(%i))" % i)
        mark = "-_.!~*'()"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(uri.is_mark(c) == (c in mark),
                            "is_mark(chr(%i))" % i)
        unreserved = alphanum + mark
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(uri.is_unreserved(c) == (c in unreserved),
                            "is_unreserved(chr(%i))" % i)
        control = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D"\
            "\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C"\
            "\x1D\x1E\x1F\x7F"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_control(c) == (c in control), "is_control(chr(%i))" % i)
        space = " "
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(uri.is_space(c) == (c in space),
                            "is_space(chr(%i))" % i)
        delims = "<>#%\""
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_delims(c) == (c in delims), "is_delims(chr(%i))" % i)
        unwise = "{}|\\^[]`"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_unwise(c) == (c in unwise), "is_unwise(chr(%i))" % i)
        authority_reserved = ";:@?/"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(uri.is_authority_reserved(c) == (
                c in authority_reserved), "is_authority_reserved(chr(%i))" % i)
        path_segment_reserved = "/;=?"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(uri.is_path_segment_reserved(c) ==
                            (c in path_segment_reserved),
                            "is_path_segment_reserved(chr(%i))" % i)
        query_reserved = ";/?:@&=+,$"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(uri.is_query_reserved(c) == (c in query_reserved),
                            "is_query_reserved(chr(%i))" % i)
예제 #4
0
    def test_basics(self):
        """Tests for basic character classes.

        alpha = lowalpha | upalpha
        lowalpha = "a" | ... | "z"
        upalpha  = "A" | ... | "Z"
        digit = "0" | ... | "9"
        alphanum = alpha | digit
        reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
        unreserved  = alphanum | mark
        mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
        """
        # UPALPHA = <any US-ASCII uppercase letter "A".."Z">
        upalpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_up_alpha(c) == (c in upalpha),
                "is_up_alpha(chr(%i))" % i)
        lowalpha = "abcdefghijklmnopqrstuvwxyz"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_low_alpha(c) == (c in lowalpha),
                "is_low_alpha(chr(%i))" % i)
        alpha = upalpha + lowalpha
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_alpha(c) == (c in alpha), "is_alpha(chr(%i))" % i)
        digit = "0123456789"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_digit(c) == (c in digit), "is_digit(chr(%i))" % i)
        alphanum = alpha + digit
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_alpha_num(c) == (c in alphanum),
                "is_alpha_num(chr(%i))" % i)
        reserved = ";/?:@&=+$,"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_reserved(c) == (c in reserved),
                "is_reserved(chr(%i))" % i)
        mark = "-_.!~*'()"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_mark(c) == (c in mark), "is_mark(chr(%i))" % i)
        unreserved = alphanum + mark
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_unreserved(c) == (c in unreserved),
                "is_unreserved(chr(%i))" % i)
        control = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D"\
            "\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C"\
            "\x1D\x1E\x1F\x7F"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_control(c) == (c in control), "is_control(chr(%i))" % i)
        space = " "
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_space(c) == (c in space), "is_space(chr(%i))" % i)
        delims = "<>#%\""
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_delims(c) == (c in delims), "is_delims(chr(%i))" % i)
        unwise = "{}|\\^[]`"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_unwise(c) == (c in unwise), "is_unwise(chr(%i))" % i)
        authority_reserved = ";:@?/"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_authority_reserved(c) == (c in authority_reserved),
                "is_authority_reserved(chr(%i))" % i)
        path_segment_reserved = "/;=?"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_path_segment_reserved(c) == (c
                                                    in path_segment_reserved),
                "is_path_segment_reserved(chr(%i))" % i)
        query_reserved = ";/?:@&=+,$"
        for i in xrange(0, 256):
            c = chr(i)
            self.assertTrue(
                uri.is_query_reserved(c) == (c in query_reserved),
                "is_query_reserved(chr(%i))" % i)