opcode_python_test.py 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. # Copyright (C) 2010 Internet Systems Consortium.
  2. #
  3. # Permission to use, copy, modify, and distribute this software for any
  4. # purpose with or without fee is hereby granted, provided that the above
  5. # copyright notice and this permission notice appear in all copies.
  6. #
  7. # THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SYSTEMS CONSORTIUM
  8. # DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
  9. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
  10. # INTERNET SYSTEMS CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
  11. # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
  12. # FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
  13. # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
  14. # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. #
  16. # Tests for the opcode part of the pydnspp module
  17. #
  18. import unittest
  19. from pydnspp import *
  20. class OpcodeTest(unittest.TestCase):
  21. def test_init(self):
  22. self.assertRaises(TypeError, Opcode, "wrong")
  23. self.assertEqual(Rcode(0).get_code(), 0)
  24. self.assertEqual(Rcode(Opcode.RESERVED15_CODE).get_code(), 15)
  25. self.assertRaises(OverflowError, Opcode, 16)
  26. def test_constants(self):
  27. self.assertEqual(Opcode.QUERY_CODE, Opcode(0).get_code())
  28. self.assertEqual(Opcode.IQUERY_CODE, Opcode(1).get_code())
  29. self.assertEqual(Opcode.NOTIFY_CODE, Opcode(4).get_code())
  30. self.assertEqual(Opcode.UPDATE_CODE, Opcode(5).get_code())
  31. self.assertEqual(Opcode.RESERVED15_CODE, Opcode(15).get_code())
  32. self.assertEqual(Opcode.QUERY_CODE, Opcode.QUERY.get_code())
  33. self.assertEqual(Opcode.IQUERY_CODE, Opcode.IQUERY.get_code())
  34. self.assertEqual(Opcode.NOTIFY_CODE, Opcode.NOTIFY.get_code())
  35. self.assertEqual(Opcode.UPDATE_CODE, Opcode.UPDATE.get_code())
  36. self.assertEqual(Opcode.RESERVED15_CODE, Opcode.RESERVED15.get_code())
  37. def test_get_code(self):
  38. self.assertEqual(0, Opcode.QUERY.get_code())
  39. self.assertEqual(1, Opcode.IQUERY.get_code())
  40. self.assertEqual(2, Opcode.STATUS.get_code())
  41. self.assertEqual(3, Opcode.RESERVED3.get_code())
  42. self.assertEqual(4, Opcode.NOTIFY.get_code())
  43. self.assertEqual(5, Opcode.UPDATE.get_code())
  44. self.assertEqual(6, Opcode.RESERVED6.get_code())
  45. self.assertEqual(7, Opcode.RESERVED7.get_code())
  46. self.assertEqual(8, Opcode.RESERVED8.get_code())
  47. self.assertEqual(9, Opcode.RESERVED9.get_code())
  48. self.assertEqual(10, Opcode.RESERVED10.get_code())
  49. self.assertEqual(11, Opcode.RESERVED11.get_code())
  50. self.assertEqual(12, Opcode.RESERVED12.get_code())
  51. self.assertEqual(13, Opcode.RESERVED13.get_code())
  52. self.assertEqual(14, Opcode.RESERVED14.get_code())
  53. self.assertEqual(15, Opcode.RESERVED15.get_code())
  54. def test_to_text(self):
  55. self.assertEqual("QUERY", Opcode.QUERY.to_text())
  56. self.assertEqual("QUERY", str(Opcode.QUERY))
  57. self.assertEqual("IQUERY", Opcode.IQUERY.to_text())
  58. self.assertEqual("STATUS", Opcode.STATUS.to_text())
  59. self.assertEqual("RESERVED3", Opcode.RESERVED3.to_text())
  60. self.assertEqual("NOTIFY", Opcode.NOTIFY.to_text())
  61. self.assertEqual("UPDATE", Opcode.UPDATE.to_text())
  62. self.assertEqual("RESERVED6", Opcode.RESERVED6.to_text())
  63. self.assertEqual("RESERVED7", Opcode.RESERVED7.to_text())
  64. self.assertEqual("RESERVED8", Opcode.RESERVED8.to_text())
  65. self.assertEqual("RESERVED9", Opcode.RESERVED9.to_text())
  66. self.assertEqual("RESERVED10", Opcode.RESERVED10.to_text())
  67. self.assertEqual("RESERVED11", Opcode.RESERVED11.to_text())
  68. self.assertEqual("RESERVED12", Opcode.RESERVED12.to_text())
  69. self.assertEqual("RESERVED13", Opcode.RESERVED13.to_text())
  70. self.assertEqual("RESERVED14", Opcode.RESERVED14.to_text())
  71. self.assertEqual("RESERVED15", Opcode.RESERVED15.to_text())
  72. def test_richcmp(self):
  73. o1 = Opcode.QUERY
  74. o2 = Opcode.NOTIFY
  75. o3 = Opcode.NOTIFY
  76. self.assertTrue(o2 == o3)
  77. self.assertFalse(o2 != o3)
  78. self.assertTrue(o1 != o2)
  79. self.assertFalse(o1 == 1)
  80. self.assertFalse(o1 == o2)
  81. # can't use assertRaises here...
  82. try:
  83. o1 < o2
  84. self.fail("operation that should have raised an error unexpectedly succeeded")
  85. except Exception as err:
  86. self.assertEqual(TypeError, type(err))
  87. try:
  88. o1 <= o2
  89. self.fail("operation that should have raised an error unexpectedly succeeded")
  90. except Exception as err:
  91. self.assertEqual(TypeError, type(err))
  92. try:
  93. o1 > o2
  94. self.fail("operation that should have raised an error unexpectedly succeeded")
  95. except Exception as err:
  96. self.assertEqual(TypeError, type(err))
  97. try:
  98. o1 >= o2
  99. self.fail("operation that should have raised an error unexpectedly succeeded")
  100. except Exception as err:
  101. self.assertEqual(TypeError, type(err))
  102. if __name__ == '__main__':
  103. unittest.main()