test.py 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import ISC
  2. import unittest
  3. class TestCCWireEncoding(unittest.TestCase):
  4. def setUp(self): pass
  5. def test_to_wire_of_string(self):
  6. wire = ISC.CC.Message.to_wire({ "simple" : "string" })
  7. self.assertEqual(wire, b'Skan\x06simple(\x06string')
  8. def test_from_wire_of_string(self):
  9. wire = b'Skan\x06simple(\x06string'
  10. decoded = ISC.CC.Message.from_wire(wire)
  11. self.assertEqual(decoded["simple"], "string")
  12. def test_to_wire_of_binary_string(self):
  13. wire = ISC.CC.Message.to_wire({ "simple" : b'\x01\xff\x02\x85' })
  14. self.assertEqual(wire, b'Skan\x06simple!\x04\x01\xff\x02\x85')
  15. def test_from_wire_of_binary_string(self):
  16. wire = b'Skan\x06simple!\x04\x01\xff\x02\x85'
  17. decoded = ISC.CC.Message.from_wire(wire)
  18. self.assertEqual(decoded["simple"], b'\x01\xff\x02\x85')
  19. def test_to_wire_of_list(self):
  20. wire = ISC.CC.Message.to_wire({ "simple" : [ "string" ] })
  21. self.assertEqual(wire, b'Skan\x06simple#\x08(\x06string')
  22. def test_from_wire_of_list(self):
  23. wire = b'Skan\x06simple#\x08(\x06string'
  24. decoded = ISC.CC.Message.from_wire(wire)
  25. self.assertEqual(decoded["simple"], [ "string" ])
  26. def test_to_wire_of_hash(self):
  27. wire = ISC.CC.Message.to_wire({ "simple" : { "string" : 1 }})
  28. self.assertEqual(wire, b'Skan\x06simple"\n\x06string(\x011')
  29. def test_from_wire_of_hash(self):
  30. wire = b'Skan\x06simple"\n\x06string(\x011'
  31. decoded = ISC.CC.Message.from_wire(wire)
  32. self.assertEqual(decoded["simple"], { "string" : '1' })
  33. def test_to_wire_of_none(self):
  34. wire = ISC.CC.Message.to_wire({ "simple" : None })
  35. self.assertEqual(wire, b'Skan\x06simple\x04')
  36. def test_from_wire_of_none(self):
  37. wire = b'Skan\x06simple\x04'
  38. decoded = ISC.CC.Message.from_wire(wire)
  39. self.assertEqual(decoded["simple"], None)
  40. def test_to_wire_of_empty_string(self):
  41. wire = ISC.CC.Message.to_wire({ "simple" : "" })
  42. self.assertEqual(wire, b'Skan\x06simple(\x00')
  43. def test_from_wire_of_empty_string(self):
  44. wire = b'Skan\x06simple(\x00'
  45. decoded = ISC.CC.Message.from_wire(wire)
  46. self.assertEqual(decoded["simple"], "")
  47. def test_to_wire_of_utf8_string(self):
  48. wire = ISC.CC.Message.to_wire({ "simple" : "せんせい" })
  49. self.assertEqual(wire, b'Skan\x06simple(\x0c\xe3\x81\x9b\xe3\x82\x93\xe3\x81\x9b\xe3\x81\x84')
  50. def test_from_wire_of_utf8_string(self):
  51. wire = b'Skan\x06simple(\x0c\xe3\x81\x9b\xe3\x82\x93\xe3\x81\x9b\xe3\x81\x84'
  52. decoded = ISC.CC.Message.from_wire(wire)
  53. self.assertEqual(decoded["simple"], "せんせい")
  54. def test_to_wire_of_utf8_label(self):
  55. wire = ISC.CC.Message.to_wire({ "せんせい" : "string" })
  56. self.assertEqual(wire, b'Skan\x0c\xe3\x81\x9b\xe3\x82\x93\xe3\x81\x9b\xe3\x81\x84(\x06string')
  57. def test_from_wire_of_utf8_label(self):
  58. wire = b'Skan\x0c\xe3\x81\x9b\xe3\x82\x93\xe3\x81\x9b\xe3\x81\x84(\x06string'
  59. decoded = ISC.CC.Message.from_wire(wire)
  60. self.assertEqual(decoded["せんせい"], "string")
  61. def test_to_wire_of_bool_true(self):
  62. wire = ISC.CC.Message.to_wire({ "bool": True })
  63. self.assertEqual(wire, b'Skan\x04bool%\x01\x01')
  64. def test_to_wire_of_bool_false(self):
  65. wire = ISC.CC.Message.to_wire({ "bool": False })
  66. self.assertEqual(wire, b'Skan\x04bool%\x01\x00')
  67. def test_from_wire_of_bool_true(self):
  68. wire = b'Skan\x04bool%\x01\x01'
  69. decoded = ISC.CC.Message.from_wire(wire)
  70. self.assertEqual(decoded["bool"], True)
  71. def test_from_wire_of_bool_true(self):
  72. wire = b'Skan\x04bool%\x01\x00'
  73. decoded = ISC.CC.Message.from_wire(wire)
  74. self.assertEqual(decoded["bool"], False)
  75. if __name__ == '__main__':
  76. unittest.main()