cactus-test-definitions 1.2.0__tar.gz → 1.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cactus-test-definitions might be problematic. Click here for more details.

Files changed (141) hide show
  1. {cactus_test_definitions-1.2.0/cactus_test_definitions.egg-info → cactus_test_definitions-1.3.0}/PKG-INFO +7 -7
  2. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/README.md +6 -6
  3. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__init__.py +1 -1
  4. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/checks.py +16 -6
  5. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/parameters.py +4 -0
  6. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0/cactus_test_definitions.egg-info}/PKG-INFO +7 -7
  7. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/client/test_checks.py +25 -1
  8. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/LICENSE.txt +0 -0
  9. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/MANIFEST.in +0 -0
  10. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/__init__.cpython-312.pyc +0 -0
  11. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/actions.cpython-312.pyc +0 -0
  12. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/checks.cpython-312.pyc +0 -0
  13. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/csipaus.cpython-312.pyc +0 -0
  14. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/errors.cpython-312.pyc +0 -0
  15. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/events.cpython-312.pyc +0 -0
  16. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/parameters.cpython-312.pyc +0 -0
  17. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/schema.cpython-312.pyc +0 -0
  18. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  19. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/test_procedures.cpython-312.pyc +0 -0
  20. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/variable_expressions.cpython-312.pyc +0 -0
  21. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/__pycache__/version.cpython-312.pyc +0 -0
  22. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/__init__.py +0 -0
  23. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/__pycache__/__init__.cpython-312.pyc +0 -0
  24. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/__pycache__/actions.cpython-312.pyc +0 -0
  25. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/__pycache__/checks.cpython-312.pyc +0 -0
  26. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/__pycache__/events.cpython-312.pyc +0 -0
  27. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  28. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/actions.py +0 -0
  29. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/events.py +0 -0
  30. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-01.yaml +0 -0
  31. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-02.yaml +0 -0
  32. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-03-REJ.yaml +0 -0
  33. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-03.yaml +0 -0
  34. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-04.yaml +0 -0
  35. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-05.yaml +0 -0
  36. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-06.yaml +0 -0
  37. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-07.yaml +0 -0
  38. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-08.yaml +0 -0
  39. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-09.yaml +0 -0
  40. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-10.yaml +0 -0
  41. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-11.yaml +0 -0
  42. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-12.yaml +0 -0
  43. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-13.yaml +0 -0
  44. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-14.yaml +0 -0
  45. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-15.yaml +0 -0
  46. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-16.yaml +0 -0
  47. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-17.yaml +0 -0
  48. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-18.yaml +0 -0
  49. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-19.yaml +0 -0
  50. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-20.yaml +0 -0
  51. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-21.yaml +0 -0
  52. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-22.yaml +0 -0
  53. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-23.yaml +0 -0
  54. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-24.yaml +0 -0
  55. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-25.yaml +0 -0
  56. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-26.yaml +0 -0
  57. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-27.yaml +0 -0
  58. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-28.yaml +0 -0
  59. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-29.yaml +0 -0
  60. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/ALL-30.yaml +0 -0
  61. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/BES-01.yaml +0 -0
  62. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/BES-02.yaml +0 -0
  63. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/BES-03.yaml +0 -0
  64. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/BES-04.yaml +0 -0
  65. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/DRA-01.yaml +0 -0
  66. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/DRA-02.yaml +0 -0
  67. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/DRD-01.yaml +0 -0
  68. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/DRL-01.yaml +0 -0
  69. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-01.yaml +0 -0
  70. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-02.yaml +0 -0
  71. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-03.yaml +0 -0
  72. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-04.yaml +0 -0
  73. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-05.yaml +0 -0
  74. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-06.yaml +0 -0
  75. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-07.yaml +0 -0
  76. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-08.yaml +0 -0
  77. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-09.yaml +0 -0
  78. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-10.yaml +0 -0
  79. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-11.yaml +0 -0
  80. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-12.yaml +0 -0
  81. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/GEN-13.yaml +0 -0
  82. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-01.yaml +0 -0
  83. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-02.yaml +0 -0
  84. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-03.yaml +0 -0
  85. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-04.yaml +0 -0
  86. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-05.yaml +0 -0
  87. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-06.yaml +0 -0
  88. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-07.yaml +0 -0
  89. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-08.yaml +0 -0
  90. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-09.yaml +0 -0
  91. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-10.yaml +0 -0
  92. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-11.yaml +0 -0
  93. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-12.yaml +0 -0
  94. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/LOA-13.yaml +0 -0
  95. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/MUL-01.yaml +0 -0
  96. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/MUL-02.yaml +0 -0
  97. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/MUL-03.yaml +0 -0
  98. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/OPT-1-IN-BAND.yaml +0 -0
  99. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/OPT-1-OUT-OF-BAND.yaml +0 -0
  100. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/procedures/test-procedures.yaml +0 -0
  101. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/client/test_procedures.py +0 -0
  102. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/csipaus.py +0 -0
  103. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/errors.py +0 -0
  104. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/py.typed +0 -0
  105. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/schema.py +0 -0
  106. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/README.md +0 -0
  107. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/__pycache__/actions.cpython-312.pyc +0 -0
  108. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/__pycache__/checks.cpython-312.pyc +0 -0
  109. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  110. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/actions.py +0 -0
  111. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/checks.py +0 -0
  112. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/procedures/S-ALL-01.yaml +0 -0
  113. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/procedures/S-ALL-02.yaml +0 -0
  114. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/procedures/S-ALL-03.yaml +0 -0
  115. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/procedures/S-ALL-04.yaml +0 -0
  116. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/procedures/S-ALL-05.yaml +0 -0
  117. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/procedures/S-OPT-01.yaml +0 -0
  118. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/procedures/S-OPT-02.yaml +0 -0
  119. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/procedures/S-OPT-03.yaml +0 -0
  120. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/procedures/S-OPT-04.yaml +0 -0
  121. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/procedures/test-procedures.yaml +0 -0
  122. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/server/test_procedures.py +0 -0
  123. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions/variable_expressions.py +0 -0
  124. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions.egg-info/SOURCES.txt +0 -0
  125. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions.egg-info/dependency_links.txt +0 -0
  126. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions.egg-info/requires.txt +0 -0
  127. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/cactus_test_definitions.egg-info/top_level.txt +0 -0
  128. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/pyproject.toml +0 -0
  129. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/setup.cfg +0 -0
  130. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/__init__.py +0 -0
  131. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/__init__.py +0 -0
  132. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/client/__init__.py +0 -0
  133. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/client/test_actions.py +0 -0
  134. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/client/test_config.py +0 -0
  135. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/client/test_events.py +0 -0
  136. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/client/test_test_procedures.py +0 -0
  137. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/server/__init__.py +0 -0
  138. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/server/test_test_procedures.py +0 -0
  139. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/test_csipaus.py +0 -0
  140. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/test_parameters.py +0 -0
  141. {cactus_test_definitions-1.2.0 → cactus_test_definitions-1.3.0}/tests/unit/test_variable_expressions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cactus-test-definitions
3
- Version: 1.2.0
3
+ Version: 1.3.0
4
4
  Summary: CSIP-AUS Client Test Harness Test Definitions
5
5
  Author-email: Mike Turner <mike.turner@anu.edu.au>, Josh Vote <joshua.vote@anu.edu.au>
6
6
  Maintainer-email: Mike Turner <mike.turner@anu.edu.au>, Josh Vote <joshua.vote@anu.edu.au>
@@ -203,11 +203,11 @@ checks:
203
203
  | `der-settings-contents` | `setGradW: int/None` `doeModesEnabled_set: hex/none` `doeModesEnabled_unset: hex/none` `doeModesEnabled: bool/none` `modesEnabled_set: hex/none` `modesEnabled_unset: hex/none` `setMaxVA: bool/none` `setMaxVar: bool/none` `setMaxW: bool/none` `setMaxChargeRateW: bool/none` `setMaxDischargeRateW: bool/none` `setMaxWh: bool/none` `setMinWh: bool/none` `vppModesEnabled_set: hexbinary/none` `vppModesEnabled_unset: hexbinary/none` `setMaxVarNeg: bool/none` `setMinPFOverExcited: bool/none` `setMinPFUnderExcited: bool/none` | True if a `DERSettings` has been set for the `EndDevice` under test (and if certain elements have been set to certain values) |
204
204
  | `der-capability-contents` | `doeModesSupported_set: hex/none` `doeModesSupported_unset: hex/none` `doeModesSupported: bool/none` `modesSupported_set: hex/none` `modesSupported_unset: hex/none` `rtgMaxVA: bool/none` `rtgMaxVar: bool/none` `rtgMaxW: bool/none` `rtgMaxChargeRateW: bool/none` `rtgMaxDischargeRateW: bool/none` `rtgMaxWh: bool/none` `vppModesSupported_set: hexbinary/none` `vppModesSupported_unset: hexbinary/none` `rtgMaxVarNeg: bool/none` `rtgMinPFOverExcited: bool/none` `rtgMinPFUnderExcited: bool/none` | True if a `DERCapability` has been set for the `EndDevice` under test (and if certain elements have been set to certain values) |
205
205
  | `der-status-contents` | `genConnectStatus: int/None` `operationalModeStatus: int/None` `alarmStatus: int/None` | True if a `DERStatus` has been set for the `EndDevice` under test (and if certain elements have been set to certain values) |
206
- | `readings-site-active-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide active power with `minimum_count` entries |
207
- | `readings-site-reactive-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide reactive power with `minimum_count` entries |
208
- | `readings-voltage` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide voltage OR DER voltage with `minimum_count` entries (at least one is required) |
209
- | `readings-der-active-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for DER active power with `minimum_count` entries |
210
- | `readings-der-reactive-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for DER reactive power with `minimum_count` entries |
206
+ | `readings-site-active-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide active power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
207
+ | `readings-site-reactive-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide reactive power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
208
+ | `readings-voltage` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide voltage OR DER voltage with `minimum_count` entries (at least one is required) |
209
+ | `readings-der-active-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for DER active power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
210
+ | `readings-der-reactive-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for DER reactive power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
211
211
  | `response-contents` | `latest: bool/None` `status: int/None` `all: bool/None` | True if at least one received Response matches the filter. `latest` will only consider the most recent received Response. `all` will look for a nominated status match for every `DERControl` |
212
212
  | `subscription-contents` | `subscribed_resource: str` | True if a subscription to `subscribed_resource` has been created |
213
213
 
@@ -215,7 +215,7 @@ The following are csipaus.org/ns/v1.3-beta/storage extension specific checks imp
215
215
 
216
216
  | **name** | **params** | **description** |
217
217
  | -------- | ---------- | --------------- |
218
- | `readings-der-stored-energy` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for DER stored energy with `minimum_count` entries |
218
+ | `readings-der-stored-energy` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for DER stored energy with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
219
219
  <br>
220
220
 
221
221
  #### Hexbinary Parameters for Bitwise Operations
@@ -162,11 +162,11 @@ checks:
162
162
  | `der-settings-contents` | `setGradW: int/None` `doeModesEnabled_set: hex/none` `doeModesEnabled_unset: hex/none` `doeModesEnabled: bool/none` `modesEnabled_set: hex/none` `modesEnabled_unset: hex/none` `setMaxVA: bool/none` `setMaxVar: bool/none` `setMaxW: bool/none` `setMaxChargeRateW: bool/none` `setMaxDischargeRateW: bool/none` `setMaxWh: bool/none` `setMinWh: bool/none` `vppModesEnabled_set: hexbinary/none` `vppModesEnabled_unset: hexbinary/none` `setMaxVarNeg: bool/none` `setMinPFOverExcited: bool/none` `setMinPFUnderExcited: bool/none` | True if a `DERSettings` has been set for the `EndDevice` under test (and if certain elements have been set to certain values) |
163
163
  | `der-capability-contents` | `doeModesSupported_set: hex/none` `doeModesSupported_unset: hex/none` `doeModesSupported: bool/none` `modesSupported_set: hex/none` `modesSupported_unset: hex/none` `rtgMaxVA: bool/none` `rtgMaxVar: bool/none` `rtgMaxW: bool/none` `rtgMaxChargeRateW: bool/none` `rtgMaxDischargeRateW: bool/none` `rtgMaxWh: bool/none` `vppModesSupported_set: hexbinary/none` `vppModesSupported_unset: hexbinary/none` `rtgMaxVarNeg: bool/none` `rtgMinPFOverExcited: bool/none` `rtgMinPFUnderExcited: bool/none` | True if a `DERCapability` has been set for the `EndDevice` under test (and if certain elements have been set to certain values) |
164
164
  | `der-status-contents` | `genConnectStatus: int/None` `operationalModeStatus: int/None` `alarmStatus: int/None` | True if a `DERStatus` has been set for the `EndDevice` under test (and if certain elements have been set to certain values) |
165
- | `readings-site-active-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide active power with `minimum_count` entries |
166
- | `readings-site-reactive-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide reactive power with `minimum_count` entries |
167
- | `readings-voltage` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide voltage OR DER voltage with `minimum_count` entries (at least one is required) |
168
- | `readings-der-active-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for DER active power with `minimum_count` entries |
169
- | `readings-der-reactive-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for DER reactive power with `minimum_count` entries |
165
+ | `readings-site-active-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide active power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
166
+ | `readings-site-reactive-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide reactive power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
167
+ | `readings-voltage` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide voltage OR DER voltage with `minimum_count` entries (at least one is required) |
168
+ | `readings-der-active-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for DER active power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
169
+ | `readings-der-reactive-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for DER reactive power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
170
170
  | `response-contents` | `latest: bool/None` `status: int/None` `all: bool/None` | True if at least one received Response matches the filter. `latest` will only consider the most recent received Response. `all` will look for a nominated status match for every `DERControl` |
171
171
  | `subscription-contents` | `subscribed_resource: str` | True if a subscription to `subscribed_resource` has been created |
172
172
 
@@ -174,7 +174,7 @@ The following are csipaus.org/ns/v1.3-beta/storage extension specific checks imp
174
174
 
175
175
  | **name** | **params** | **description** |
176
176
  | -------- | ---------- | --------------- |
177
- | `readings-der-stored-energy` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for DER stored energy with `minimum_count` entries |
177
+ | `readings-der-stored-energy` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for DER stored energy with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
178
178
  <br>
179
179
 
180
180
  #### Hexbinary Parameters for Bitwise Operations
@@ -18,7 +18,7 @@ from cactus_test_definitions.variable_expressions import (
18
18
  try_extract_variable_expression,
19
19
  )
20
20
 
21
- __version__ = "1.2.0"
21
+ __version__ = "1.3.0"
22
22
 
23
23
  __all__ = [
24
24
  "TestProcedureDefinitionError",
@@ -33,6 +33,16 @@ class Check:
33
33
  self.parameters[k] = parse_variable_expression_body(variable_expr, k)
34
34
 
35
35
 
36
+ def factory_readings_schema() -> dict[str, Any]:
37
+ """Factory function for common schema shared across reading checks."""
38
+ return {
39
+ "minimum_count": ParameterSchema(False, ParameterType.Integer),
40
+ "minimum_level": ParameterSchema(False, ParameterType.Float),
41
+ "maximum_level": ParameterSchema(False, ParameterType.Float),
42
+ "window_seconds": ParameterSchema(False, ParameterType.UnsignedInteger),
43
+ }
44
+
45
+
36
46
  # The parameter schema for each action, keyed by the action name
37
47
  CHECK_PARAMETER_SCHEMA: dict[str, dict[str, ParameterSchema]] = {
38
48
  "all-steps-complete": {"ignored_steps": ParameterSchema(False, ParameterType.ListString)},
@@ -88,12 +98,12 @@ CHECK_PARAMETER_SCHEMA: dict[str, dict[str, ParameterSchema]] = {
88
98
  "operationalModeStatus": ParameterSchema(False, ParameterType.Integer),
89
99
  "alarmStatus": ParameterSchema(False, ParameterType.Integer),
90
100
  },
91
- "readings-voltage": {"minimum_count": ParameterSchema(True, ParameterType.Integer)},
92
- "readings-site-active-power": {"minimum_count": ParameterSchema(True, ParameterType.Integer)},
93
- "readings-site-reactive-power": {"minimum_count": ParameterSchema(True, ParameterType.Integer)},
94
- "readings-der-active-power": {"minimum_count": ParameterSchema(True, ParameterType.Integer)},
95
- "readings-der-reactive-power": {"minimum_count": ParameterSchema(True, ParameterType.Integer)},
96
- "readings-der-stored-energy": {"minimum_count": ParameterSchema(True, ParameterType.Integer)}, # Storage extension
101
+ "readings-voltage": factory_readings_schema(),
102
+ "readings-site-active-power": factory_readings_schema(),
103
+ "readings-site-reactive-power": factory_readings_schema(),
104
+ "readings-der-active-power": factory_readings_schema(),
105
+ "readings-der-reactive-power": factory_readings_schema(),
106
+ "readings-der-stored-energy": factory_readings_schema(),
97
107
  "subscription-contents": {"subscribed_resource": ParameterSchema(True, ParameterType.String)},
98
108
  "response-contents": {
99
109
  "latest": ParameterSchema(False, ParameterType.Boolean),
@@ -30,6 +30,7 @@ class ParameterType(IntEnum):
30
30
  ListCSIPAusReadingType = auto() # List where each member is a cactus_test_definitions.csipaus.CSIPAusReadingType
31
31
  CSIPAusReadingLocation = auto() # Member of cactus_test_definitions.csipaus.CSIPAusReadingLocation
32
32
  ReadingTypeValues = auto() # A dict of type dict[CSIPAusReadingType, list[float]], each list has the same length
33
+ UnsignedInteger = auto()
33
34
 
34
35
 
35
36
  @dataclass(frozen=True)
@@ -61,6 +62,9 @@ def is_valid_parameter_type(expected_type: ParameterType, value: Any) -> bool:
61
62
  return int(value) == value
62
63
  except Exception:
63
64
  return False
65
+ case ParameterType.UnsignedInteger:
66
+ # Integer that is greater than or equal to 0
67
+ return is_valid_parameter_type(ParameterType.Integer, value) and value >= 0
64
68
  case ParameterType.Float:
65
69
  return isinstance(value, float) or isinstance(value, Decimal) or isinstance(value, int)
66
70
  case ParameterType.Boolean:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cactus-test-definitions
3
- Version: 1.2.0
3
+ Version: 1.3.0
4
4
  Summary: CSIP-AUS Client Test Harness Test Definitions
5
5
  Author-email: Mike Turner <mike.turner@anu.edu.au>, Josh Vote <joshua.vote@anu.edu.au>
6
6
  Maintainer-email: Mike Turner <mike.turner@anu.edu.au>, Josh Vote <joshua.vote@anu.edu.au>
@@ -203,11 +203,11 @@ checks:
203
203
  | `der-settings-contents` | `setGradW: int/None` `doeModesEnabled_set: hex/none` `doeModesEnabled_unset: hex/none` `doeModesEnabled: bool/none` `modesEnabled_set: hex/none` `modesEnabled_unset: hex/none` `setMaxVA: bool/none` `setMaxVar: bool/none` `setMaxW: bool/none` `setMaxChargeRateW: bool/none` `setMaxDischargeRateW: bool/none` `setMaxWh: bool/none` `setMinWh: bool/none` `vppModesEnabled_set: hexbinary/none` `vppModesEnabled_unset: hexbinary/none` `setMaxVarNeg: bool/none` `setMinPFOverExcited: bool/none` `setMinPFUnderExcited: bool/none` | True if a `DERSettings` has been set for the `EndDevice` under test (and if certain elements have been set to certain values) |
204
204
  | `der-capability-contents` | `doeModesSupported_set: hex/none` `doeModesSupported_unset: hex/none` `doeModesSupported: bool/none` `modesSupported_set: hex/none` `modesSupported_unset: hex/none` `rtgMaxVA: bool/none` `rtgMaxVar: bool/none` `rtgMaxW: bool/none` `rtgMaxChargeRateW: bool/none` `rtgMaxDischargeRateW: bool/none` `rtgMaxWh: bool/none` `vppModesSupported_set: hexbinary/none` `vppModesSupported_unset: hexbinary/none` `rtgMaxVarNeg: bool/none` `rtgMinPFOverExcited: bool/none` `rtgMinPFUnderExcited: bool/none` | True if a `DERCapability` has been set for the `EndDevice` under test (and if certain elements have been set to certain values) |
205
205
  | `der-status-contents` | `genConnectStatus: int/None` `operationalModeStatus: int/None` `alarmStatus: int/None` | True if a `DERStatus` has been set for the `EndDevice` under test (and if certain elements have been set to certain values) |
206
- | `readings-site-active-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide active power with `minimum_count` entries |
207
- | `readings-site-reactive-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide reactive power with `minimum_count` entries |
208
- | `readings-voltage` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide voltage OR DER voltage with `minimum_count` entries (at least one is required) |
209
- | `readings-der-active-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for DER active power with `minimum_count` entries |
210
- | `readings-der-reactive-power` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for DER reactive power with `minimum_count` entries |
206
+ | `readings-site-active-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide active power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
207
+ | `readings-site-reactive-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide reactive power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
208
+ | `readings-voltage` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for site wide voltage OR DER voltage with `minimum_count` entries (at least one is required) |
209
+ | `readings-der-active-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for DER active power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
210
+ | `readings-der-reactive-power` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for DER reactive power with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
211
211
  | `response-contents` | `latest: bool/None` `status: int/None` `all: bool/None` | True if at least one received Response matches the filter. `latest` will only consider the most recent received Response. `all` will look for a nominated status match for every `DERControl` |
212
212
  | `subscription-contents` | `subscribed_resource: str` | True if a subscription to `subscribed_resource` has been created |
213
213
 
@@ -215,7 +215,7 @@ The following are csipaus.org/ns/v1.3-beta/storage extension specific checks imp
215
215
 
216
216
  | **name** | **params** | **description** |
217
217
  | -------- | ---------- | --------------- |
218
- | `readings-der-stored-energy` | `minimum_count: int` | True if any MirrorUsagePoint has a MirrorMeterReading for DER stored energy with `minimum_count` entries |
218
+ | `readings-der-stored-energy` | `minimum_count: int/none` `minimum_level: float/none` `maximum_level: float/none` `window_seconds: uint/none` | True if any MirrorUsagePoint has a MirrorMeterReading for DER stored energy with `minimum_count` entries and/or readings all above and/or below `minimum_level`/`maximum_level` respectively; optionally for `window_seconds` |
219
219
  <br>
220
220
 
221
221
  #### Hexbinary Parameters for Bitwise Operations
@@ -8,9 +8,33 @@ from cactus_test_definitions.errors import TestProcedureDefinitionError
8
8
  "check, is_valid",
9
9
  [
10
10
  (Check("foo", {}), False), # Unknown check
11
- (Check("readings-site-active-power", {}), False),
11
+ (Check("readings-site-active-power", {}), True),
12
12
  (Check("readings-site-active-power", {"minimum_count": "3"}), False),
13
13
  (Check("readings-site-active-power", {"minimum_count": 3}), True),
14
+ (Check("readings-site-active-power", {"minimum_count": 3, "minimum_level": 12.3}), True),
15
+ (Check("readings-site-active-power", {"minimum_count": 3, "maximum_level": 12.3}), True),
16
+ (Check("readings-site-active-power", {"minimum_count": 3, "minimum_level": 12.3, "maximum_level": 12.3}), True),
17
+ (
18
+ Check(
19
+ "readings-site-active-power",
20
+ {"minimum_count": 3, "minimum_level": 12.3, "maximum_level": 12.3, "window_seconds": 12.3},
21
+ ),
22
+ False,
23
+ ),
24
+ (
25
+ Check(
26
+ "readings-site-active-power",
27
+ {"minimum_count": 3, "minimum_level": 12.3, "maximum_level": 12.3, "window_seconds": 180},
28
+ ),
29
+ True,
30
+ ),
31
+ (
32
+ Check(
33
+ "readings-site-active-power",
34
+ {"minimum_count": 3, "minimum_level": 12.3, "maximum_level": 12.3, "window_seconds": -180},
35
+ ),
36
+ False,
37
+ ),
14
38
  (Check("der-settings-contents", {"setGradW": 27}), True),
15
39
  (Check("der-settings-contents", {"doeModesEnabled_set": "0f"}), True),
16
40
  (Check("der-settings-contents", {"doeModesEnabled_unset": "0f"}), True),