]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - src/allmydata/test/test_netstring.py
Avoid spurious SUCCESS!?? for test_format_time_y2038.
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / test / test_netstring.py
1
2 from twisted.trial import unittest
3 from allmydata.util.netstring import netstring, split_netstring
4
5 class Netstring(unittest.TestCase):
6     def test_split(self):
7         a = netstring("hello") + netstring("world")
8         self.failUnlessEqual(split_netstring(a, 2), (["hello", "world"], len(a)))
9         self.failUnlessEqual(split_netstring(a, 2, required_trailer=""), (["hello", "world"], len(a)))
10         self.failUnlessRaises(ValueError, split_netstring, a, 3)
11         self.failUnlessRaises(ValueError, split_netstring, a+" extra", 2, required_trailer="")
12         self.failUnlessEqual(split_netstring(a+" extra", 2), (["hello", "world"], len(a)))
13         self.failUnlessEqual(split_netstring(a+"++", 2, required_trailer="++"),
14                              (["hello", "world"], len(a)+2))
15         self.failUnlessRaises(ValueError,
16                               split_netstring, a+"+", 2, required_trailer="not")
17
18     def test_extra(self):
19         a = netstring("hello")
20         self.failUnlessEqual(split_netstring(a, 1), (["hello"], len(a)))
21         b = netstring("hello") + "extra stuff"
22         self.failUnlessEqual(split_netstring(b, 1),
23                              (["hello"], len(a)))
24
25     def test_nested(self):
26         a = netstring("hello") + netstring("world") + "extra stuff"
27         b = netstring("a") + netstring("is") + netstring(a) + netstring(".")
28         (top, pos) = split_netstring(b, 4)
29         self.failUnlessEqual(len(top), 4)
30         self.failUnlessEqual(top[0], "a")
31         self.failUnlessEqual(top[1], "is")
32         self.failUnlessEqual(top[2], a)
33         self.failUnlessEqual(top[3], ".")
34         self.failUnlessRaises(ValueError, split_netstring, a, 2, required_trailer="")
35         bottom = split_netstring(a, 2)
36         self.failUnlessEqual(bottom, (["hello", "world"], len(netstring("hello")+netstring("world"))))