22 _suites = [
'all',
'cclass']
24 sys.path.append(
"../pyclasswrappers")
25 sys.path.append(
"pyclasswrappers")
28 from frameinfo
import *
29 from AssimCclasses
import *
34 CheckForDanglingClasses =
True
35 WorstDanglingCount = 0
39 global CheckForDanglingClasses
40 global WorstDanglingCount
44 if count > WorstDanglingCount
and CheckForDanglingClasses:
45 WorstDanglingCount = count
47 raise AssertionError,
"Dangling C-class objects - %d still around" % count
50 "A pyNetAddr is a network address of some kind... - let's test it"
52 if DEBUG:
print >>sys.stderr,
"===============test_constructor(pyNetAddrTest)"
53 if DEBUG:
print >>sys.stderr,
"===============test_constructor(pyNetAddrTest)"
54 if DEBUG:
print >>sys.stderr,
"===============test_constructor(pyNetAddrTest)"
55 if DEBUG:
print >>sys.stderr,
"===============test_constructor(pyNetAddrTest)"
56 if DEBUG:
print >>sys.stderr,
"===============test_constructor(pyNetAddrTest)"
57 ipv4 = pyNetAddr((1,2,3,4),)
58 ipv4b = pyNetAddr((1,2,3,5),)
59 mac48 = pyNetAddr((1,2,3,4,5,6),)
60 mac64 = pyNetAddr( (1,2,3,4,5,6,7,8),)
61 ipv6 = pyNetAddr((1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16),)
62 self.assertEqual(str(ipv4),
"1.2.3.4")
63 self.assertEqual(str(ipv4b),
"1.2.3.5")
64 self.assertEqual(str(mac48),
"01:02:03:04:05:06")
65 self.assertEqual(str(mac64),
"01:02:03:04:05:06:07:08")
66 self.assertFalse(ipv4 != ipv4)
67 self.assertTrue(ipv4 == ipv4)
68 self.assertTrue(mac48 == mac48)
69 self.assertTrue(mac64 == mac64)
70 self.assertFalse(ipv4 == ipv4b)
71 self.assertFalse(ipv4 == mac48)
72 self.assertFalse(mac48 == ipv4)
73 self.assertFalse(ipv4 == mac64)
74 self.assertFalse(mac64 == ipv4)
75 self.assertFalse(mac48 == mac64)
76 self.assertFalse(mac64 == mac48)
77 self.assertRaises(ValueError, pyNetAddr, (1,))
78 self.assertRaises(ValueError, pyNetAddr, (1,2,))
79 self.assertRaises(ValueError, pyNetAddr, (1,2,3))
80 self.assertRaises(ValueError, pyNetAddr, (1,2,3,4,5))
81 self.assertRaises(ValueError, pyNetAddr, (1,2,3,4,5,6,7))
82 self.assertRaises(ValueError, pyNetAddr, (1,2,3,4,5,6,7,8,9))
83 self.assertRaises(ValueError, pyNetAddr, (1,2,3,4,5,6,7,8,9,10))
84 self.assertRaises(ValueError, pyNetAddr, (1,2,3,4,5,6,7,8,9,10,11))
85 self.assertRaises(ValueError, pyNetAddr, (1,2,3,4,5,6,7,8,9,10,11,12))
86 self.assertRaises(ValueError, pyNetAddr, (1,2,3,4,5,6,7,8,9,10,11,12,13))
87 self.assertRaises(ValueError, pyNetAddr, (1,2,3,4,5,6,7,8,9,10,11,12,13,14))
88 self.assertRaises(ValueError, pyNetAddr, (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15))
89 self.assertRaises(ValueError, pyNetAddr, (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17))
92 'Test the str() function for ipv6 - worth a separate test.'
93 if DEBUG:
print >>sys.stderr,
"===============test_ipv6_str(pyNetAddrTest)"
94 ipv6 = pyNetAddr((0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),)
95 self.assertEqual(str(ipv6),
"::")
96 ipv6 = pyNetAddr((0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,01),)
97 self.assertEqual(str(ipv6),
"::1")
98 ipv6 = pyNetAddr((0,0,0,0,0,0,0,0,0,0,0,0,0,0,01,02),)
99 self.assertEqual(str(ipv6),
"::102")
100 ipv6 = pyNetAddr((0,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7),)
101 self.assertEqual(str(ipv6),
"0:1:2:3:4:5:6:7")
102 ipv6 = pyNetAddr((0,0,0,0,0,2,0,3,0,4,0,5,0,6,0,7),)
103 self.assertEqual(str(ipv6),
"::2:3:4:5:6:7")
107 ipv6 = pyNetAddr((0,0,0,0,0,0,0,0,0,0,255,255,192,0,2,128),)
108 self.assertEqual(str(ipv6),
"::ffff:192.0.2.128")
115 '''Frames are our basic superclass for things we put on the wire.
116 This base class just has a generic binary blob with no special
117 properties. They are all valid (if they have a value)'''
119 if DEBUG:
print >>sys.stderr,
"===============test_constructor(pyFrameTest)"
121 self.assertEqual(pyf.frametype(), 100)
122 self.assertTrue(pyf.isvalid())
125 if DEBUG:
print >>sys.stderr,
"===============test_setvalue(pyFrameTest)"
128 self.assertTrue(pyf.isvalid(),
"PyFrame('fred') failed isvalid())")
129 self.assertEqual(pyf.framelen(), 5)
130 self.assertEqual(pyf.dataspace(), 9)
131 self.assertEqual(string_at(pyf.framevalue()),
'fred')
138 'An AddrFrame wraps a NetAddr for sending on the wire'
140 if DEBUG:
print >>sys.stderr,
"===============test_constructor(pyAddrFrameTest)"
141 pyf = pyAddrFrame(200, addrstring=(1,2,3,4))
142 self.assertEqual(pyf.frametype(), 200)
143 self.assertEqual(pyf.framelen(), 6)
144 self.assertEqual(str(pyf),
'pyAddrFrame(200, (1.2.3.4))')
145 self.assertEqual(pyf.addrtype(), 1)
146 self.assertTrue(pyf.isvalid(),
"AddrFrame(200, (1,2,3,4)) failed isvalid()")
147 self.assertRaises(ValueError, pyAddrFrame, 201, addrstring=(1,2,3))
155 'An AddrFrame wraps a NetAddr *with a port* for sending on the wire'
157 if DEBUG:
print >>sys.stderr,
"===============test_constructor(pyIpAddrFrameTest)"
158 pyf = pyIpPortFrame(200, (1,2,3,4), 1984)
159 self.assertEqual(pyf.frametype(), 200)
160 self.assertEqual(pyf.framelen(), 8)
161 self.assertEqual(str(pyf),
'pyIpPortFrame(200, (1.2.3.4:1984))')
162 self.assertEqual(pyf.getnetaddr(), pyNetAddr(
'1.2.3.4:1984'))
163 self.assertEqual(pyf.addrtype(), 1)
164 self.assertTrue(pyf.isvalid(),
"pyIpPortFrame(200, (1,2,3,4:1984)) failed isvalid()")
165 self.assertRaises(ValueError, pyIpPortFrame, 201, (1,2,3),80)
166 pyf = pyIpPortFrame(202, (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), 1984)
167 self.assertEqual(pyf.frametype(), 202)
168 self.assertEqual(pyf.framelen(), 20)
169 self.assertEqual(pyf.addrtype(), 2)
170 self.assertTrue(pyf.isvalid(),
'pyIpPortFrame(202, ([102:304:506:708:90a:b0c:d0e:f10]:1984))')
171 self.assertEqual(str(pyf),
'pyIpPortFrame(202, ([102:304:506:708:90a:b0c:d0e:f10]:1984))')
172 sameaddr = pyNetAddr([0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10], port=1984)
173 self.assertEqual(pyf.getnetaddr(), sameaddr)
174 pyf = pyIpPortFrame(202, sameaddr,
None)
175 self.assertEqual(str(pyf),
'pyIpPortFrame(202, ([102:304:506:708:90a:b0c:d0e:f10]:1984))')
176 self.assertEqual(pyf.getnetaddr(), sameaddr)
184 'An IntFrame wraps various sizes of unsigned integers for sending on the wire'
186 if DEBUG:
print >>sys.stderr,
"========================test_constructor(pyIntFrameTest)"
188 for size
in (5, 6, 7, 9, 10):
189 self.assertRaises(ValueError, pyIntFrame, 300+size-1, intbytes=size)
191 for size
in (1, 2, 3, 4, 8):
192 pyf = pyIntFrame(310+size, initval=42, intbytes=size)
193 self.assertTrue(pyf.isvalid())
194 self.assertEqual(pyf.intlength(), size)
195 self.assertEqual(int(pyf), 42)
196 self.assertEqual(str(pyf),
'pyIntFrame(%d, (42))' % (310+size))
199 'Test setting integer values for all the size integers'
200 if DEBUG:
print >>sys.stderr,
"========================test_set(pyIntFrameTest)"
201 for size
in (1, 2, 3, 4, 8):
202 pyf = pyIntFrame(320, initval=0, intbytes=size)
205 self.assertEqual(int(pyf), val)
206 self.assertEqual(str(pyf), (
'pyIntFrame(320, (%d))' % val))
214 "An unknown frame is one we don't recognize the type of."
216 if DEBUG:
print >>sys.stderr,
"========================test_constructor(pyUnknownFrameTest)"
217 pyf = pyUnknownFrame(400)
218 self.assertEqual(pyf.frametype(), 400)
220 self.assertFalse(pyf.isvalid(),
"pyUnkownFrame(400) should not have passed isvalid()")
228 'A SeqnoFrame is a frame wrapping an ordered pair for a sequence number'
230 if DEBUG:
print >>sys.stderr,
"========================test_constructor(pySeqnoFrameTest)"
231 pyf = pySeqnoFrame(500)
232 self.assertEqual(pyf.frametype(), 500)
233 self.assertTrue(pyf.isvalid(),
'pySeqnoFrame(500) did not pass isvalid()')
234 pyf = pySeqnoFrame(501,(1,2))
235 self.assertEqual(pyf.frametype(), 501)
236 self.assertTrue(pyf.isvalid(),
'pySeqnoFrame(501) did not pass isvalid()')
239 'reqid is the request id of a sequence number'
240 if DEBUG:
print >>sys.stderr,
"========================test_reqid(pySeqnoFrameTest)"
241 pyf = pySeqnoFrame(502)
243 self.assertTrue(pyf.getreqid, 42)
245 self.assertTrue(pyf.getreqid, 43)
248 'qid is analogous to a port - it is the id of a queue on the other side'
249 if DEBUG:
print >>sys.stderr,
"========================test_qid(pySeqnoFrameTest)"
250 pyf = pySeqnoFrame(503)
252 self.assertTrue(pyf.getqid, 6)
254 self.assertTrue(pyf.getqid, 7)
257 'A bit of overkill, but nothing really wrong with it'
258 if DEBUG:
print >>sys.stderr,
"========================test_equal(pySeqnoFrameTest)"
259 seqFrame1 = pySeqnoFrame( 504, (1,1))
260 seqFrame1b = pySeqnoFrame(505, (1,1))
261 seqFrame2 = pySeqnoFrame( 506, (1,2))
262 seqFrame3 = pySeqnoFrame( 507, (2,1))
263 seqFrame4 = pySeqnoFrame( 508, (2,2))
264 seqFrame4b = pySeqnoFrame(509, (2,2))
265 self.assertTrue(seqFrame1 == seqFrame1)
266 self.assertTrue(seqFrame1 == seqFrame1b)
267 self.assertTrue(seqFrame1b == seqFrame1)
268 self.assertFalse(seqFrame1 == seqFrame2)
269 self.assertFalse(seqFrame1 == seqFrame3)
270 self.assertFalse(seqFrame1 == seqFrame4)
271 self.assertFalse(seqFrame1 == seqFrame4b)
272 self.assertFalse(seqFrame2 == seqFrame1)
273 self.assertFalse(seqFrame2 == seqFrame1b)
274 self.assertFalse(seqFrame2 == seqFrame1)
275 self.assertTrue (seqFrame2 == seqFrame2)
276 self.assertFalse(seqFrame2 == seqFrame3)
277 self.assertFalse(seqFrame2 == seqFrame4)
278 self.assertFalse(seqFrame1 == seqFrame4b)
279 self.assertFalse(seqFrame3 == seqFrame1)
280 self.assertFalse(seqFrame3 == seqFrame1b)
281 self.assertFalse(seqFrame3 == seqFrame1)
282 self.assertFalse(seqFrame3 == seqFrame2)
283 self.assertTrue (seqFrame3 == seqFrame3)
284 self.assertFalse(seqFrame3 == seqFrame4)
285 self.assertFalse(seqFrame3 == seqFrame4b)
286 self.assertFalse(seqFrame4 == seqFrame1)
287 self.assertFalse(seqFrame4 == seqFrame1b)
288 self.assertFalse(seqFrame4 == seqFrame1)
289 self.assertFalse(seqFrame4 == seqFrame2)
290 self.assertFalse(seqFrame4 == seqFrame3)
291 self.assertTrue (seqFrame4 == seqFrame4)
292 self.assertTrue (seqFrame4 == seqFrame4b)
293 self.assertTrue(seqFrame4b == seqFrame4)
301 '''A CstringFrame is a frame which can only hold NUL-terminated C strings.
302 The last byte must be the one and only NUL character in a CstringFrame value.'''
304 if DEBUG:
print >>sys.stderr,
"========================test_constructor(pyCstringFrameTest)"
305 pyf = pyCstringFrame(600,
"Hello, World.")
306 self.assertTrue(pyf.isvalid())
307 self.assertEqual(str(pyf),
'600: CstringFrame(600, "Hello, World.")')
308 pyf2 = pyCstringFrame(601)
309 self.assertFalse(pyf2.isvalid())
311 self.assertTrue(pyf2.isvalid())
312 self.assertEqual(str(pyf2),
'601: CstringFrame(601, "42")')
319 'A SignFrame is a digital signature frame.'
321 if DEBUG:
print >>sys.stderr,
"========================test_constructor(pySignFrameTest)"
323 self.assertTrue(pyf.isvalid())
324 self.assertRaises(ValueError, pySignFrame, 935)
332 'A FrameSet is a collection of frames - typically to be sent over the wire'
337 s = re.sub(
' at 0x[^{}]*',
' at 0xsomewhere', s)
341 if DEBUG:
print >>sys.stderr,
"========================test_constructor(pyFrameSetTest)"
342 pyf = pyFrameSet(700)
343 self.assertEqual(pyf.get_framesettype(), 700)
346 if DEBUG:
print >>sys.stderr,
"========================test_flags(pyFrameSetTest)"
347 'Flags are bit masks, to be turned on or off. They are 16-bits only.'
348 pyf = pyFrameSet(701)
349 self.assertEqual(pyf.get_flags(), 0x00)
351 self.assertEqual(pyf.get_flags(), 0x01)
353 self.assertEqual(pyf.get_flags(), 0x01)
355 self.assertEqual(pyf.get_flags(), 0x03)
356 pyf.clear_flags(0x01)
357 self.assertEqual(pyf.get_flags(), 0x02)
358 pyf.set_flags(0x0fffffffffffffffff)
359 self.assertEqual(pyf.get_flags(), 0x0ffff)
360 pyf.clear_flags(0x5555)
361 self.assertEqual(pyf.get_flags(), 0x0AAAA)
364 'Build a FrameSet using append and verify that it gets built right'
365 if DEBUG:
print >>sys.stderr,
"========================test_buildlistforward(pyFrameSetTest)"
366 pyfs = pyFrameSet(702)
367 sign = pySignFrame(1)
368 flist = (pyFrame(703), pyAddrFrame(704, (42,42,42,42)), pyIntFrame(705,42),
369 pyCstringFrame(706,
"HhGttG"),
370 pySeqnoFrame(707, (42, 424242424242)),
371 pyIpPortFrame(200, (1,2,3,4), 1984),
372 pyIpPortFrame(202, (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16), 1984)
376 self.assertEqual(len(pyfs), 7)
381 for frame
in pyfs.iter():
383 for i
in range(0,len(ylist)):
387 self.assertEqual(f.frametype(), y.frametype())
388 self.assertEqual(type(f), type(y))
391 pyfs.construct_packet(sign)
394 for frame
in pyfs.iter():
396 self.assertEqual(len(pyfs), 9)
397 self.assertEqual(len(ylist), len(pyfs))
398 for i
in range(0,len(flist)):
402 self.assertEqual(f.frametype(), y.frametype())
403 self.assertEqual(type(f), type(y))
405 self.assertEqual(ylist[0].frametype(), 1)
406 self.assertEqual(ylist[8].frametype(), 0)
409 '''Build a FrameSet using prepend and verify that it gets built right.
410 Similar to the append testing above, but backwards ;-)'''
411 if DEBUG:
print >>sys.stderr,
"========================test_buildlistbackwards(pyFrameSetTest)"
412 pyfs = pyFrameSet(707)
413 sign = pySignFrame(1)
414 flist = (pyFrame(708), pyAddrFrame(709, (42,42,42,42)), pyIntFrame(710,42), pyCstringFrame(711,
"HhGttG"),
415 pySeqnoFrame(712, (42, 424242424242)))
418 self.assertEqual(len(pyfs), 5)
421 for frame
in pyfs.iter():
423 for i
in range(0,len(flist)):
427 self.assertEqual(f.frametype(), y.frametype())
428 self.assertEqual(type(f), type(y))
429 self.assertEqual(f.__class__, y.__class__)
430 if DEBUG:
print >>sys.stderr,
"Classes are", f.__class__,
"lens are", f.framelen(), y.framelen()
431 self.assertEqual(f.framelen(), y.framelen())
434 'Build a FrameSet, then make it into a packet, and make a frameset list out of the packet'
435 if DEBUG:
print >>sys.stderr,
"========================test_buildpacket(pyFrameSetTest)"
436 pyfs = pyFrameSet(801)
437 sign = pySignFrame(1)
438 flist = (pyAddrFrame(FrameTypes.IPADDR, (42,42,42,42)), pyIntFrame(FrameTypes.WALLCLOCK,42), pyCstringFrame(FrameTypes.INTERFACE,
"HhGttG"),
439 pyIntFrame(FrameTypes.CINTVAL,3000000, intbytes=4),
440 pyIntFrame(FrameTypes.CINTVAL,3000000000000, intbytes=8),
441 pySeqnoFrame(FrameTypes.REQID, (42, 424242424242)),
442 pyIntFrame(FrameTypes.CINTVAL,4242, intbytes=3))
443 if DEBUG:
print >>sys.stderr,
"flist:", flist
444 decoder = pyPacketDecoder(0)
447 pyfs.construct_packet(sign)
448 if DEBUG:
print >>sys.stderr,
"packet constructed"
450 for frame
in pyfs.iter():
452 if DEBUG:
print >>sys.stderr,
"xlist constructed"
453 pktdata = pyfs.getpacket()
454 if DEBUG:
print >>sys.stderr,
"getpacket done", pktdata
455 cp_pyfs = decoder.fslist_from_pktdata(pktdata)
456 if DEBUG:
print >>sys.stderr,
"decoder done", cp_pyfs
459 for frame
in fs0.iter():
461 for i
in range(0,len(xlist)):
464 self.assertEqual(x.frametype(), y.frametype())
465 self.assertEqual(x.framelen(), y.framelen())
466 self.assertEqual(x.dataspace(), y.dataspace())
467 self.assertEqual(type(x), type(y))
468 self.assertEqual(x.__class__, y.__class__)
470 strx = re.sub(str(x),
' instance at .*>',
' instance at -somewhere- >')
471 stry = re.sub(str(y),
' instance at .*>',
' instance at -somewhere- >')
472 self.assertEqual(strx, stry)
473 self.assertEqual(pyFrameSetTest.cmpstring(x), pyFrameSetTest.cmpstring(y))
484 if DEBUG:
print >>sys.stderr,
"===============test_constructor(pyConfigContextTest)"
485 foo = pyConfigContext(init={
'int1': 42,
'str1':
'forty-two',
'bar': pyNetAddr((1,2,3,4),) })
486 foo = pyConfigContext(init={
'int1': 42,
'str1':
'forty-two',
'bar': pyNetAddr((1,2,3,4),),
'csf': pyCstringFrame(42,
'41+1')})
487 self.assertEqual(foo.getint(
'int1'), 42)
488 self.assertEqual(foo.getstring(
'str1'),
'forty-two')
489 self.assertRaises(IndexError, foo.getaddr, (
'int1'))
490 self.assertRaises(IndexError, foo.getstring, (
'int1'))
491 self.assertRaises(IndexError, foo.getaddr, (
'str1'))
492 self.assertRaises(IndexError, foo.getframe, (
'str1'))
493 self.assertRaises(IndexError, foo.getframe, (
'int1'))
494 self.assertEqual(foo[
'int1'], 42)
495 self.assertEqual(foo[
'str1'],
'forty-two')
496 self.assertEqual(foo.getint(
'fred'), -1)
498 self.assertEqual(foo[
'bar'], pyNetAddr((1,2,3,4),))
499 self.assertEqual(str(foo[
'bar']),
'1.2.3.4')
500 self.assertEqual(str(foo[
'csf']),
'42: CstringFrame(42, "41+1")')
501 self.assertEqual(str(foo),
'{"str1":"forty-two","csf":"CstringFrame(42, \\"41+1\\")","int1":42,"bar":"1.2.3.4"}')
503 foo[
'isf'] = pyIntFrame(310, initval=42, intbytes=3)
504 if DEBUG:
print >>sys.stderr,
"test_constructor.18(pyConfigContextTest)"
505 self.assertEqual(str(foo),
506 '{"isf":"IntFrame(310, 3, 42)","str1":"forty-two","csf":"CstringFrame(42, \\"41+1\\")","int1":42,"bar":"1.2.3.4"}')
507 if DEBUG:
print >>sys.stderr,
"test_constructor.19(pyConfigContextTest)"
510 if DEBUG:
print >>sys.stderr,
"test_string(pyConfigContextTest)"
511 foo = pyConfigContext()
512 foo[
'arthur'] =
'dent'
513 foo[
'seven'] =
'ofnine'
514 foo[
'JeanLuc'] =
'Picard'
515 foo[
'important'] =
'towel'
517 self.assertEqual(foo[
'arthur'],
'dent')
518 self.assertEqual(foo[
'seven'],
'ofnine')
519 self.assertEqual(foo[
'JeanLuc'],
'Picard')
520 self.assertEqual(foo[
'important'],
'towel')
521 self.assertRaises(IndexError, foo.getstring, (
'towel'))
522 self.assertEqual(str(foo),
'{"arthur":"dent","JeanLuc":"Picard","important":"towel","integer":42,"seven":"ofnine"}')
524 self.assertEqual(foo[
'seven'],
'7')
525 self.assertEqual(type(foo[
'seven']), str)
526 foo[
'JeanLuc'] =
'Locutus'
527 self.assertEqual(foo[
'JeanLuc'],
'Locutus')
528 self.assertEqual(str(foo),
'{"arthur":"dent","JeanLuc":"Locutus","important":"towel","integer":42,"seven":"7"}')
531 if DEBUG:
print >>sys.stderr,
"test_int(pyConfigContextTest)"
532 foo = pyConfigContext()
535 self.assertEqual(foo[
'arthur'], 42)
536 self.assertEqual(foo[
'seven'], 9)
537 self.assertEqual(str(foo),
'{"arthur":42,"seven":9}')
539 self.assertEqual(type(foo[
'seven']), int)
540 self.assertEqual(foo[
"seven"], 7)
541 self.assertEqual(str(foo),
'{"arthur":42,"seven":7}')
544 if DEBUG:
print >>sys.stderr,
"========================test_child_ConfigContext(pyConfigContextTest)"
545 foo = pyConfigContext()
546 foo[
'ford'] =
'prefect'
547 baz = pyConfigContext()
548 baz[
'Kathryn'] =
'Janeway'
549 baz[
'there\'s no place like'] = pyNetAddr((127,0,0,1),)
550 bar = pyConfigContext()
553 if DEBUG:
print >>sys.stderr,
"EQUAL TEST"
554 self.assertEqual(str(bar),
'{"hhgttg":{"ford":"prefect"},"voyager":{"there\'s no place like":"127.0.0.1","Kathryn":"Janeway"}}')
556 if DEBUG:
print >>sys.stderr,
"JSON TEST"
557 bar2 = pyConfigContext(str(bar))
558 if DEBUG:
print >>sys.stderr,
"JSON COMPARE"
559 self.assertEqual(str(bar), str(bar2))
560 self.assertEqual(bar[
"voyager"][
"Kathryn"],
"Janeway")
561 self.assertEqual(bar[
"hhgttg"][
"ford"],
"prefect")
562 self.assertEqual(bar2[
"voyager"][
"Kathryn"],
"Janeway")
563 self.assertEqual(bar2[
"hhgttg"][
"ford"],
"prefect")
564 if DEBUG:
print >>sys.stderr,
"COMPARE DONE"
566 if DEBUG:
print >>sys.stderr,
"END OF ========================test_child_ConfigContext(pyConfigContextTest)"
570 if DEBUG:
print >>sys.stderr,
"===============test_keys(pyConfigContextTest)"
571 foo = pyConfigContext()
572 foo[
'arthur'] =
'dent'
573 foo[
'seven'] =
'ofnine'
574 foo[
'JeanLuc'] =
'Picard'
575 foo[
'important'] =
'towel'
577 self.assertEqual(str(foo.keys()),
"['JeanLuc', 'arthur', 'important', 'integer', 'seven']")
580 array1str =
'{"a":[1,2,3,4,"a",{"b":true},[5,6,7,8,3.14]]}'
581 array1config = pyConfigContext(array1str)
582 self.assertEqual(array1str, str(array1config))
592 if DEBUG:
print >>sys.stderr,
"========================test_constructor(pyNetIOudpTest)"
593 config = pyConfigContext(init={
'outsig': pySignFrame(1)})
594 io = pyNetIOudp(config, pyPacketDecoder(0))
595 self.assertTrue(io.getfd() > 2)
598 if DEBUG:
print >>sys.stderr,
"========================test_members(pyNetIOudpTest)"
599 io = pyNetIOudp(pyConfigContext(init={
'outsig': pySignFrame(1)}), pyPacketDecoder(0))
600 self.assertTrue(io.getmaxpktsize() > 65000)
601 self.assertTrue(io.getmaxpktsize() < 65535)
602 io.setmaxpktsize(1500)
603 self.assertEqual(io.getmaxpktsize(), 1500)
608 if DEBUG:
print >>sys.stderr,
"========================test_send(pyNetIOudpTest)"
609 home = pyNetAddr((127,0,0,1),1984)
611 flist = (pyAddrFrame(FrameTypes.IPADDR, (42,42,42,42)), pyIntFrame(FrameTypes.HBWARNTIME,42), pyCstringFrame(FrameTypes.HOSTNAME,
"HhGttG"),
612 pyIntFrame(FrameTypes.PORTNUM,3000000, intbytes=4),
613 pyIntFrame(FrameTypes.HBINTERVAL,3000000000000, intbytes=8),
614 pySeqnoFrame(FrameTypes.REPLYID, (42, 424242424242)),
615 pyIntFrame(FrameTypes.CINTVAL,4242, intbytes=3))
618 io = pyNetIOudp(pyConfigContext(init={
'outsig': pySignFrame(1)}), pyPacketDecoder(0))
619 io.sendframesets(home, fs)
620 io.sendframesets(home, (fs,fs,fs))
623 if DEBUG:
print >>sys.stderr,
"========================test_receiveandsend(pyNetIOudpTest)"
624 home = pyNetAddr((127,0,0,1),1984)
625 anyaddr = pyNetAddr((0,0,0,0),1984)
628 flist = (pyAddrFrame(FrameTypes.IPADDR, (42,42,42,42)), pyIntFrame(7,42), pyCstringFrame(8,
"HhGttG"),
629 pyAddrFrame(FrameTypes.IPADDR,(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)),
630 pyIntFrame(FrameTypes.HBINTERVAL,3000000, intbytes=4),
631 pyIntFrame(FrameTypes.HBDEADTIME,3000000000000, intbytes=8),
632 pySeqnoFrame(FrameTypes.REPLYID, (42, 424242424242)),
633 pyIntFrame(FrameTypes.PORTNUM,4242, intbytes=3))
636 io = pyNetIOudp(pyConfigContext(init={
'outsig': pySignFrame(1)}), pyPacketDecoder(0))
638 io.sendframesets(home, fs)
639 (addr, framesetlist) = io.recvframesets()
641 self.assertEqual(addr, home)
642 self.assertEqual(len(framesetlist), 1)
644 for frame
in framesetlist[0].iter():
646 self.assertEqual(len(flist), len(ylist)-2)
647 for i
in range(0,len(flist)):
650 self.assertEqual(x.frametype(), y.frametype())
651 self.assertEqual(x.framelen(), y.framelen())
652 self.assertEqual(x.dataspace(), y.dataspace())
653 self.assertEqual(type(x), type(y))
654 self.assertEqual(x.__class__, y.__class__)
655 self.assertEqual(pyFrameSetTest.cmpstring(x), pyFrameSetTest.cmpstring(y))
661 if __name__ ==
"__main__":