39
39
s_prime = oidutil.fromBase64(b64)
40
40
assert s_prime == s, (s, b64, s_prime)
42
def test_normalizeUrl():
43
n = oidutil.normalizeUrl
45
assert 'http://foo.com/' == n('foo.com')
47
assert 'http://foo.com/' == n('http://foo.com')
48
assert 'https://foo.com/' == n('https://foo.com')
49
assert 'http://foo.com/bar' == n('foo.com/bar')
50
assert 'http://foo.com/bar' == n('http://foo.com/bar')
52
assert 'http://foo.com/' == n('http://foo.com/')
53
assert 'https://foo.com/' == n('https://foo.com/')
54
assert 'https://foo.com/bar' == n('https://foo.com/bar')
56
assert 'http://foo.com/%E8%8D%89' == n(u'foo.com/\u8349')
57
assert 'http://foo.com/%E8%8D%89' == n(u'http://foo.com/\u8349')
59
non_ascii_domain_cases = [
60
('http://xn--vl1a.com/', u'\u8349.com'),
61
('http://xn--vl1a.com/', u'http://\u8349.com'),
62
('http://xn--vl1a.com/', u'\u8349.com/'),
63
('http://xn--vl1a.com/', u'http://\u8349.com/'),
64
('http://xn--vl1a.com/%E8%8D%89', u'\u8349.com/\u8349'),
65
('http://xn--vl1a.com/%E8%8D%89', u'http://\u8349.com/\u8349'),
69
codecs.getencoder('idna')
71
# If there is no idna codec, these cases with
72
# non-ascii-representable domain names should fail.
77
for expected, case in non_ascii_domain_cases:
83
assert not should_raise and actual == expected, case
85
assert n(None) is None
87
assert n('http://') is None
89
42
class AppendArgsTest(unittest.TestCase):
90
43
def __init__(self, desc, args, expected):
91
44
unittest.TestCase.__init__(self)
100
53
def shortDescription(self):
58
class TestSymbol(unittest.TestCase):
59
def testCopyHash(self):
61
s = oidutil.Symbol("Foo")
63
d_prime = copy.deepcopy(d)
64
self.failUnless(s in d_prime, "%r isn't in %r" % (s, d_prime))
66
t = oidutil.Symbol("Bar")
67
self.failIfEqual(hash(s), hash(t))
103
70
def buildAppendTests():
104
71
simple = 'http://www.example.com/'
185
152
return unittest.TestSuite(tests)
187
154
def pyUnitTests():
188
return buildAppendTests()
155
some = buildAppendTests()
156
some.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestSymbol))
190
159
def test_appendArgs():
191
160
suite = buildAppendTests()
161
suite.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestSymbol))
192
162
runner = unittest.TextTestRunner()
193
163
result = runner.run(suite)
194
164
assert result.wasSuccessful()