cactus-test-definitions 1.6.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 (139) 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/__pycache__/validate.cpython-312.pyc +0 -0
  21. cactus_test_definitions/client/actions.py +98 -0
  22. cactus_test_definitions/client/checks.py +127 -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 +108 -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 +288 -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 +274 -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 +739 -0
  74. cactus_test_definitions/client/procedures/GEN-11.yaml +378 -0
  75. cactus_test_definitions/client/procedures/GEN-12.yaml +378 -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 +741 -0
  87. cactus_test_definitions/client/procedures/LOA-11.yaml +378 -0
  88. cactus_test_definitions/client/procedures/LOA-12.yaml +378 -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 +81 -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 +170 -0
  101. cactus_test_definitions/server/__init__.py +23 -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 +139 -0
  108. cactus_test_definitions/server/checks.py +117 -0
  109. cactus_test_definitions/server/procedures/S-ALL-01.yaml +42 -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-OPT-01.yaml +42 -0
  115. cactus_test_definitions/server/procedures/S-OPT-02.yaml +40 -0
  116. cactus_test_definitions/server/procedures/S-OPT-03.yaml +44 -0
  117. cactus_test_definitions/server/procedures/S-OPT-04.yaml +32 -0
  118. cactus_test_definitions/server/test_procedures.py +122 -0
  119. cactus_test_definitions/server/validate.py +30 -0
  120. cactus_test_definitions/variable_expressions.py +419 -0
  121. cactus_test_definitions-1.6.0.dist-info/METADATA +289 -0
  122. cactus_test_definitions-1.6.0.dist-info/RECORD +139 -0
  123. cactus_test_definitions-1.6.0.dist-info/WHEEL +5 -0
  124. cactus_test_definitions-1.6.0.dist-info/licenses/LICENSE.txt +22 -0
  125. cactus_test_definitions-1.6.0.dist-info/top_level.txt +2 -0
  126. tests/__init__.py +0 -0
  127. tests/unit/__init__.py +0 -0
  128. tests/unit/client/__init__.py +0 -0
  129. tests/unit/client/test_actions.py +72 -0
  130. tests/unit/client/test_checks.py +71 -0
  131. tests/unit/client/test_events.py +36 -0
  132. tests/unit/client/test_test_procedures.py +103 -0
  133. tests/unit/client/test_validate.py +153 -0
  134. tests/unit/server/__init__.py +0 -0
  135. tests/unit/server/test_test_procedures.py +60 -0
  136. tests/unit/server/test_validate.py +62 -0
  137. tests/unit/test_csipaus.py +49 -0
  138. tests/unit/test_parameters.py +197 -0
  139. tests/unit/test_variable_expressions.py +402 -0
@@ -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: {}
@@ -0,0 +1,228 @@
1
+ Description: Extended operations
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 # Received
19
+ - type: response-contents
20
+ parameters:
21
+ all: true
22
+ status: 2 # Started
23
+ - type: response-contents
24
+ parameters:
25
+ all: true
26
+ status: 3 # Completed
27
+ - type: readings-site-active-power
28
+ parameters: {"minimum_count": 70} # This test is 72 hours at 1 hour post rate
29
+
30
+ Preconditions:
31
+ init_actions:
32
+ # We will be slowing down the comms significantly due to the 72hour nature of this test
33
+ - type: set-comms-rate
34
+ parameters:
35
+ dcap_poll_seconds: 3600
36
+ edev_list_poll_seconds: 3600
37
+ fsa_list_poll_seconds: 3600
38
+ der_list_poll_seconds: 3600
39
+ derp_list_poll_seconds: 3600
40
+ mup_post_seconds: 3600
41
+
42
+ checks:
43
+ - type: end-device-contents
44
+ parameters: {}
45
+
46
+
47
+ actions:
48
+ - type: create-der-program
49
+ parameters:
50
+ primacy: 0
51
+
52
+ - type: set-default-der-control
53
+ parameters:
54
+ opModExpLimW: 0
55
+ opModImpLimW: 0
56
+
57
+ Steps:
58
+
59
+ # This will supply 24 hours of controls
60
+ GET-DERC-DAY-1:
61
+ event:
62
+ type: GET-request-received
63
+ parameters:
64
+ endpoint: /edev/1/derp/1/derc
65
+ actions:
66
+ - type: create-der-control
67
+ parameters:
68
+ start: $(now)
69
+ duration_seconds: 21600 # 6 hours
70
+ opModExpLimW: $(setMaxW * 0.3)
71
+ opModImpLimW: $(setMaxW * 0.3)
72
+ - type: create-der-control
73
+ parameters:
74
+ start: $(now + '6 hours')
75
+ duration_seconds: 21600 # 6 hours
76
+ opModExpLimW: $(setMaxW * 1.2)
77
+ opModImpLimW: $(setMaxW * 1.2)
78
+ - type: create-der-control
79
+ parameters:
80
+ start: $(now + '12 hours')
81
+ duration_seconds: 21600 # 6 hours
82
+ opModExpLimW: $(setMaxW * 0.8)
83
+ opModImpLimW: $(setMaxW * 0.8)
84
+ - type: create-der-control
85
+ parameters:
86
+ start: $(now + '18 hours')
87
+ duration_seconds: 21600 # 6 hours
88
+ opModExpLimW: $(setMaxW * 0.1)
89
+ opModImpLimW: $(setMaxW * 0.1)
90
+ - type: enable-steps
91
+ parameters:
92
+ steps:
93
+ - WAIT-DAY1-END
94
+ - type: remove-steps
95
+ parameters:
96
+ steps:
97
+ - GET-DERC-DAY-1
98
+
99
+ # This will fire at the end of the first 24 hours
100
+ WAIT-DAY1-END:
101
+ instructions:
102
+ - Please note that this test will run continuously for 72 hours. You are currently in the first 24 hours.
103
+ - New DERControls will be issued every 24 hours.
104
+ event:
105
+ type: wait
106
+ parameters:
107
+ duration_seconds: 86700 # 24 hours, 5 minutes (to ensure we don't supersede anything)
108
+ actions:
109
+ - type: create-der-control
110
+ parameters:
111
+ start: $(now)
112
+ duration_seconds: 21600 # 6 hours
113
+ opModExpLimW: $(setMaxW * 0.4)
114
+ opModImpLimW: $(setMaxW * 0.4)
115
+ - type: create-der-control
116
+ parameters:
117
+ start: $(now + '6 hours')
118
+ duration_seconds: 21600 # 6 hours
119
+ opModExpLimW: $(setMaxW * 1.5)
120
+ opModImpLimW: $(setMaxW * 1.5)
121
+ - type: create-der-control
122
+ parameters:
123
+ start: $(now + '12 hours')
124
+ duration_seconds: 21600 # 6 hours
125
+ opModExpLimW: $(setMaxW * 0.6)
126
+ opModImpLimW: $(setMaxW * 0.6)
127
+ - type: create-der-control
128
+ parameters:
129
+ start: $(now + '18 hours')
130
+ duration_seconds: 21600 # 6 hours
131
+ opModExpLimW: $(setMaxW * 0.2)
132
+ opModImpLimW: $(setMaxW * 0.2)
133
+ - type: enable-steps
134
+ parameters:
135
+ steps:
136
+ - WAIT-DAY2-END
137
+ - type: remove-steps
138
+ parameters:
139
+ steps:
140
+ - WAIT-DAY1-END
141
+
142
+ # This will fire at the end of the second 24 hours
143
+ WAIT-DAY2-END:
144
+ instructions:
145
+ - Please note that this test will run continuously for 72 hours. You are currently in the second 24 hours.
146
+ - New DERControls will be issued every 24 hours.
147
+ event:
148
+ type: wait
149
+ parameters:
150
+ duration_seconds: 86700 # 24 hours, 5 minutes (to ensure we don't supersede anything)
151
+ actions:
152
+ - type: create-der-control
153
+ parameters:
154
+ start: $(now)
155
+ duration_seconds: 21600 # 6 hours
156
+ opModExpLimW: $(setMaxW * 0.5)
157
+ opModImpLimW: $(setMaxW * 0.5)
158
+ - type: create-der-control
159
+ parameters:
160
+ start: $(now + '6 hours')
161
+ duration_seconds: 21600 # 6 hours
162
+ opModExpLimW: $(setMaxW * 1)
163
+ opModImpLimW: $(setMaxW * 1)
164
+ - type: create-der-control
165
+ parameters:
166
+ start: $(now + '12 hours')
167
+ duration_seconds: 21600 # 6 hours
168
+ opModExpLimW: $(setMaxW * 0.3)
169
+ opModImpLimW: $(setMaxW * 0.3)
170
+ - type: create-der-control
171
+ parameters:
172
+ start: $(now + '18 hours')
173
+ duration_seconds: 21600 # 6 hours
174
+ opModExpLimW: $(setMaxW * 0.8)
175
+ opModImpLimW: $(setMaxW * 0.8)
176
+ - type: enable-steps
177
+ parameters:
178
+ steps:
179
+ - WAIT-DAY3-END
180
+ - type: remove-steps
181
+ parameters:
182
+ steps:
183
+ - WAIT-DAY2-END
184
+
185
+ # This will fire at the end of the test
186
+ WAIT-DAY3-END:
187
+ instructions:
188
+ - Please note that this test will run continuously for 72 hours. You are currently in the final 24 hours.
189
+ - No more new controls will be issued after the current set.
190
+ event:
191
+ type: wait
192
+ parameters:
193
+ duration_seconds: 86700 # 24 hours, 5 minutes
194
+ actions:
195
+ - type: enable-steps
196
+ parameters:
197
+ steps:
198
+ - WAIT-TEST-END
199
+ - type: remove-steps
200
+ parameters:
201
+ steps:
202
+ - WAIT-DAY3-END
203
+
204
+ # This will fire at the end of the test
205
+ WAIT-TEST-END:
206
+ instructions:
207
+ - The test is now complete - no more controls will be issued.
208
+ - This delay is purely a chance to ensure that EVERY DERControl has received a "Completed (3)" Response.
209
+ - This step will block indefinitely until the latest DERControl has a "Completed (3)" Response.
210
+ event:
211
+ type: wait
212
+ parameters:
213
+ duration_seconds: 10 # Token amount of time - we want this to start checking immediately
214
+ checks:
215
+ # This check will repeatedly fire after the wait time is met - this will ensure that a late "completed" response
216
+ # won't waste 3 days of testing.
217
+ - type: response-contents
218
+ parameters:
219
+ latest: true
220
+ status: 3
221
+ actions:
222
+ - type: remove-steps
223
+ parameters:
224
+ steps:
225
+ - WAIT-TEST-END
226
+ - type: finish-test
227
+ parameters: {}
228
+