cactus-test-definitions 1.8.0__py3-none-any.whl

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.
Files changed (173) hide show
  1. cactus_test_definitions/__init__.py +39 -0
  2. cactus_test_definitions/__pycache__/__init__.cpython-312.pyc +0 -0
  3. cactus_test_definitions/__pycache__/actions.cpython-312.pyc +0 -0
  4. cactus_test_definitions/__pycache__/checks.cpython-312.pyc +0 -0
  5. cactus_test_definitions/__pycache__/csipaus.cpython-312.pyc +0 -0
  6. cactus_test_definitions/__pycache__/errors.cpython-312.pyc +0 -0
  7. cactus_test_definitions/__pycache__/events.cpython-312.pyc +0 -0
  8. cactus_test_definitions/__pycache__/parameters.cpython-312.pyc +0 -0
  9. cactus_test_definitions/__pycache__/schema.cpython-312.pyc +0 -0
  10. cactus_test_definitions/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  11. cactus_test_definitions/__pycache__/test_procedures.cpython-312.pyc +0 -0
  12. cactus_test_definitions/__pycache__/variable_expressions.cpython-312.pyc +0 -0
  13. cactus_test_definitions/__pycache__/version.cpython-312.pyc +0 -0
  14. cactus_test_definitions/client/__init__.py +30 -0
  15. cactus_test_definitions/client/__pycache__/__init__.cpython-312.pyc +0 -0
  16. cactus_test_definitions/client/__pycache__/actions.cpython-312.pyc +0 -0
  17. cactus_test_definitions/client/__pycache__/checks.cpython-312.pyc +0 -0
  18. cactus_test_definitions/client/__pycache__/events.cpython-312.pyc +0 -0
  19. cactus_test_definitions/client/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  20. cactus_test_definitions/client/__pycache__/validate.cpython-312.pyc +0 -0
  21. cactus_test_definitions/client/actions.py +99 -0
  22. cactus_test_definitions/client/checks.py +128 -0
  23. cactus_test_definitions/client/events.py +71 -0
  24. cactus_test_definitions/client/procedures/ALL-01.yaml +94 -0
  25. cactus_test_definitions/client/procedures/ALL-02.yaml +113 -0
  26. cactus_test_definitions/client/procedures/ALL-03-REJ.yaml +69 -0
  27. cactus_test_definitions/client/procedures/ALL-03.yaml +110 -0
  28. cactus_test_definitions/client/procedures/ALL-04.yaml +69 -0
  29. cactus_test_definitions/client/procedures/ALL-05.yaml +117 -0
  30. cactus_test_definitions/client/procedures/ALL-06.yaml +128 -0
  31. cactus_test_definitions/client/procedures/ALL-07.yaml +76 -0
  32. cactus_test_definitions/client/procedures/ALL-08.yaml +78 -0
  33. cactus_test_definitions/client/procedures/ALL-09.yaml +111 -0
  34. cactus_test_definitions/client/procedures/ALL-10.yaml +128 -0
  35. cactus_test_definitions/client/procedures/ALL-11.yaml +111 -0
  36. cactus_test_definitions/client/procedures/ALL-12.yaml +126 -0
  37. cactus_test_definitions/client/procedures/ALL-13.yaml +112 -0
  38. cactus_test_definitions/client/procedures/ALL-14.yaml +165 -0
  39. cactus_test_definitions/client/procedures/ALL-15.yaml +109 -0
  40. cactus_test_definitions/client/procedures/ALL-16.yaml +102 -0
  41. cactus_test_definitions/client/procedures/ALL-17.yaml +63 -0
  42. cactus_test_definitions/client/procedures/ALL-18.yaml +289 -0
  43. cactus_test_definitions/client/procedures/ALL-19.yaml +78 -0
  44. cactus_test_definitions/client/procedures/ALL-20.yaml +136 -0
  45. cactus_test_definitions/client/procedures/ALL-21.yaml +203 -0
  46. cactus_test_definitions/client/procedures/ALL-22.yaml +82 -0
  47. cactus_test_definitions/client/procedures/ALL-23.yaml +158 -0
  48. cactus_test_definitions/client/procedures/ALL-24.yaml +132 -0
  49. cactus_test_definitions/client/procedures/ALL-25-EXT.yaml +228 -0
  50. cactus_test_definitions/client/procedures/ALL-25.yaml +136 -0
  51. cactus_test_definitions/client/procedures/ALL-26.yaml +147 -0
  52. cactus_test_definitions/client/procedures/ALL-27.yaml +144 -0
  53. cactus_test_definitions/client/procedures/ALL-28.yaml +273 -0
  54. cactus_test_definitions/client/procedures/ALL-29.yaml +87 -0
  55. cactus_test_definitions/client/procedures/ALL-30.yaml +188 -0
  56. cactus_test_definitions/client/procedures/BES-01.yaml +136 -0
  57. cactus_test_definitions/client/procedures/BES-02.yaml +137 -0
  58. cactus_test_definitions/client/procedures/BES-03.yaml +135 -0
  59. cactus_test_definitions/client/procedures/BES-04.yaml +228 -0
  60. cactus_test_definitions/client/procedures/DRA-01.yaml +54 -0
  61. cactus_test_definitions/client/procedures/DRA-02.yaml +64 -0
  62. cactus_test_definitions/client/procedures/DRD-01.yaml +667 -0
  63. cactus_test_definitions/client/procedures/DRL-01.yaml +327 -0
  64. cactus_test_definitions/client/procedures/GEN-01.yaml +73 -0
  65. cactus_test_definitions/client/procedures/GEN-02.yaml +72 -0
  66. cactus_test_definitions/client/procedures/GEN-03.yaml +160 -0
  67. cactus_test_definitions/client/procedures/GEN-04.yaml +161 -0
  68. cactus_test_definitions/client/procedures/GEN-05.yaml +89 -0
  69. cactus_test_definitions/client/procedures/GEN-06.yaml +90 -0
  70. cactus_test_definitions/client/procedures/GEN-07.yaml +145 -0
  71. cactus_test_definitions/client/procedures/GEN-08.yaml +145 -0
  72. cactus_test_definitions/client/procedures/GEN-09.yaml +117 -0
  73. cactus_test_definitions/client/procedures/GEN-10.yaml +793 -0
  74. cactus_test_definitions/client/procedures/GEN-11.yaml +402 -0
  75. cactus_test_definitions/client/procedures/GEN-12.yaml +402 -0
  76. cactus_test_definitions/client/procedures/GEN-13.yaml +70 -0
  77. cactus_test_definitions/client/procedures/LOA-01.yaml +73 -0
  78. cactus_test_definitions/client/procedures/LOA-02.yaml +73 -0
  79. cactus_test_definitions/client/procedures/LOA-03.yaml +160 -0
  80. cactus_test_definitions/client/procedures/LOA-04.yaml +161 -0
  81. cactus_test_definitions/client/procedures/LOA-05.yaml +89 -0
  82. cactus_test_definitions/client/procedures/LOA-06.yaml +89 -0
  83. cactus_test_definitions/client/procedures/LOA-07.yaml +145 -0
  84. cactus_test_definitions/client/procedures/LOA-08.yaml +145 -0
  85. cactus_test_definitions/client/procedures/LOA-09.yaml +117 -0
  86. cactus_test_definitions/client/procedures/LOA-10.yaml +793 -0
  87. cactus_test_definitions/client/procedures/LOA-11.yaml +402 -0
  88. cactus_test_definitions/client/procedures/LOA-12.yaml +402 -0
  89. cactus_test_definitions/client/procedures/LOA-13.yaml +71 -0
  90. cactus_test_definitions/client/procedures/MUL-01.yaml +92 -0
  91. cactus_test_definitions/client/procedures/MUL-02.yaml +80 -0
  92. cactus_test_definitions/client/procedures/MUL-03.yaml +74 -0
  93. cactus_test_definitions/client/test_procedures.py +185 -0
  94. cactus_test_definitions/client/validate.py +98 -0
  95. cactus_test_definitions/csipaus.py +83 -0
  96. cactus_test_definitions/errors.py +15 -0
  97. cactus_test_definitions/parameters.py +153 -0
  98. cactus_test_definitions/py.typed +0 -0
  99. cactus_test_definitions/schema.py +22 -0
  100. cactus_test_definitions/server/README.md +172 -0
  101. cactus_test_definitions/server/__init__.py +27 -0
  102. cactus_test_definitions/server/__pycache__/__init__.cpython-312.pyc +0 -0
  103. cactus_test_definitions/server/__pycache__/actions.cpython-312.pyc +0 -0
  104. cactus_test_definitions/server/__pycache__/checks.cpython-312.pyc +0 -0
  105. cactus_test_definitions/server/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  106. cactus_test_definitions/server/__pycache__/validate.cpython-312.pyc +0 -0
  107. cactus_test_definitions/server/actions.py +140 -0
  108. cactus_test_definitions/server/checks.py +152 -0
  109. cactus_test_definitions/server/procedures/S-ALL-01.yaml +45 -0
  110. cactus_test_definitions/server/procedures/S-ALL-02.yaml +65 -0
  111. cactus_test_definitions/server/procedures/S-ALL-03.yaml +65 -0
  112. cactus_test_definitions/server/procedures/S-ALL-04.yaml +137 -0
  113. cactus_test_definitions/server/procedures/S-ALL-05.yaml +111 -0
  114. cactus_test_definitions/server/procedures/S-ALL-06.yaml +111 -0
  115. cactus_test_definitions/server/procedures/S-ALL-07.yaml +100 -0
  116. cactus_test_definitions/server/procedures/S-ALL-08.yaml +77 -0
  117. cactus_test_definitions/server/procedures/S-ALL-09.yaml +43 -0
  118. cactus_test_definitions/server/procedures/S-ALL-10.yaml +68 -0
  119. cactus_test_definitions/server/procedures/S-ALL-11.yaml +36 -0
  120. cactus_test_definitions/server/procedures/S-ALL-12.yaml +36 -0
  121. cactus_test_definitions/server/procedures/S-ALL-13.yaml +36 -0
  122. cactus_test_definitions/server/procedures/S-ALL-14.yaml +36 -0
  123. cactus_test_definitions/server/procedures/S-ALL-15.yaml +79 -0
  124. cactus_test_definitions/server/procedures/S-ALL-16.yaml +79 -0
  125. cactus_test_definitions/server/procedures/S-ALL-17.yaml +39 -0
  126. cactus_test_definitions/server/procedures/S-ALL-18.yaml +35 -0
  127. cactus_test_definitions/server/procedures/S-ALL-19.yaml +34 -0
  128. cactus_test_definitions/server/procedures/S-ALL-20.yaml +34 -0
  129. cactus_test_definitions/server/procedures/S-ALL-21.yaml +34 -0
  130. cactus_test_definitions/server/procedures/S-ALL-22.yaml +34 -0
  131. cactus_test_definitions/server/procedures/S-ALL-23.yaml +34 -0
  132. cactus_test_definitions/server/procedures/S-ALL-24.yaml +37 -0
  133. cactus_test_definitions/server/procedures/S-ALL-25.yaml +151 -0
  134. cactus_test_definitions/server/procedures/S-ALL-41.yaml +343 -0
  135. cactus_test_definitions/server/procedures/S-ALL-42.yaml +81 -0
  136. cactus_test_definitions/server/procedures/S-ALL-43.yaml +146 -0
  137. cactus_test_definitions/server/procedures/S-ALL-44.yaml +51 -0
  138. cactus_test_definitions/server/procedures/S-ALL-45.yaml +34 -0
  139. cactus_test_definitions/server/procedures/S-ALL-48.yaml +29 -0
  140. cactus_test_definitions/server/procedures/S-ALL-49.yaml +56 -0
  141. cactus_test_definitions/server/procedures/S-ALL-51.yaml +35 -0
  142. cactus_test_definitions/server/procedures/S-ALL-52.yaml +35 -0
  143. cactus_test_definitions/server/procedures/S-ALL-53.yaml +42 -0
  144. cactus_test_definitions/server/procedures/S-ALL-55.yaml +45 -0
  145. cactus_test_definitions/server/procedures/S-ALL-56.yaml +36 -0
  146. cactus_test_definitions/server/procedures/S-ALL-57.yaml +62 -0
  147. cactus_test_definitions/server/procedures/S-OPT-01.yaml +42 -0
  148. cactus_test_definitions/server/procedures/S-OPT-02.yaml +40 -0
  149. cactus_test_definitions/server/procedures/S-OPT-03.yaml +47 -0
  150. cactus_test_definitions/server/procedures/S-OPT-04.yaml +32 -0
  151. cactus_test_definitions/server/procedures/S-OPT-05.yaml +33 -0
  152. cactus_test_definitions/server/test_procedures.py +156 -0
  153. cactus_test_definitions/server/validate.py +30 -0
  154. cactus_test_definitions/variable_expressions.py +419 -0
  155. cactus_test_definitions-1.8.0.dist-info/METADATA +289 -0
  156. cactus_test_definitions-1.8.0.dist-info/RECORD +173 -0
  157. cactus_test_definitions-1.8.0.dist-info/WHEEL +5 -0
  158. cactus_test_definitions-1.8.0.dist-info/licenses/LICENSE.txt +22 -0
  159. cactus_test_definitions-1.8.0.dist-info/top_level.txt +2 -0
  160. tests/__init__.py +0 -0
  161. tests/unit/__init__.py +0 -0
  162. tests/unit/client/__init__.py +0 -0
  163. tests/unit/client/test_actions.py +72 -0
  164. tests/unit/client/test_checks.py +71 -0
  165. tests/unit/client/test_events.py +36 -0
  166. tests/unit/client/test_test_procedures.py +103 -0
  167. tests/unit/client/test_validate.py +200 -0
  168. tests/unit/server/__init__.py +0 -0
  169. tests/unit/server/test_test_procedures.py +60 -0
  170. tests/unit/server/test_validate.py +75 -0
  171. tests/unit/test_csipaus.py +49 -0
  172. tests/unit/test_parameters.py +197 -0
  173. tests/unit/test_variable_expressions.py +402 -0
@@ -0,0 +1,402 @@
1
+ Description: Variable Load Limit
2
+ Category: DER
3
+ Classes:
4
+ - DER-L
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+ - v1.3-beta/storage
9
+
10
+ Criteria:
11
+ checks:
12
+ - type: all-steps-complete
13
+ parameters: {}
14
+
15
+ Preconditions:
16
+ init_actions:
17
+ - type: set-comms-rate
18
+ parameters:
19
+ dcap_poll_seconds: 60
20
+ edev_list_poll_seconds: 60
21
+ fsa_list_poll_seconds: 60
22
+ der_list_poll_seconds: 60
23
+ derp_list_poll_seconds: 60
24
+ mup_post_seconds: 60
25
+ - type: create-der-program
26
+ parameters:
27
+ primacy: 0
28
+
29
+ checks:
30
+ - type: end-device-contents
31
+ parameters: {}
32
+ - type: der-settings-contents
33
+ parameters: {}
34
+
35
+ Steps:
36
+
37
+ # (precondition) - Create a DERControl - set to 200% of max
38
+ GET-DERC-1:
39
+ event:
40
+ type: GET-request-received
41
+ parameters:
42
+ endpoint: /edev/1/derp/1/derc
43
+ actions:
44
+ - type: create-der-control
45
+ parameters:
46
+ start: $(now)
47
+ duration_seconds: 60
48
+ opModLoadLimW: $(setMaxW * 2)
49
+ - type: enable-steps
50
+ parameters:
51
+ steps:
52
+ - GET-DERC-2
53
+ - type: remove-steps
54
+ parameters:
55
+ steps:
56
+ - GET-DERC-1
57
+
58
+ # (a,b) - Create a DERControl - set to 100% of max
59
+ GET-DERC-2:
60
+ event:
61
+ type: GET-request-received
62
+ parameters:
63
+ endpoint: /edev/1/derp/1/derc
64
+ actions:
65
+ - type: create-der-control
66
+ parameters:
67
+ start: $(now)
68
+ duration_seconds: 60
69
+ opModLoadLimW: $(setMaxW)
70
+ - type: enable-steps
71
+ parameters:
72
+ steps:
73
+ - POST-DERC-2-RESPONSE-RECEIVED
74
+ - type: remove-steps
75
+ parameters:
76
+ steps:
77
+ - GET-DERC-2
78
+
79
+ # (b) Wait for "received" response from DERC-2
80
+ POST-DERC-2-RESPONSE-RECEIVED:
81
+ event:
82
+ type: POST-request-received
83
+ parameters:
84
+ endpoint: /edev/1/rsps/site_control/rsp
85
+ serve_request_first: true
86
+ checks:
87
+ - type: response-contents
88
+ parameters:
89
+ latest: true
90
+ status: 1
91
+ actions:
92
+ - type: enable-steps
93
+ parameters:
94
+ steps:
95
+ - POST-DERC-2-RESPONSE-STARTED
96
+ - type: remove-steps
97
+ parameters:
98
+ steps:
99
+ - POST-DERC-2-RESPONSE-RECEIVED
100
+
101
+ # (b) Wait for "Started" response from DERC-2
102
+ POST-DERC-2-RESPONSE-STARTED:
103
+ event:
104
+ type: POST-request-received
105
+ parameters:
106
+ endpoint: /edev/1/rsps/site_control/rsp
107
+ serve_request_first: true
108
+ checks:
109
+ - type: response-contents
110
+ parameters:
111
+ latest: true
112
+ status: 2
113
+ actions:
114
+ - type: enable-steps
115
+ parameters:
116
+ steps:
117
+ - POST-DERC-2-RESPONSE-COMPLETE
118
+ - type: remove-steps
119
+ parameters:
120
+ steps:
121
+ - POST-DERC-2-RESPONSE-STARTED
122
+
123
+ # (b) Wait for "complete" response from DERC-2 - this will trigger the injection of the next control
124
+ POST-DERC-2-RESPONSE-COMPLETE:
125
+ event:
126
+ type: POST-request-received
127
+ parameters:
128
+ endpoint: /edev/1/rsps/site_control/rsp
129
+ serve_request_first: true
130
+ checks:
131
+ - type: response-contents
132
+ parameters:
133
+ latest: true
134
+ status: 3
135
+ actions:
136
+ - type: enable-steps
137
+ parameters:
138
+ steps:
139
+ - GET-DERC-3
140
+ - type: remove-steps
141
+ parameters:
142
+ steps:
143
+ - POST-DERC-2-RESPONSE-COMPLETE
144
+
145
+ # (c,d) - Create a DERControl - set to 40% of max
146
+ GET-DERC-3:
147
+ event:
148
+ type: GET-request-received
149
+ parameters:
150
+ endpoint: /edev/1/derp/1/derc
151
+ actions:
152
+ - type: create-der-control
153
+ parameters:
154
+ start: $(now)
155
+ duration_seconds: 60
156
+ opModLoadLimW: $(setMaxW * 0.4)
157
+ - type: enable-steps
158
+ parameters:
159
+ steps:
160
+ - POST-DERC-3-RESPONSE-RECEIVED
161
+ - type: remove-steps
162
+ parameters:
163
+ steps:
164
+ - GET-DERC-3
165
+
166
+ # (b) Wait for "received" response from DERC-3
167
+ POST-DERC-3-RESPONSE-RECEIVED:
168
+ event:
169
+ type: POST-request-received
170
+ parameters:
171
+ endpoint: /edev/1/rsps/site_control/rsp
172
+ serve_request_first: true
173
+ checks:
174
+ - type: response-contents
175
+ parameters:
176
+ latest: true
177
+ status: 1
178
+ actions:
179
+ - type: enable-steps
180
+ parameters:
181
+ steps:
182
+ - POST-DERC-3-RESPONSE-STARTED
183
+ - type: remove-steps
184
+ parameters:
185
+ steps:
186
+ - POST-DERC-3-RESPONSE-RECEIVED
187
+
188
+ # (b) Wait for "Started" response from DERC-3
189
+ POST-DERC-3-RESPONSE-STARTED:
190
+ event:
191
+ type: POST-request-received
192
+ parameters:
193
+ endpoint: /edev/1/rsps/site_control/rsp
194
+ serve_request_first: true
195
+ checks:
196
+ - type: response-contents
197
+ parameters:
198
+ latest: true
199
+ status: 2
200
+ actions:
201
+ - type: enable-steps
202
+ parameters:
203
+ steps:
204
+ - POST-DERC-3-RESPONSE-COMPLETE
205
+ - type: remove-steps
206
+ parameters:
207
+ steps:
208
+ - POST-DERC-3-RESPONSE-STARTED
209
+
210
+ # (b) Wait for "complete" response from DERC-3
211
+ POST-DERC-3-RESPONSE-COMPLETE:
212
+ event:
213
+ type: POST-request-received
214
+ parameters:
215
+ endpoint: /edev/1/rsps/site_control/rsp
216
+ serve_request_first: true
217
+ checks:
218
+ - type: response-contents
219
+ parameters:
220
+ latest: true
221
+ status: 3
222
+ actions:
223
+ - type: enable-steps
224
+ parameters:
225
+ steps:
226
+ - GET-DERC-4
227
+ - type: remove-steps
228
+ parameters:
229
+ steps:
230
+ - POST-DERC-3-RESPONSE-COMPLETE
231
+
232
+ # (e, f) - Create a DERControl - set to 25% of max
233
+ GET-DERC-4:
234
+ event:
235
+ type: GET-request-received
236
+ parameters:
237
+ endpoint: /edev/1/derp/1/derc
238
+ actions:
239
+ - type: create-der-control
240
+ parameters:
241
+ start: $(now)
242
+ duration_seconds: 60
243
+ opModLoadLimW: $(setMaxW * 0.25)
244
+ - type: enable-steps
245
+ parameters:
246
+ steps:
247
+ - POST-DERC-4-RESPONSE-RECEIVED
248
+ - type: remove-steps
249
+ parameters:
250
+ steps:
251
+ - GET-DERC-4
252
+
253
+ # (f) Wait for "received" response from DERC-4
254
+ POST-DERC-4-RESPONSE-RECEIVED:
255
+ event:
256
+ type: POST-request-received
257
+ parameters:
258
+ endpoint: /edev/1/rsps/site_control/rsp
259
+ serve_request_first: true
260
+ checks:
261
+ - type: response-contents
262
+ parameters:
263
+ latest: true
264
+ status: 1
265
+ actions:
266
+ - type: enable-steps
267
+ parameters:
268
+ steps:
269
+ - POST-DERC-4-RESPONSE-STARTED
270
+ - type: remove-steps
271
+ parameters:
272
+ steps:
273
+ - POST-DERC-4-RESPONSE-RECEIVED
274
+
275
+ # (f) Wait for "Started" response from DERC-4
276
+ POST-DERC-4-RESPONSE-STARTED:
277
+ event:
278
+ type: POST-request-received
279
+ parameters:
280
+ endpoint: /edev/1/rsps/site_control/rsp
281
+ serve_request_first: true
282
+ checks:
283
+ - type: response-contents
284
+ parameters:
285
+ latest: true
286
+ status: 2
287
+ actions:
288
+ - type: enable-steps
289
+ parameters:
290
+ steps:
291
+ - POST-DERC-4-RESPONSE-COMPLETE
292
+ - type: remove-steps
293
+ parameters:
294
+ steps:
295
+ - POST-DERC-4-RESPONSE-STARTED
296
+
297
+ # (f) Wait for "complete" response from DERC-4
298
+ POST-DERC-4-RESPONSE-COMPLETE:
299
+ event:
300
+ type: POST-request-received
301
+ parameters:
302
+ endpoint: /edev/1/rsps/site_control/rsp
303
+ serve_request_first: true
304
+ checks:
305
+ - type: response-contents
306
+ parameters:
307
+ latest: true
308
+ status: 3
309
+ actions:
310
+ - type: enable-steps
311
+ parameters:
312
+ steps:
313
+ - GET-DERC-5
314
+ - type: remove-steps
315
+ parameters:
316
+ steps:
317
+ - POST-DERC-4-RESPONSE-COMPLETE
318
+
319
+ # (g, h) - Create a DERControl - set to 0% of max
320
+ GET-DERC-5:
321
+ event:
322
+ type: GET-request-received
323
+ parameters:
324
+ endpoint: /edev/1/derp/1/derc
325
+ actions:
326
+ - type: create-der-control
327
+ parameters:
328
+ start: $(now)
329
+ duration_seconds: 60
330
+ opModLoadLimW: 0
331
+ - type: enable-steps
332
+ parameters:
333
+ steps:
334
+ - POST-DERC-5-RESPONSE-RECEIVED
335
+ - type: remove-steps
336
+ parameters:
337
+ steps:
338
+ - GET-DERC-5
339
+
340
+ # (h) Wait for "received" response from DERC-5
341
+ POST-DERC-5-RESPONSE-RECEIVED:
342
+ event:
343
+ type: POST-request-received
344
+ parameters:
345
+ endpoint: /edev/1/rsps/site_control/rsp
346
+ serve_request_first: true
347
+ checks:
348
+ - type: response-contents
349
+ parameters:
350
+ latest: true
351
+ status: 1
352
+ actions:
353
+ - type: enable-steps
354
+ parameters:
355
+ steps:
356
+ - POST-DERC-5-RESPONSE-STARTED
357
+ - type: remove-steps
358
+ parameters:
359
+ steps:
360
+ - POST-DERC-5-RESPONSE-RECEIVED
361
+
362
+ # (h) Wait for "Started" response from DERC-5
363
+ POST-DERC-5-RESPONSE-STARTED:
364
+ event:
365
+ type: POST-request-received
366
+ parameters:
367
+ endpoint: /edev/1/rsps/site_control/rsp
368
+ serve_request_first: true
369
+ checks:
370
+ - type: response-contents
371
+ parameters:
372
+ latest: true
373
+ status: 2
374
+ actions:
375
+ - type: enable-steps
376
+ parameters:
377
+ steps:
378
+ - POST-DERC-5-RESPONSE-COMPLETE
379
+ - type: remove-steps
380
+ parameters:
381
+ steps:
382
+ - POST-DERC-5-RESPONSE-STARTED
383
+
384
+ # (f) Wait for "complete" response from DERC-5
385
+ POST-DERC-5-RESPONSE-COMPLETE:
386
+ event:
387
+ type: POST-request-received
388
+ parameters:
389
+ endpoint: /edev/1/rsps/site_control/rsp
390
+ serve_request_first: true
391
+ checks:
392
+ - type: response-contents
393
+ parameters:
394
+ latest: true
395
+ status: 3
396
+ actions:
397
+ - type: remove-steps
398
+ parameters:
399
+ steps:
400
+ - POST-DERC-5-RESPONSE-COMPLETE
401
+ - type: finish-test
402
+ parameters: {}
@@ -0,0 +1,71 @@
1
+ Description: Tracking import-limit through variable load
2
+ Category: DER
3
+ Classes:
4
+ - DER-L
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+ - v1.3-beta/storage
9
+
10
+ Criteria:
11
+ checks:
12
+ - type: all-steps-complete
13
+ parameters: {}
14
+
15
+ Preconditions:
16
+ init_actions:
17
+ - type: set-comms-rate
18
+ parameters:
19
+ dcap_poll_seconds: 60
20
+ edev_list_poll_seconds: 60
21
+ fsa_list_poll_seconds: 60
22
+ der_list_poll_seconds: 60
23
+ derp_list_poll_seconds: 60
24
+ mup_post_seconds: 60
25
+
26
+ checks:
27
+ - type: end-device-contents
28
+ parameters: {}
29
+ - type: der-settings-contents
30
+ parameters: {}
31
+ actions:
32
+ - type: create-der-control
33
+ parameters:
34
+ start: $(now)
35
+ duration_seconds: 60
36
+ opModImpLimW: $(setMaxW * 2)
37
+ - type: create-der-control
38
+ parameters:
39
+ start: $(now + '1 minute')
40
+ duration_seconds: 420
41
+ opModImpLimW: $(setMaxW * 0.2)
42
+ instructions:
43
+ - Connect a test load electrically in parallel with the DER.
44
+ - Set the load to consume 0W.
45
+
46
+ Steps:
47
+
48
+ # This test is purely following a sequence of DERControls. It's expected that the following events occurs out of band:
49
+ # at t=0 - Test load is consuming 0W
50
+ # at t=120s - Test load is consuming 20% of setMaxW
51
+ # at t=240s - Test load is consuming 10% of setMaxW
52
+ # at t=360s - Test load is consuming 0W
53
+ #
54
+ # Validation MUST be performed by power meter to ensure that the DER is adjusting its power in response to changing
55
+ # loads
56
+ WAIT-TEST-END:
57
+ instructions:
58
+ - At t=120s, set the load to consume 20% of the DER's rated active power.
59
+ - At t=240s, set the load to consume 10% of the DER's rated active power.
60
+ - At t=360s, set the load to consume 0W.
61
+ event:
62
+ type: wait
63
+ parameters:
64
+ duration_seconds: 500
65
+ actions:
66
+ - type: remove-steps
67
+ parameters:
68
+ steps:
69
+ - WAIT-TEST-END
70
+ - type: finish-test
71
+ parameters: {}
@@ -0,0 +1,92 @@
1
+ Description: Returning DERStatus Values for Multiple DER
2
+ Category: Monitoring
3
+ Classes:
4
+ - M
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+ - v1.3-beta/storage
9
+
10
+ Criteria:
11
+ checks:
12
+ - type: all-steps-complete
13
+ parameters: {}
14
+
15
+
16
+ Preconditions:
17
+ init_actions:
18
+ - type: set-comms-rate
19
+ parameters:
20
+ dcap_poll_seconds: 60
21
+ edev_list_poll_seconds: 60
22
+ fsa_list_poll_seconds: 60
23
+ der_list_poll_seconds: 60
24
+ derp_list_poll_seconds: 60
25
+ mup_post_seconds: 60
26
+ checks:
27
+ - type: end-device-contents
28
+ parameters: {}
29
+ - type: der-settings-contents
30
+ parameters: {}
31
+ - type: der-status-contents
32
+ parameters:
33
+ genConnectStatus_bit0: true
34
+ actions:
35
+ - type: create-der-control
36
+ parameters:
37
+ start: $(now)
38
+ duration_seconds: 900
39
+ opModExpLimW: $(setMaxW * 2)
40
+ opModImpLimW: $(setMaxW * 2)
41
+
42
+ Steps:
43
+
44
+ # The client powers off one DER
45
+ PUT-DERSTATUS-FIRST-DISCONNECT:
46
+ instructions:
47
+ - Power off one DER either by a hardware switch on the DER or by disconnection from the grid supply. Priority should be given to DER capable of generation.
48
+ event:
49
+ type: PUT-request-received
50
+ parameters:
51
+ endpoint: /edev/1/der/1/ders
52
+ serve_request_first: true # Run this AFTER server receives the request
53
+ # Only trigger this if the server has an updated DERStatus
54
+ checks:
55
+ - type: der-status-contents
56
+ parameters:
57
+ operationalModeStatus: 2
58
+ genConnectStatus_bit0: true
59
+ genConnectStatus_bit1: true
60
+ genConnectStatus_bit2: true
61
+ actions:
62
+ - type: enable-steps
63
+ parameters:
64
+ steps:
65
+ - PUT-DERSTATUS-FULL-DISCONNECT
66
+ - type: remove-steps
67
+ parameters:
68
+ steps:
69
+ - PUT-DERSTATUS-FIRST-DISCONNECT
70
+
71
+ # The client powers off all remaining DER
72
+ PUT-DERSTATUS-FULL-DISCONNECT:
73
+ instructions:
74
+ - Power off off remaining DER.
75
+ event:
76
+ type: PUT-request-received
77
+ parameters:
78
+ endpoint: /edev/1/der/1/ders
79
+ serve_request_first: true # Run this AFTER server receives the request
80
+ # Only trigger this if the server has an updated DERStatus
81
+ checks:
82
+ - type: der-status-contents
83
+ parameters:
84
+ operationalModeStatus: 1
85
+ genConnectStatus_bit0: false
86
+ genConnectStatus_bit1: false
87
+ genConnectStatus_bit2: false
88
+ actions:
89
+ - type: remove-steps
90
+ parameters:
91
+ steps:
92
+ - PUT-DERSTATUS-FULL-DISCONNECT
@@ -0,0 +1,80 @@
1
+ Description: Reporting Aggregated Telemetry for Multiple DER
2
+ Category: Monitoring
3
+ Classes:
4
+ - M
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+ - v1.3-beta/storage
9
+
10
+ Criteria:
11
+ checks:
12
+ - type: all-steps-complete
13
+ parameters: {}
14
+
15
+ # Test is ~5 minutes of waiting which should leave enough time for at least 3 reading posts
16
+ - type: readings-site-active-power
17
+ parameters: {"minimum_count": 3}
18
+ - type: readings-site-reactive-power
19
+ parameters: {"minimum_count": 3}
20
+ - type: readings-voltage
21
+ parameters: {"minimum_count": 3}
22
+ - type: readings-der-active-power
23
+ parameters: {"minimum_count": 3}
24
+ - type: readings-der-reactive-power
25
+ parameters: {"minimum_count": 3}
26
+
27
+ Preconditions:
28
+ init_actions:
29
+ - type: set-comms-rate
30
+ parameters:
31
+ dcap_poll_seconds: 60
32
+ edev_list_poll_seconds: 60
33
+ fsa_list_poll_seconds: 60
34
+ der_list_poll_seconds: 60
35
+ derp_list_poll_seconds: 60
36
+ mup_post_seconds: 60
37
+
38
+ checks:
39
+ - type: end-device-contents
40
+ parameters: {}
41
+ - type: der-settings-contents
42
+ parameters: {}
43
+ actions:
44
+ - type: set-comms-rate
45
+ parameters:
46
+ der_list_poll_seconds: 60
47
+ mup_post_seconds: 60
48
+ - type: create-der-control
49
+ parameters:
50
+ start: $(now)
51
+ duration_seconds: 120
52
+ opModExpLimW: $(setMaxW * 2)
53
+ opModImpLimW: $(setMaxW * 2)
54
+ - type: create-der-control
55
+ parameters:
56
+ start: $(now + '2 minutes')
57
+ duration_seconds: 120
58
+ opModExpLimW: 0
59
+ opModImpLimW: 0
60
+ instructions:
61
+ - Connect a test load electrically in parallel with the DER.
62
+ - Set the load to consume 10% of the sum total of the DERs' rated active power.
63
+
64
+ Steps:
65
+
66
+ # Wait for the test end - validation of device response will need to be validated out of band
67
+ WAIT-TEST-END:
68
+ event:
69
+ type: wait
70
+ parameters:
71
+ duration_seconds: 300 # Wait for at least 4/5 sets of readings to arrive (with post rate 60 seconds)
72
+ actions:
73
+ - type: remove-steps
74
+ parameters:
75
+ steps:
76
+ - WAIT-TEST-END
77
+ - type: finish-test
78
+ parameters: {}
79
+ instructions:
80
+ - DER should send correct readings, aggregated according TS 5573 2025
@@ -0,0 +1,74 @@
1
+ Description: Validate DERCapability and DERSettings For Multiple DER
2
+ Category: Monitoring
3
+ Classes:
4
+ - M
5
+
6
+ TargetVersions:
7
+ - v1.2
8
+ - v1.3-beta/storage
9
+
10
+ Criteria:
11
+ checks:
12
+ - type: all-steps-complete
13
+ parameters: {}
14
+ - type: der-capability-contents
15
+ parameters: {}
16
+ - type: der-settings-contents
17
+ parameters: {}
18
+ - type: der-status-contents
19
+ parameters: {}
20
+
21
+ Preconditions:
22
+ immediate_start: true # There will be no "init" phase - all interactions will be immediately logged against the test
23
+ init_actions:
24
+ - type: set-comms-rate
25
+ parameters:
26
+ dcap_poll_seconds: 60
27
+ edev_list_poll_seconds: 60
28
+ fsa_list_poll_seconds: 60
29
+ der_list_poll_seconds: 60
30
+ derp_list_poll_seconds: 60
31
+ mup_post_seconds: 60
32
+ - type: create-der-program
33
+ parameters:
34
+ primacy: 0
35
+
36
+ Steps:
37
+
38
+ # (a, b, c)
39
+ PUT-DERSETTINGS-FIRST:
40
+ event:
41
+ type: PUT-request-received
42
+ parameters:
43
+ endpoint: /edev/1/der/1/derg
44
+ actions:
45
+ - type: set-default-der-control
46
+ parameters:
47
+ setGradW: 100 # Value in hundredths, 100 = 1%
48
+ - type: remove-steps
49
+ parameters:
50
+ steps:
51
+ - PUT-DERSETTINGS-FIRST
52
+ - type: enable-steps
53
+ parameters:
54
+ steps:
55
+ - PUT-DERSETTINGS-UPDATED
56
+
57
+ # (d)
58
+ PUT-DERSETTINGS-UPDATED:
59
+ instructions:
60
+ - Modify the maximum rating of one DER in the device settings.
61
+ event:
62
+ type: PUT-request-received
63
+ parameters:
64
+ endpoint: /edev/1/der/1/derg
65
+ serve_request_first: true
66
+ checks:
67
+ - type: der-settings-contents
68
+ parameters:
69
+ setGradW: 100
70
+ actions:
71
+ - type: remove-steps
72
+ parameters:
73
+ steps:
74
+ - PUT-DERSETTINGS-UPDATED