test_create_nodevalue.py 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. import unittest
  2. from modelverse_state.main import ModelverseState
  3. from modelverse_state import status
  4. class TestCreateNodeValue(unittest.TestCase):
  5. def setUp(self):
  6. self.mvs = ModelverseState()
  7. def test_create_nodevalue_different_id_simple(self):
  8. id1, r1 = self.mvs.create_nodevalue(1)
  9. id2, r2 = self.mvs.create_nodevalue(1)
  10. self.assertEquals(r1, status.SUCCESS)
  11. self.assertEquals(r2, status.SUCCESS)
  12. self.assertNotEquals(id1, id2)
  13. def test_create_nodevalue_read(self):
  14. id1, r1 = self.mvs.create_nodevalue(1)
  15. self.assertEquals(r1, status.SUCCESS)
  16. val, r2 = self.mvs.read_value(id1)
  17. self.assertEquals(r2, status.SUCCESS)
  18. self.assertEquals(val, 1)
  19. def test_create_nodevalue_integer_ib_zero(self):
  20. # Nicely within range
  21. v = set()
  22. size = 0
  23. for i in range(-10, 10):
  24. id1, r = self.mvs.create_nodevalue(i)
  25. self.assertEquals(r, status.SUCCESS)
  26. size += 1
  27. v.add(id1)
  28. self.assertEquals(len(v), size)
  29. def test_create_nodevalue_boolean(self):
  30. id1, r1 = self.mvs.create_nodevalue(True)
  31. id2, r2 = self.mvs.create_nodevalue(False)
  32. self.assertEquals(r1, status.SUCCESS)
  33. self.assertEquals(r2, status.SUCCESS)
  34. self.assertNotEquals(id1, id2)
  35. def test_create_nodevalue_boolean_same(self):
  36. id1, r1 = self.mvs.create_nodevalue(True)
  37. id2, r2 = self.mvs.create_nodevalue(True)
  38. self.assertEquals(r1, status.SUCCESS)
  39. self.assertEquals(r2, status.SUCCESS)
  40. self.assertNotEquals(id1, id2)
  41. def test_create_nodevalue_float_keeps_type(self):
  42. id1, r = self.mvs.create_nodevalue(0.0)
  43. self.assertEquals(r, status.SUCCESS)
  44. v, r = self.mvs.read_value(id1)
  45. self.assertEquals(r, status.SUCCESS)
  46. self.assertEquals(type(v), float)
  47. self.assertEquals(v, 0.0)
  48. def test_create_nodevalue_string_empty(self):
  49. id1, r = self.mvs.create_nodevalue("")
  50. self.assertEquals(r, status.SUCCESS)
  51. v, r = self.mvs.read_value(id1)
  52. self.assertEquals(r, status.SUCCESS)
  53. self.assertEquals(type(v), str)
  54. self.assertEquals(v, "")
  55. def test_create_nodevalue_string_normal(self):
  56. id1, r = self.mvs.create_nodevalue("ABC")
  57. self.assertEquals(r, status.SUCCESS)
  58. v, r = self.mvs.read_value(id1)
  59. self.assertEquals(r, status.SUCCESS)
  60. self.assertEquals(type(v), str)
  61. self.assertEquals(v, "ABC")
  62. def test_create_nodevalue_string_not_parsed(self):
  63. id1, r = self.mvs.create_nodevalue("1")
  64. self.assertEquals(r, status.SUCCESS)
  65. v, r = self.mvs.read_value(id1)
  66. self.assertEquals(r, status.SUCCESS)
  67. self.assertEquals(type(v), str)
  68. self.assertEquals(v, "1")
  69. id1, r = self.mvs.create_nodevalue("1.0")
  70. self.assertEquals(r, status.SUCCESS)
  71. v, r = self.mvs.read_value(id1)
  72. self.assertEquals(r, status.SUCCESS)
  73. self.assertEquals(type(v), str)
  74. self.assertEquals(v, "1.0")
  75. id1, r = self.mvs.create_nodevalue("-1.0")
  76. self.assertEquals(r, status.SUCCESS)
  77. v, r = self.mvs.read_value(id1)
  78. self.assertEquals(r, status.SUCCESS)
  79. self.assertEquals(type(v), str)
  80. self.assertEquals(v, "-1.0")
  81. id1, r = self.mvs.create_nodevalue("True")
  82. self.assertEquals(r, status.SUCCESS)
  83. v, r = self.mvs.read_value(id1)
  84. self.assertEquals(r, status.SUCCESS)
  85. self.assertEquals(type(v), str)
  86. self.assertEquals(v, "True")
  87. def test_create_nodevalue_junk(self):
  88. class Unknown(object):
  89. pass
  90. id1, r = self.mvs.create_nodevalue(Unknown())
  91. self.assertEquals(r, status.FAIL_CNV_OOB)
  92. v, r = self.mvs.read_value(id1)
  93. self.assertEquals(r, status.FAIL_RV_UNKNOWN)
  94. self.assertEquals(v, None)
  95. def test_create_nodevalue_action_if(self):
  96. id1, r = self.mvs.create_nodevalue({"value": "if"})
  97. self.assertEquals(r, status.SUCCESS)
  98. v, r = self.mvs.read_value(id1)
  99. self.assertEquals(r, status.SUCCESS)
  100. self.assertEquals(v, {"value": "if"})
  101. def test_create_nodevalue_action_while(self):
  102. id1, r = self.mvs.create_nodevalue({"value": "while"})
  103. self.assertEquals(r, status.SUCCESS)
  104. v, r = self.mvs.read_value(id1)
  105. self.assertEquals(r, status.SUCCESS)
  106. self.assertEquals(v, {"value": "while"})
  107. def test_create_nodevalue_action_assign(self):
  108. id1, r = self.mvs.create_nodevalue({"value": "assign"})
  109. self.assertEquals(r, status.SUCCESS)
  110. v, r = self.mvs.read_value(id1)
  111. self.assertEquals(r, status.SUCCESS)
  112. self.assertEquals(v, {"value": "assign"})
  113. def test_create_nodevalue_action_call(self):
  114. id1, r = self.mvs.create_nodevalue({"value": "call"})
  115. self.assertEquals(r, status.SUCCESS)
  116. v, r = self.mvs.read_value(id1)
  117. self.assertEquals(r, status.SUCCESS)
  118. self.assertEquals(v, {"value": "call"})
  119. def test_create_nodevalue_action_break(self):
  120. id1, r = self.mvs.create_nodevalue({"value": "break"})
  121. self.assertEquals(r, status.SUCCESS)
  122. v, r = self.mvs.read_value(id1)
  123. self.assertEquals(r, status.SUCCESS)
  124. self.assertEquals(v, {"value": "break"})
  125. def test_create_nodevalue_action_continue(self):
  126. id1, r = self.mvs.create_nodevalue({"value": "continue"})
  127. self.assertEquals(r, status.SUCCESS)
  128. v, r = self.mvs.read_value(id1)
  129. self.assertEquals(r, status.SUCCESS)
  130. self.assertEquals(v, {"value": "continue"})
  131. def test_create_nodevalue_action_return(self):
  132. id1, r = self.mvs.create_nodevalue({"value": "return"})
  133. self.assertEquals(r, status.SUCCESS)
  134. v, r = self.mvs.read_value(id1)
  135. self.assertEquals(r, status.SUCCESS)
  136. self.assertEquals(v, {"value": "return"})
  137. def test_create_nodevalue_action_resolve(self):
  138. id1, r = self.mvs.create_nodevalue({"value": "resolve"})
  139. self.assertEquals(r, status.SUCCESS)
  140. v, r = self.mvs.read_value(id1)
  141. self.assertEquals(r, status.SUCCESS)
  142. self.assertEquals(v, {"value": "resolve"})
  143. def test_create_nodevalue_action_access(self):
  144. id1, r = self.mvs.create_nodevalue({"value": "access"})
  145. self.assertEquals(r, status.SUCCESS)
  146. v, r = self.mvs.read_value(id1)
  147. self.assertEquals(r, status.SUCCESS)
  148. self.assertEquals(v, {"value": "access"})
  149. def test_create_nodevalue_action_unknown(self):
  150. id1, r = self.mvs.create_nodevalue({"value": "unknown"})
  151. self.assertEquals(r, status.FAIL_CNV_OOB)
  152. v, r = self.mvs.read_value(id1)
  153. self.assertEquals(r, status.FAIL_RV_UNKNOWN)
  154. def test_create_nodevalue_action_input(self):
  155. id1, r = self.mvs.create_nodevalue({"value": "input"})
  156. self.assertEquals(r, status.SUCCESS)
  157. v, r = self.mvs.read_value(id1)
  158. self.assertEquals(r, status.SUCCESS)
  159. self.assertEquals(v, {"value": "input"})
  160. def test_create_nodevalue_action_output(self):
  161. id1, r = self.mvs.create_nodevalue({"value": "output"})
  162. self.assertEquals(r, status.SUCCESS)
  163. v, r = self.mvs.read_value(id1)
  164. self.assertEquals(r, status.SUCCESS)
  165. self.assertEquals(v, {"value": "output"})
  166. def test_create_nodevalue_action_declare(self):
  167. id1, r = self.mvs.create_nodevalue({"value": "declare"})
  168. self.assertEquals(r, status.SUCCESS)
  169. v, r = self.mvs.read_value(id1)
  170. self.assertEquals(r, status.SUCCESS)
  171. self.assertEquals(v, {"value": "declare"})