File: test_defrag.py

package info (click to toggle)
python-uritools 6.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 240 kB
  • sloc: python: 1,544; makefile: 10
file content (43 lines) | stat: -rw-r--r-- 1,941 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import unittest

from uritools import uridefrag


class DefragTest(unittest.TestCase):
    def test_uridefrag(self):
        cases = [
            ("http://python.org#frag", "http://python.org", "frag"),
            ("http://python.org", "http://python.org", None),
            ("http://python.org/#frag", "http://python.org/", "frag"),
            ("http://python.org/", "http://python.org/", None),
            ("http://python.org/?q#frag", "http://python.org/?q", "frag"),
            ("http://python.org/?q", "http://python.org/?q", None),
            ("http://python.org/p#frag", "http://python.org/p", "frag"),
            ("http://python.org/p?q", "http://python.org/p?q", None),
            ("http://python.org#", "http://python.org", ""),
            ("http://python.org/#", "http://python.org/", ""),
            ("http://python.org/?q#", "http://python.org/?q", ""),
            ("http://python.org/p?q#", "http://python.org/p?q", ""),
        ]

        def encode(s):
            return s.encode() if s is not None else None

        cases += list(map(encode, case) for case in cases)

        for uri, base, fragment in cases:
            defrag = uridefrag(uri)
            self.assertEqual(defrag, (base, fragment))
            self.assertEqual(defrag.uri, base)
            self.assertEqual(defrag.fragment, fragment)
            self.assertEqual(uri, defrag.geturi())

    def test_getfragment(self):
        self.assertEqual(uridefrag("").getfragment(), None)
        self.assertEqual(uridefrag(b"").getfragment(), None)
        self.assertEqual(uridefrag("#").getfragment(), "")
        self.assertEqual(uridefrag(b"#").getfragment(), "")
        self.assertEqual(uridefrag("#foo").getfragment(), "foo")
        self.assertEqual(uridefrag(b"#foo").getfragment(), "foo")
        self.assertEqual(uridefrag("#foo%20bar").getfragment(), "foo bar")
        self.assertEqual(uridefrag(b"#foo%20bar").getfragment(), "foo bar")