test_create_nodevalue.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. import pytest
  2. @pytest.mark.usefixtures("state")
  3. def test_create_nodevalue_different_id_simple(state):
  4. id1 = state.create_nodevalue(1)
  5. id2 = state.create_nodevalue(1)
  6. assert id1 is not None
  7. assert id2 is not None
  8. assert id1 != id2
  9. @pytest.mark.usefixtures("state")
  10. def test_create_nodevalue_read(state):
  11. id1 = state.create_nodevalue(1)
  12. assert id1 is not None
  13. val = state.read_value(id1)
  14. assert val == 1
  15. @pytest.mark.usefixtures("state")
  16. def test_create_nodevalue_integer_ib_zero(state):
  17. # Nicely within range
  18. v = set()
  19. size = 0
  20. for i in range(-10, 10):
  21. id1 = state.create_nodevalue(i)
  22. assert id1 is not None
  23. size += 1
  24. v.add(id1)
  25. assert len(v) == size
  26. @pytest.mark.usefixtures("state")
  27. def test_create_nodevalue_boolean(state):
  28. id1 = state.create_nodevalue(True)
  29. id2 = state.create_nodevalue(False)
  30. assert id1 is not None
  31. assert id2 is not None
  32. assert id1 != id2
  33. @pytest.mark.usefixtures("state")
  34. def test_create_nodevalue_boolean_same(state):
  35. id1 = state.create_nodevalue(True)
  36. id2 = state.create_nodevalue(True)
  37. assert id1 is not None
  38. assert id2 is not None
  39. assert id1 != id2
  40. @pytest.mark.usefixtures("state")
  41. def test_create_nodevalue_float_keeps_type(state):
  42. id1 = state.create_nodevalue(0.0)
  43. assert id1 is not None
  44. v = state.read_value(id1)
  45. assert type(v) == float
  46. assert v == 0.0
  47. @pytest.mark.usefixtures("state")
  48. def test_create_nodevalue_string_empty(state):
  49. id1 = state.create_nodevalue("")
  50. assert id1 is not None
  51. v = state.read_value(id1)
  52. assert type(v) == str
  53. assert v == ""
  54. @pytest.mark.usefixtures("state")
  55. def test_create_nodevalue_string_normal(state):
  56. id1 = state.create_nodevalue("ABC")
  57. assert id1 is not None
  58. v = state.read_value(id1)
  59. assert type(v) == str
  60. assert v == "ABC"
  61. @pytest.mark.usefixtures("state")
  62. def test_create_nodevalue_string_not_parsed(state):
  63. id1 = state.create_nodevalue("1")
  64. assert id1 is not None
  65. v = state.read_value(id1)
  66. assert type(v) == str
  67. assert v == "1"
  68. id1 = state.create_nodevalue("1.0")
  69. assert id1 is not None
  70. v = state.read_value(id1)
  71. assert type(v) == str
  72. assert v == "1.0"
  73. id1 = state.create_nodevalue("-1.0")
  74. assert id1 is not None
  75. v = state.read_value(id1)
  76. assert type(v) == str
  77. assert v == "-1.0"
  78. id1 = state.create_nodevalue("True")
  79. assert id1 is not None
  80. v = state.read_value(id1)
  81. assert type(v) == str
  82. assert v == "True"
  83. @pytest.mark.usefixtures("state")
  84. def test_create_nodevalue_junk(state):
  85. class Unknown(object):
  86. pass
  87. n = state.create_nodevalue(Unknown())
  88. assert n is None
  89. @pytest.mark.usefixtures("state")
  90. def test_create_nodevalue_type_type(state):
  91. id1 = state.create_nodevalue(("Type",))
  92. assert id1 is not None
  93. v = state.read_value(id1)
  94. assert v == ("Type",)
  95. @pytest.mark.usefixtures("state")
  96. def test_create_nodevalue_integer_type(state):
  97. id1 = state.create_nodevalue(("Integer",))
  98. assert id1 is not None
  99. v = state.read_value(id1)
  100. assert v == ("Integer",)
  101. @pytest.mark.usefixtures("state")
  102. def test_create_nodevalue_float_type(state):
  103. id1 = state.create_nodevalue(("Float",))
  104. assert id1 is not None
  105. v = state.read_value(id1)
  106. assert v == ("Float",)
  107. @pytest.mark.usefixtures("state")
  108. def test_create_nodevalue_boolean_type(state):
  109. id1 = state.create_nodevalue(("Boolean",))
  110. assert id1 is not None
  111. v = state.read_value(id1)
  112. assert v == ("Boolean",)
  113. @pytest.mark.usefixtures("state")
  114. def test_create_nodevalue_string_type(state):
  115. id1 = state.create_nodevalue(("String",))
  116. assert id1 is not None
  117. v = state.read_value(id1)
  118. assert v == ("String",)
  119. @pytest.mark.usefixtures("state")
  120. def test_create_nodevalue_invalid_type(state):
  121. id1 = state.create_nodevalue(("Class",))
  122. assert id1 is None