cactus-test-definitions 1.0.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.

Potentially problematic release.


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

Files changed (135) 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 +26 -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/actions.py +98 -0
  21. cactus_test_definitions/client/checks.py +117 -0
  22. cactus_test_definitions/client/events.py +71 -0
  23. cactus_test_definitions/client/procedures/ALL-01.yaml +94 -0
  24. cactus_test_definitions/client/procedures/ALL-02.yaml +108 -0
  25. cactus_test_definitions/client/procedures/ALL-03-REJ.yaml +69 -0
  26. cactus_test_definitions/client/procedures/ALL-03.yaml +110 -0
  27. cactus_test_definitions/client/procedures/ALL-04.yaml +69 -0
  28. cactus_test_definitions/client/procedures/ALL-05.yaml +117 -0
  29. cactus_test_definitions/client/procedures/ALL-06.yaml +128 -0
  30. cactus_test_definitions/client/procedures/ALL-07.yaml +76 -0
  31. cactus_test_definitions/client/procedures/ALL-08.yaml +78 -0
  32. cactus_test_definitions/client/procedures/ALL-09.yaml +103 -0
  33. cactus_test_definitions/client/procedures/ALL-10.yaml +128 -0
  34. cactus_test_definitions/client/procedures/ALL-11.yaml +111 -0
  35. cactus_test_definitions/client/procedures/ALL-12.yaml +108 -0
  36. cactus_test_definitions/client/procedures/ALL-13.yaml +112 -0
  37. cactus_test_definitions/client/procedures/ALL-14.yaml +165 -0
  38. cactus_test_definitions/client/procedures/ALL-15.yaml +109 -0
  39. cactus_test_definitions/client/procedures/ALL-16.yaml +102 -0
  40. cactus_test_definitions/client/procedures/ALL-17.yaml +63 -0
  41. cactus_test_definitions/client/procedures/ALL-18.yaml +288 -0
  42. cactus_test_definitions/client/procedures/ALL-19.yaml +78 -0
  43. cactus_test_definitions/client/procedures/ALL-20.yaml +136 -0
  44. cactus_test_definitions/client/procedures/ALL-21.yaml +203 -0
  45. cactus_test_definitions/client/procedures/ALL-22.yaml +82 -0
  46. cactus_test_definitions/client/procedures/ALL-23.yaml +158 -0
  47. cactus_test_definitions/client/procedures/ALL-24.yaml +132 -0
  48. cactus_test_definitions/client/procedures/ALL-25.yaml +136 -0
  49. cactus_test_definitions/client/procedures/ALL-26.yaml +147 -0
  50. cactus_test_definitions/client/procedures/ALL-27.yaml +144 -0
  51. cactus_test_definitions/client/procedures/ALL-28.yaml +274 -0
  52. cactus_test_definitions/client/procedures/ALL-29.yaml +87 -0
  53. cactus_test_definitions/client/procedures/ALL-30.yaml +188 -0
  54. cactus_test_definitions/client/procedures/BES-01.yaml +136 -0
  55. cactus_test_definitions/client/procedures/BES-02.yaml +137 -0
  56. cactus_test_definitions/client/procedures/BES-03.yaml +135 -0
  57. cactus_test_definitions/client/procedures/BES-04.yaml +228 -0
  58. cactus_test_definitions/client/procedures/DRA-01.yaml +54 -0
  59. cactus_test_definitions/client/procedures/DRA-02.yaml +64 -0
  60. cactus_test_definitions/client/procedures/DRD-01.yaml +667 -0
  61. cactus_test_definitions/client/procedures/DRL-01.yaml +327 -0
  62. cactus_test_definitions/client/procedures/GEN-01.yaml +73 -0
  63. cactus_test_definitions/client/procedures/GEN-02.yaml +72 -0
  64. cactus_test_definitions/client/procedures/GEN-03.yaml +160 -0
  65. cactus_test_definitions/client/procedures/GEN-04.yaml +161 -0
  66. cactus_test_definitions/client/procedures/GEN-05.yaml +89 -0
  67. cactus_test_definitions/client/procedures/GEN-06.yaml +90 -0
  68. cactus_test_definitions/client/procedures/GEN-07.yaml +145 -0
  69. cactus_test_definitions/client/procedures/GEN-08.yaml +145 -0
  70. cactus_test_definitions/client/procedures/GEN-09.yaml +117 -0
  71. cactus_test_definitions/client/procedures/GEN-10.yaml +737 -0
  72. cactus_test_definitions/client/procedures/GEN-11.yaml +376 -0
  73. cactus_test_definitions/client/procedures/GEN-12.yaml +376 -0
  74. cactus_test_definitions/client/procedures/GEN-13.yaml +70 -0
  75. cactus_test_definitions/client/procedures/LOA-01.yaml +73 -0
  76. cactus_test_definitions/client/procedures/LOA-02.yaml +73 -0
  77. cactus_test_definitions/client/procedures/LOA-03.yaml +160 -0
  78. cactus_test_definitions/client/procedures/LOA-04.yaml +161 -0
  79. cactus_test_definitions/client/procedures/LOA-05.yaml +85 -0
  80. cactus_test_definitions/client/procedures/LOA-06.yaml +85 -0
  81. cactus_test_definitions/client/procedures/LOA-07.yaml +145 -0
  82. cactus_test_definitions/client/procedures/LOA-08.yaml +145 -0
  83. cactus_test_definitions/client/procedures/LOA-09.yaml +117 -0
  84. cactus_test_definitions/client/procedures/LOA-10.yaml +739 -0
  85. cactus_test_definitions/client/procedures/LOA-11.yaml +376 -0
  86. cactus_test_definitions/client/procedures/LOA-12.yaml +376 -0
  87. cactus_test_definitions/client/procedures/LOA-13.yaml +71 -0
  88. cactus_test_definitions/client/procedures/MUL-01.yaml +92 -0
  89. cactus_test_definitions/client/procedures/MUL-02.yaml +80 -0
  90. cactus_test_definitions/client/procedures/MUL-03.yaml +78 -0
  91. cactus_test_definitions/client/procedures/OPT-1-IN-BAND.yaml +115 -0
  92. cactus_test_definitions/client/procedures/OPT-1-OUT-OF-BAND.yaml +101 -0
  93. cactus_test_definitions/client/procedures/test-procedures.yaml +75 -0
  94. cactus_test_definitions/client/test_procedures.py +296 -0
  95. cactus_test_definitions/csipaus.py +81 -0
  96. cactus_test_definitions/errors.py +15 -0
  97. cactus_test_definitions/parameters.py +149 -0
  98. cactus_test_definitions/py.typed +0 -0
  99. cactus_test_definitions/schema.py +22 -0
  100. cactus_test_definitions/server/README.md +170 -0
  101. cactus_test_definitions/server/__pycache__/actions.cpython-312.pyc +0 -0
  102. cactus_test_definitions/server/__pycache__/checks.cpython-312.pyc +0 -0
  103. cactus_test_definitions/server/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
  104. cactus_test_definitions/server/actions.py +139 -0
  105. cactus_test_definitions/server/checks.py +117 -0
  106. cactus_test_definitions/server/procedures/S-ALL-01.yaml +42 -0
  107. cactus_test_definitions/server/procedures/S-ALL-02.yaml +65 -0
  108. cactus_test_definitions/server/procedures/S-ALL-03.yaml +65 -0
  109. cactus_test_definitions/server/procedures/S-ALL-04.yaml +137 -0
  110. cactus_test_definitions/server/procedures/S-ALL-05.yaml +111 -0
  111. cactus_test_definitions/server/procedures/S-OPT-01.yaml +42 -0
  112. cactus_test_definitions/server/procedures/S-OPT-02.yaml +40 -0
  113. cactus_test_definitions/server/procedures/S-OPT-03.yaml +44 -0
  114. cactus_test_definitions/server/procedures/S-OPT-04.yaml +32 -0
  115. cactus_test_definitions/server/procedures/test-procedures.yaml +14 -0
  116. cactus_test_definitions/server/test_procedures.py +183 -0
  117. cactus_test_definitions/variable_expressions.py +419 -0
  118. cactus_test_definitions-1.0.0.dist-info/METADATA +288 -0
  119. cactus_test_definitions-1.0.0.dist-info/RECORD +135 -0
  120. cactus_test_definitions-1.0.0.dist-info/WHEEL +5 -0
  121. cactus_test_definitions-1.0.0.dist-info/licenses/LICENSE.txt +22 -0
  122. cactus_test_definitions-1.0.0.dist-info/top_level.txt +2 -0
  123. tests/__init__.py +0 -0
  124. tests/unit/__init__.py +0 -0
  125. tests/unit/client/__init__.py +0 -0
  126. tests/unit/client/test_actions.py +72 -0
  127. tests/unit/client/test_checks.py +47 -0
  128. tests/unit/client/test_config.py +61 -0
  129. tests/unit/client/test_events.py +36 -0
  130. tests/unit/client/test_test_procedures.py +150 -0
  131. tests/unit/server/__init__.py +0 -0
  132. tests/unit/server/test_test_procedures.py +86 -0
  133. tests/unit/test_csipaus.py +49 -0
  134. tests/unit/test_parameters.py +197 -0
  135. tests/unit/test_variable_expressions.py +402 -0
@@ -0,0 +1,136 @@
1
+ Description: Update DER Program Poll Rate
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+ - DR-A
6
+
7
+ TargetVersions:
8
+ - v1.2
9
+ - v1.3-beta/storage
10
+
11
+ Criteria:
12
+ checks:
13
+ - type: all-steps-complete
14
+ parameters: {}
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
+ - type: create-der-program
27
+ parameters:
28
+ primacy: 0
29
+ checks:
30
+ - type: end-device-contents
31
+ parameters: {}
32
+
33
+ Steps:
34
+
35
+ # (a, b)
36
+ WAIT-POLL-UPDATE:
37
+ event:
38
+ type: wait
39
+ parameters:
40
+ duration_seconds: 60
41
+ actions:
42
+ - type: set-comms-rate
43
+ parameters:
44
+ derp_list_poll_seconds: 120
45
+ - type: enable-steps
46
+ parameters:
47
+ steps:
48
+ - GET-DERP-LIST-1
49
+ - WAIT-10-MINS
50
+ - type: remove-steps
51
+ parameters:
52
+ steps:
53
+ - WAIT-POLL-UPDATE
54
+
55
+ # (c)
56
+ GET-DERP-LIST-1:
57
+ event:
58
+ type: GET-request-received
59
+ parameters:
60
+ endpoint: /edev/1/fsa/1/derp
61
+ actions:
62
+ - type: remove-steps
63
+ parameters:
64
+ steps:
65
+ - GET-DERP-LIST-1
66
+
67
+ # (a, e)
68
+ WAIT-10-MINS:
69
+ event:
70
+ type: wait
71
+ parameters:
72
+ duration_seconds: 600
73
+ actions:
74
+ - type: enable-steps
75
+ parameters:
76
+ steps:
77
+ - GET-DERP-LIST-2
78
+ - type: remove-steps
79
+ parameters:
80
+ steps:
81
+ - WAIT-10-MINS
82
+ instructions:
83
+ - Client shall maintain changed DERProgramList poll rate of 120s
84
+
85
+ # (h)
86
+ # We will start a "timer" as soon as the client picks up the updated poll rate
87
+ GET-DERP-LIST-2:
88
+ event:
89
+ type: GET-request-received
90
+ parameters:
91
+ endpoint: /edev/1/fsa/1/derp
92
+ actions:
93
+ - type: set-comms-rate
94
+ parameters:
95
+ derp_list_poll_seconds: 60
96
+ - type: enable-steps
97
+ parameters:
98
+ steps:
99
+ - GET-DERP-LIST-3
100
+ - WAIT-TEST-END
101
+ - type: remove-steps
102
+ parameters:
103
+ steps:
104
+ - GET-DERP-LIST-2
105
+
106
+
107
+ # (h)
108
+ # This step waiting for an updated poll and WAIT-TEST-END will ensure it happens within 60 seconds (the new poll rate)
109
+ GET-DERP-LIST-3:
110
+ event:
111
+ type: GET-request-received
112
+ parameters:
113
+ endpoint: /edev/1/fsa/1/derp
114
+ actions:
115
+ - type: remove-steps
116
+ parameters:
117
+ steps:
118
+ - GET-DERP-LIST-3
119
+
120
+ # (g)
121
+ WAIT-TEST-END:
122
+ event:
123
+ type: wait
124
+ parameters:
125
+ duration_seconds: 90
126
+ actions:
127
+ - type: remove-steps
128
+ parameters:
129
+ steps:
130
+ - WAIT-TEST-END
131
+ - type: finish-test
132
+ parameters: {}
133
+ instructions:
134
+ - Client shall return to 60s polling
135
+
136
+
@@ -0,0 +1,203 @@
1
+ Description: Scheduling
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+ - DR-A
6
+
7
+ TargetVersions:
8
+ - v1.2
9
+ - v1.3-beta/storage
10
+
11
+ Criteria:
12
+ checks:
13
+ - type: all-steps-complete
14
+ parameters: {}
15
+ - type: response-contents
16
+ parameters:
17
+ all: true
18
+ status: 1 # Every control has a received response
19
+ - type: response-contents
20
+ parameters:
21
+ all: true
22
+ status: 2 # Every control has a started response
23
+ - type: response-contents
24
+ parameters:
25
+ all: true
26
+ status: 3 # Every control has a completed response
27
+
28
+ Preconditions:
29
+ init_actions:
30
+ - type: set-comms-rate
31
+ parameters:
32
+ dcap_poll_seconds: 60
33
+ edev_list_poll_seconds: 60
34
+ fsa_list_poll_seconds: 60
35
+ der_list_poll_seconds: 60
36
+ derp_list_poll_seconds: 60
37
+ mup_post_seconds: 60
38
+ checks:
39
+ - type: end-device-contents
40
+ parameters: {}
41
+ - type: der-settings-contents
42
+ parameters: {}
43
+ actions:
44
+ # 24 minutes of sequential, non overlapping controls with random values (chosen by rolling a D10)
45
+ - type: create-der-control
46
+ parameters:
47
+ start: $(now)
48
+ duration_seconds: 60
49
+ opModExpLimW: $(setMaxW * 0.3)
50
+ opModImpLimW: $(setMaxW * 0.3)
51
+ - type: create-der-control
52
+ parameters:
53
+ start: $(now + '1 minute')
54
+ duration_seconds: 60
55
+ opModExpLimW: $(setMaxW * 0.6)
56
+ opModImpLimW: $(setMaxW * 0.6)
57
+ - type: create-der-control
58
+ parameters:
59
+ start: $(now + '2 minutes')
60
+ duration_seconds: 60
61
+ opModExpLimW: $(setMaxW * 0.4)
62
+ opModImpLimW: $(setMaxW * 0.4)
63
+ - type: create-der-control
64
+ parameters:
65
+ start: $(now + '3 minutes')
66
+ duration_seconds: 60
67
+ opModExpLimW: $(setMaxW * 0.5)
68
+ opModImpLimW: $(setMaxW * 0.5)
69
+ - type: create-der-control
70
+ parameters:
71
+ start: $(now + '4 minutes')
72
+ duration_seconds: 60
73
+ opModExpLimW: $(setMaxW * 0.2)
74
+ opModImpLimW: $(setMaxW * 0.2)
75
+ - type: create-der-control
76
+ parameters:
77
+ start: $(now + '5 minutes')
78
+ duration_seconds: 60
79
+ opModExpLimW: $(setMaxW * 0.1)
80
+ opModImpLimW: $(setMaxW * 0.1)
81
+ - type: create-der-control
82
+ parameters:
83
+ start: $(now + '6 minutes')
84
+ duration_seconds: 60
85
+ opModExpLimW: $(setMaxW * 0.7)
86
+ opModImpLimW: $(setMaxW * 0.7)
87
+ - type: create-der-control
88
+ parameters:
89
+ start: $(now + '7 minutes')
90
+ duration_seconds: 60
91
+ opModExpLimW: $(setMaxW * 0.2)
92
+ opModImpLimW: $(setMaxW * 0.2)
93
+ - type: create-der-control
94
+ parameters:
95
+ start: $(now + '8 minutes')
96
+ duration_seconds: 60
97
+ opModExpLimW: $(setMaxW * 0.3)
98
+ opModImpLimW: $(setMaxW * 0.3)
99
+ - type: create-der-control
100
+ parameters:
101
+ start: $(now + '9 minutes')
102
+ duration_seconds: 60
103
+ opModExpLimW: $(setMaxW * 0.3)
104
+ opModImpLimW: $(setMaxW * 0.3)
105
+ - type: create-der-control
106
+ parameters:
107
+ start: $(now + '10 minutes')
108
+ duration_seconds: 60
109
+ opModExpLimW: $(setMaxW * 0.5)
110
+ opModImpLimW: $(setMaxW * 0.5)
111
+ - type: create-der-control
112
+ parameters:
113
+ start: $(now + '11 minutes')
114
+ duration_seconds: 60
115
+ opModExpLimW: $(setMaxW * 0.9)
116
+ opModImpLimW: $(setMaxW * 0.9)
117
+ - type: create-der-control
118
+ parameters:
119
+ start: $(now + '12 minutes')
120
+ duration_seconds: 60
121
+ opModExpLimW: $(setMaxW * 0.1)
122
+ opModImpLimW: $(setMaxW * 0.1)
123
+ - type: create-der-control
124
+ parameters:
125
+ start: $(now + '13 minutes')
126
+ duration_seconds: 60
127
+ opModExpLimW: $(setMaxW * 0.1)
128
+ opModImpLimW: $(setMaxW * 0.1)
129
+ - type: create-der-control
130
+ parameters:
131
+ start: $(now + '14 minutes')
132
+ duration_seconds: 60
133
+ opModExpLimW: $(setMaxW * 0.5)
134
+ opModImpLimW: $(setMaxW * 0.5)
135
+ - type: create-der-control
136
+ parameters:
137
+ start: $(now + '15 minutes')
138
+ duration_seconds: 60
139
+ opModExpLimW: $(setMaxW * 0.4)
140
+ opModImpLimW: $(setMaxW * 0.4)
141
+ - type: create-der-control
142
+ parameters:
143
+ start: $(now + '16 minutes')
144
+ duration_seconds: 60
145
+ opModExpLimW: $(setMaxW * 0.1)
146
+ opModImpLimW: $(setMaxW * 0.1)
147
+ - type: create-der-control
148
+ parameters:
149
+ start: $(now + '17 minutes')
150
+ duration_seconds: 60
151
+ opModExpLimW: $(setMaxW * 0.7)
152
+ opModImpLimW: $(setMaxW * 0.7)
153
+ - type: create-der-control
154
+ parameters:
155
+ start: $(now + '18 minutes')
156
+ duration_seconds: 60
157
+ opModExpLimW: $(setMaxW * 0.9)
158
+ opModImpLimW: $(setMaxW * 0.9)
159
+ - type: create-der-control
160
+ parameters:
161
+ start: $(now + '19 minutes')
162
+ duration_seconds: 60
163
+ opModExpLimW: $(setMaxW * 0.1)
164
+ opModImpLimW: $(setMaxW * 0.1)
165
+ - type: create-der-control
166
+ parameters:
167
+ start: $(now + '20 minutes')
168
+ duration_seconds: 60
169
+ opModExpLimW: $(setMaxW * 0.4)
170
+ opModImpLimW: $(setMaxW * 0.4)
171
+ - type: create-der-control
172
+ parameters:
173
+ start: $(now + '21 minutes')
174
+ duration_seconds: 60
175
+ opModExpLimW: $(setMaxW * 0.3)
176
+ opModImpLimW: $(setMaxW * 0.3)
177
+ - type: create-der-control
178
+ parameters:
179
+ start: $(now + '22 minutes')
180
+ duration_seconds: 60
181
+ opModExpLimW: $(setMaxW * 0.7)
182
+ opModImpLimW: $(setMaxW * 0.7)
183
+ - type: create-der-control
184
+ parameters:
185
+ start: $(now + '23 minutes')
186
+ duration_seconds: 60
187
+ opModExpLimW: $(setMaxW)
188
+ opModImpLimW: $(setMaxW)
189
+
190
+ Steps:
191
+ WAIT-TEST-END:
192
+ event:
193
+ type: wait
194
+ parameters:
195
+ duration_seconds: 1500 # 25 minutes
196
+ actions:
197
+ - type: remove-steps
198
+ parameters:
199
+ steps:
200
+ - WAIT-TEST-END
201
+ - type: finish-test
202
+ parameters: {}
203
+
@@ -0,0 +1,82 @@
1
+ Description: Randomisation
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+ - DR-A
6
+
7
+ TargetVersions:
8
+ - v1.2
9
+ - v1.3-beta/storage
10
+
11
+ Criteria:
12
+ checks:
13
+ - type: all-steps-complete
14
+ parameters: {}
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
+ actions:
32
+ - type: create-der-control
33
+ parameters:
34
+ start: $(now)
35
+ duration_seconds: 120
36
+ randomizeStart_seconds: 60
37
+ opModExpLimW: $(setMaxW * 2)
38
+ - type: create-der-control
39
+ parameters:
40
+ start: $(now + '120 seconds')
41
+ duration_seconds: 120
42
+ randomizeStart_seconds: 60
43
+ opModExpLimW: $(setMaxW * 2)
44
+ - type: create-der-control
45
+ parameters:
46
+ start: $(now + '240 seconds')
47
+ duration_seconds: 120
48
+ randomizeStart_seconds: 60
49
+ opModExpLimW: $(setMaxW * 2)
50
+ - type: create-der-control
51
+ parameters:
52
+ start: $(now + '360 seconds')
53
+ duration_seconds: 120
54
+ randomizeStart_seconds: 60
55
+ opModExpLimW: $(setMaxW * 2)
56
+ - type: create-der-control
57
+ parameters:
58
+ start: $(now + '480 seconds')
59
+ duration_seconds: 120
60
+ randomizeStart_seconds: 60
61
+ opModExpLimW: $(setMaxW * 2)
62
+
63
+
64
+ Steps:
65
+
66
+ # We don't have a "is random enough" check - it is expected that will be evaluated by a human administering the test
67
+ # specifically looking at the response timings
68
+ WAIT-TEST-END:
69
+ event:
70
+ type: wait
71
+ parameters:
72
+ duration_seconds: 660
73
+ actions:
74
+ - type: remove-steps
75
+ parameters:
76
+ steps:
77
+ - WAIT-TEST-END
78
+ - type: finish-test
79
+ parameters: {}
80
+ instructions:
81
+ - Each DERControl should have their actual start time randomized within a 120s window.
82
+ - This will need to be evaluated via manual inspection.
@@ -0,0 +1,158 @@
1
+ Description: Communication Loss
2
+ Category: Control
3
+ Classes:
4
+ - A
5
+ - DR-A
6
+
7
+ TargetVersions:
8
+ - v1.2
9
+ - v1.3-beta/storage
10
+
11
+ Criteria:
12
+ checks:
13
+ - type: all-steps-complete
14
+ parameters: {}
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
+ actions:
32
+ - type: create-der-control
33
+ parameters:
34
+ start: $(now)
35
+ duration_seconds: 60
36
+ opModExpLimW: $(setMaxW * 2)
37
+ opModImpLimW: $(setMaxW * 2)
38
+ - type: create-der-control
39
+ parameters:
40
+ start: $(now + '1 minute')
41
+ duration_seconds: 60
42
+ opModExpLimW: $(setMaxW * 0.2)
43
+ opModImpLimW: $(setMaxW * 0.2)
44
+ - type: create-der-control
45
+ parameters:
46
+ start: $(now + '2 minutes')
47
+ duration_seconds: 60
48
+ opModExpLimW: $(setMaxW * 1.8)
49
+ opModImpLimW: $(setMaxW * 1.8)
50
+ - type: create-der-control
51
+ parameters:
52
+ start: $(now + '3 minutes')
53
+ duration_seconds: 60
54
+ opModExpLimW: $(setMaxW * 0.7)
55
+ opModImpLimW: $(setMaxW * 0.7)
56
+ - type: create-der-control
57
+ parameters:
58
+ start: $(now + '4 minutes')
59
+ duration_seconds: 60
60
+ opModExpLimW: $(setMaxW * 1.3)
61
+ opModImpLimW: $(setMaxW * 1.3)
62
+ instructions:
63
+ - DER shall be generating or consuming at least 50% of its active power rating.
64
+
65
+ Steps:
66
+ # (a, b)
67
+ GET-DEFAULT-DERC:
68
+ event:
69
+ type: GET-request-received
70
+ parameters:
71
+ endpoint: /edev/1/derp/1/dderc
72
+ actions:
73
+ - type: set-default-der-control
74
+ parameters:
75
+ opModImpLimW: 0
76
+ opModExpLimW: 0
77
+ - type: enable-steps
78
+ parameters:
79
+ steps:
80
+ - WAIT-SHORT-PERIOD
81
+ - type: remove-steps
82
+ parameters:
83
+ steps:
84
+ - GET-DEFAULT-DERC
85
+
86
+ # (c)
87
+ WAIT-SHORT-PERIOD:
88
+ event:
89
+ type: wait
90
+ parameters:
91
+ duration_seconds: 10
92
+ actions:
93
+ - type: remove-steps
94
+ parameters:
95
+ steps:
96
+ - WAIT-SHORT-PERIOD
97
+ - type: enable-steps
98
+ parameters:
99
+ steps:
100
+ - WAIT-SCHEDULE-END
101
+ - type: communications-status
102
+ parameters:
103
+ enabled: false
104
+
105
+ # (d, e)
106
+ WAIT-SCHEDULE-END:
107
+ event:
108
+ type: wait
109
+ parameters:
110
+ duration_seconds: 420
111
+ actions:
112
+ - type: remove-steps
113
+ parameters:
114
+ steps:
115
+ - WAIT-SCHEDULE-END
116
+ - type: enable-steps
117
+ parameters:
118
+ steps:
119
+ - WAIT-TEST-FINISH
120
+ - GET-DERC-AFTER-COMMS-RESTORE
121
+ - type: communications-status
122
+ parameters:
123
+ enabled: true
124
+ - type: create-der-control
125
+ parameters:
126
+ start: $(now)
127
+ duration_seconds: 300
128
+ opModExpLimW: $(setMaxW * 2)
129
+ opModImpLimW: $(setMaxW * 2)
130
+ instructions:
131
+ - DER should continue to follow the DERControl schedule and then reduce to the DefaultDERControl value of 0W after.
132
+
133
+ # (f) - We validate comms restore by another poll to DERControlLst
134
+ GET-DERC-AFTER-COMMS-RESTORE:
135
+ event:
136
+ type: GET-request-received
137
+ parameters:
138
+ endpoint: /edev/1/derp/1/derc
139
+ actions:
140
+ - type: remove-steps
141
+ parameters:
142
+ steps:
143
+ - GET-DERC-AFTER-COMMS-RESTORE
144
+
145
+ # (f)
146
+ WAIT-TEST-FINISH:
147
+ event:
148
+ type: wait
149
+ parameters:
150
+ duration_seconds: 120
151
+ actions:
152
+ - type: remove-steps
153
+ parameters:
154
+ steps:
155
+ - WAIT-TEST-FINISH
156
+ - type: finish-test
157
+ parameters: {}
158
+
@@ -0,0 +1,132 @@
1
+ Description: Validation of Scaling Factors
2
+ Category: Control
3
+ Classes:
4
+ - A
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
+ # TS 5573 states "Control responses sent by the DER client reflect the ongoing status of each control..."
16
+ # There is a chance that the controls might overlap slightly (depending on client polling) so we just cover
17
+ # the received/started Responses - other tests cover this in more detail
18
+ - type: response-contents
19
+ parameters:
20
+ all: true
21
+ status: 1 # Received
22
+ - type: response-contents
23
+ parameters:
24
+ all: true
25
+ status: 2 # Started
26
+
27
+ Preconditions:
28
+ init_actions:
29
+ - type: set-comms-rate
30
+ parameters:
31
+ dcap_poll_seconds: 120
32
+ edev_list_poll_seconds: 120
33
+ fsa_list_poll_seconds: 120
34
+ der_list_poll_seconds: 120
35
+ derp_list_poll_seconds: 120
36
+ mup_post_seconds: 60
37
+ checks:
38
+ - type: end-device-contents
39
+ parameters: {}
40
+ - type: der-settings-contents
41
+ parameters: {}
42
+ actions:
43
+ - type: create-der-program
44
+ parameters:
45
+ primacy: 0
46
+
47
+ instructions:
48
+ - DER shall be exporting or importing at least 50% of its active power rating at the connection point.
49
+
50
+ Steps:
51
+ # (precondition)
52
+ GET-DERC-1:
53
+ event:
54
+ type: GET-request-received
55
+ parameters:
56
+ endpoint: /edev/1/derp/1/derc
57
+ actions:
58
+ - type: create-der-control
59
+ parameters:
60
+ start: $(now)
61
+ duration_seconds: 120
62
+ opModExpLimW: $(setMaxW * 2)
63
+ opModImpLimW: $(setMaxW * 2)
64
+ - type: enable-steps
65
+ parameters:
66
+ steps:
67
+ - GET-DERC-2
68
+ - type: remove-steps
69
+ parameters:
70
+ steps:
71
+ - GET-DERC-1
72
+
73
+
74
+ # (a, b)
75
+ GET-DERC-2:
76
+ event:
77
+ type: GET-request-received
78
+ parameters:
79
+ endpoint: /edev/1/derp/1/derc
80
+ actions:
81
+ - type: create-der-control
82
+ parameters:
83
+ start: $(now)
84
+ duration_seconds: 120
85
+ opModExpLimW: $(setMaxW * 0.3)
86
+ opModImpLimW: $(setMaxW * 0.3)
87
+ pow_10_multipliers: 2
88
+ - type: enable-steps
89
+ parameters:
90
+ steps:
91
+ - GET-DERC-3
92
+ - type: remove-steps
93
+ parameters:
94
+ steps:
95
+ - GET-DERC-2
96
+
97
+ # (c, d)
98
+ GET-DERC-3:
99
+ event:
100
+ type: GET-request-received
101
+ parameters:
102
+ endpoint: /edev/1/derp/1/derc
103
+ actions:
104
+ - type: create-der-control
105
+ parameters:
106
+ start: $(now)
107
+ duration_seconds: 120
108
+ opModExpLimW: $(setMaxW * 0.4)
109
+ opModImpLimW: $(setMaxW * 0.4)
110
+ pow_10_multipliers: 1
111
+ - type: enable-steps
112
+ parameters:
113
+ steps:
114
+ - WAIT-TEST-END
115
+ - type: remove-steps
116
+ parameters:
117
+ steps:
118
+ - GET-DERC-3
119
+
120
+ # Give the control a chance to run and finish
121
+ WAIT-TEST-END:
122
+ event:
123
+ type: wait
124
+ parameters:
125
+ duration_seconds: 180
126
+ actions:
127
+ - type: remove-steps
128
+ parameters:
129
+ steps:
130
+ - WAIT-TEST-END
131
+ - type: finish-test
132
+ parameters: {}