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.
- cactus_test_definitions/__init__.py +39 -0
- cactus_test_definitions/__pycache__/__init__.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/actions.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/checks.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/csipaus.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/errors.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/events.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/parameters.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/schema.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
- cactus_test_definitions/__pycache__/test_procedures.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/variable_expressions.cpython-312.pyc +0 -0
- cactus_test_definitions/__pycache__/version.cpython-312.pyc +0 -0
- cactus_test_definitions/client/__init__.py +26 -0
- cactus_test_definitions/client/__pycache__/__init__.cpython-312.pyc +0 -0
- cactus_test_definitions/client/__pycache__/actions.cpython-312.pyc +0 -0
- cactus_test_definitions/client/__pycache__/checks.cpython-312.pyc +0 -0
- cactus_test_definitions/client/__pycache__/events.cpython-312.pyc +0 -0
- cactus_test_definitions/client/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
- cactus_test_definitions/client/__pycache__/validate.cpython-312.pyc +0 -0
- cactus_test_definitions/client/actions.py +98 -0
- cactus_test_definitions/client/checks.py +127 -0
- cactus_test_definitions/client/events.py +71 -0
- cactus_test_definitions/client/procedures/ALL-01.yaml +94 -0
- cactus_test_definitions/client/procedures/ALL-02.yaml +113 -0
- cactus_test_definitions/client/procedures/ALL-03-REJ.yaml +69 -0
- cactus_test_definitions/client/procedures/ALL-03.yaml +110 -0
- cactus_test_definitions/client/procedures/ALL-04.yaml +69 -0
- cactus_test_definitions/client/procedures/ALL-05.yaml +117 -0
- cactus_test_definitions/client/procedures/ALL-06.yaml +128 -0
- cactus_test_definitions/client/procedures/ALL-07.yaml +76 -0
- cactus_test_definitions/client/procedures/ALL-08.yaml +78 -0
- cactus_test_definitions/client/procedures/ALL-09.yaml +111 -0
- cactus_test_definitions/client/procedures/ALL-10.yaml +128 -0
- cactus_test_definitions/client/procedures/ALL-11.yaml +111 -0
- cactus_test_definitions/client/procedures/ALL-12.yaml +108 -0
- cactus_test_definitions/client/procedures/ALL-13.yaml +112 -0
- cactus_test_definitions/client/procedures/ALL-14.yaml +165 -0
- cactus_test_definitions/client/procedures/ALL-15.yaml +109 -0
- cactus_test_definitions/client/procedures/ALL-16.yaml +102 -0
- cactus_test_definitions/client/procedures/ALL-17.yaml +63 -0
- cactus_test_definitions/client/procedures/ALL-18.yaml +288 -0
- cactus_test_definitions/client/procedures/ALL-19.yaml +78 -0
- cactus_test_definitions/client/procedures/ALL-20.yaml +136 -0
- cactus_test_definitions/client/procedures/ALL-21.yaml +203 -0
- cactus_test_definitions/client/procedures/ALL-22.yaml +82 -0
- cactus_test_definitions/client/procedures/ALL-23.yaml +158 -0
- cactus_test_definitions/client/procedures/ALL-24.yaml +132 -0
- cactus_test_definitions/client/procedures/ALL-25-EXT.yaml +228 -0
- cactus_test_definitions/client/procedures/ALL-25.yaml +136 -0
- cactus_test_definitions/client/procedures/ALL-26.yaml +147 -0
- cactus_test_definitions/client/procedures/ALL-27.yaml +144 -0
- cactus_test_definitions/client/procedures/ALL-28.yaml +274 -0
- cactus_test_definitions/client/procedures/ALL-29.yaml +87 -0
- cactus_test_definitions/client/procedures/ALL-30.yaml +188 -0
- cactus_test_definitions/client/procedures/BES-01.yaml +136 -0
- cactus_test_definitions/client/procedures/BES-02.yaml +137 -0
- cactus_test_definitions/client/procedures/BES-03.yaml +135 -0
- cactus_test_definitions/client/procedures/BES-04.yaml +228 -0
- cactus_test_definitions/client/procedures/DRA-01.yaml +54 -0
- cactus_test_definitions/client/procedures/DRA-02.yaml +64 -0
- cactus_test_definitions/client/procedures/DRD-01.yaml +667 -0
- cactus_test_definitions/client/procedures/DRL-01.yaml +327 -0
- cactus_test_definitions/client/procedures/GEN-01.yaml +73 -0
- cactus_test_definitions/client/procedures/GEN-02.yaml +72 -0
- cactus_test_definitions/client/procedures/GEN-03.yaml +160 -0
- cactus_test_definitions/client/procedures/GEN-04.yaml +161 -0
- cactus_test_definitions/client/procedures/GEN-05.yaml +89 -0
- cactus_test_definitions/client/procedures/GEN-06.yaml +90 -0
- cactus_test_definitions/client/procedures/GEN-07.yaml +145 -0
- cactus_test_definitions/client/procedures/GEN-08.yaml +145 -0
- cactus_test_definitions/client/procedures/GEN-09.yaml +117 -0
- cactus_test_definitions/client/procedures/GEN-10.yaml +739 -0
- cactus_test_definitions/client/procedures/GEN-11.yaml +378 -0
- cactus_test_definitions/client/procedures/GEN-12.yaml +378 -0
- cactus_test_definitions/client/procedures/GEN-13.yaml +70 -0
- cactus_test_definitions/client/procedures/LOA-01.yaml +73 -0
- cactus_test_definitions/client/procedures/LOA-02.yaml +73 -0
- cactus_test_definitions/client/procedures/LOA-03.yaml +160 -0
- cactus_test_definitions/client/procedures/LOA-04.yaml +161 -0
- cactus_test_definitions/client/procedures/LOA-05.yaml +89 -0
- cactus_test_definitions/client/procedures/LOA-06.yaml +89 -0
- cactus_test_definitions/client/procedures/LOA-07.yaml +145 -0
- cactus_test_definitions/client/procedures/LOA-08.yaml +145 -0
- cactus_test_definitions/client/procedures/LOA-09.yaml +117 -0
- cactus_test_definitions/client/procedures/LOA-10.yaml +741 -0
- cactus_test_definitions/client/procedures/LOA-11.yaml +378 -0
- cactus_test_definitions/client/procedures/LOA-12.yaml +378 -0
- cactus_test_definitions/client/procedures/LOA-13.yaml +71 -0
- cactus_test_definitions/client/procedures/MUL-01.yaml +92 -0
- cactus_test_definitions/client/procedures/MUL-02.yaml +80 -0
- cactus_test_definitions/client/procedures/MUL-03.yaml +74 -0
- cactus_test_definitions/client/test_procedures.py +185 -0
- cactus_test_definitions/client/validate.py +98 -0
- cactus_test_definitions/csipaus.py +81 -0
- cactus_test_definitions/errors.py +15 -0
- cactus_test_definitions/parameters.py +153 -0
- cactus_test_definitions/py.typed +0 -0
- cactus_test_definitions/schema.py +22 -0
- cactus_test_definitions/server/README.md +170 -0
- cactus_test_definitions/server/__init__.py +23 -0
- cactus_test_definitions/server/__pycache__/__init__.cpython-312.pyc +0 -0
- cactus_test_definitions/server/__pycache__/actions.cpython-312.pyc +0 -0
- cactus_test_definitions/server/__pycache__/checks.cpython-312.pyc +0 -0
- cactus_test_definitions/server/__pycache__/test_procedures.cpython-312-pytest-8.3.5.pyc +0 -0
- cactus_test_definitions/server/__pycache__/validate.cpython-312.pyc +0 -0
- cactus_test_definitions/server/actions.py +139 -0
- cactus_test_definitions/server/checks.py +117 -0
- cactus_test_definitions/server/procedures/S-ALL-01.yaml +42 -0
- cactus_test_definitions/server/procedures/S-ALL-02.yaml +65 -0
- cactus_test_definitions/server/procedures/S-ALL-03.yaml +65 -0
- cactus_test_definitions/server/procedures/S-ALL-04.yaml +137 -0
- cactus_test_definitions/server/procedures/S-ALL-05.yaml +111 -0
- cactus_test_definitions/server/procedures/S-OPT-01.yaml +42 -0
- cactus_test_definitions/server/procedures/S-OPT-02.yaml +40 -0
- cactus_test_definitions/server/procedures/S-OPT-03.yaml +44 -0
- cactus_test_definitions/server/procedures/S-OPT-04.yaml +32 -0
- cactus_test_definitions/server/test_procedures.py +122 -0
- cactus_test_definitions/server/validate.py +30 -0
- cactus_test_definitions/variable_expressions.py +419 -0
- cactus_test_definitions-1.6.0.dist-info/METADATA +289 -0
- cactus_test_definitions-1.6.0.dist-info/RECORD +139 -0
- cactus_test_definitions-1.6.0.dist-info/WHEEL +5 -0
- cactus_test_definitions-1.6.0.dist-info/licenses/LICENSE.txt +22 -0
- cactus_test_definitions-1.6.0.dist-info/top_level.txt +2 -0
- tests/__init__.py +0 -0
- tests/unit/__init__.py +0 -0
- tests/unit/client/__init__.py +0 -0
- tests/unit/client/test_actions.py +72 -0
- tests/unit/client/test_checks.py +71 -0
- tests/unit/client/test_events.py +36 -0
- tests/unit/client/test_test_procedures.py +103 -0
- tests/unit/client/test_validate.py +153 -0
- tests/unit/server/__init__.py +0 -0
- tests/unit/server/test_test_procedures.py +60 -0
- tests/unit/server/test_validate.py +62 -0
- tests/unit/test_csipaus.py +49 -0
- tests/unit/test_parameters.py +197 -0
- tests/unit/test_variable_expressions.py +402 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
Description: Subscribe
|
|
2
|
+
Category: Control
|
|
3
|
+
Classes:
|
|
4
|
+
- S
|
|
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: all-notifications-transmitted
|
|
15
|
+
parameters: {}
|
|
16
|
+
|
|
17
|
+
Preconditions:
|
|
18
|
+
immediate_start: true # There will be no "init" phase - all interactions will be immediately logged against the test
|
|
19
|
+
init_actions:
|
|
20
|
+
- type: set-comms-rate
|
|
21
|
+
parameters:
|
|
22
|
+
dcap_poll_seconds: 60
|
|
23
|
+
edev_list_poll_seconds: 60
|
|
24
|
+
fsa_list_poll_seconds: 60
|
|
25
|
+
der_list_poll_seconds: 60
|
|
26
|
+
derp_list_poll_seconds: 60
|
|
27
|
+
mup_post_seconds: 60
|
|
28
|
+
|
|
29
|
+
actions:
|
|
30
|
+
- type: create-der-program
|
|
31
|
+
parameters:
|
|
32
|
+
primacy: 0
|
|
33
|
+
# Start by enabling everything at the beginning as each step is (mostly) independent of the others
|
|
34
|
+
- type: enable-steps
|
|
35
|
+
parameters:
|
|
36
|
+
steps:
|
|
37
|
+
- POST-SUBSCRIPTION-FSAL
|
|
38
|
+
- POST-SUBSCRIPTION-DERP
|
|
39
|
+
- POST-SUBSCRIPTION-DERC
|
|
40
|
+
- POST-SUBSCRIPTION-DEFAULT-DERC
|
|
41
|
+
|
|
42
|
+
Steps:
|
|
43
|
+
|
|
44
|
+
# (a, b, c, d, e, f)
|
|
45
|
+
# Wait for a subscription to EndDeviceList and then update the active EndDevice's postRate to trigger a notification
|
|
46
|
+
POST-SUBSCRIPTION-EDEV:
|
|
47
|
+
instructions:
|
|
48
|
+
- Trigger an EndDeviceList subscription request from the aggregator client system (this can be an automated response to completing the Discovery process).
|
|
49
|
+
event:
|
|
50
|
+
type: POST-request-received
|
|
51
|
+
parameters:
|
|
52
|
+
endpoint: /edev/0/sub
|
|
53
|
+
serve_request_first: true
|
|
54
|
+
checks:
|
|
55
|
+
- type: subscription-contents
|
|
56
|
+
parameters:
|
|
57
|
+
subscribed_resource: /edev
|
|
58
|
+
actions:
|
|
59
|
+
# Trigger notification
|
|
60
|
+
- type: set-comms-rate
|
|
61
|
+
parameters:
|
|
62
|
+
edev_post_seconds: 30
|
|
63
|
+
- type: remove-steps
|
|
64
|
+
parameters:
|
|
65
|
+
steps:
|
|
66
|
+
- POST-SUBSCRIPTION-EDEV
|
|
67
|
+
|
|
68
|
+
# (g, h, i, j, k, l)
|
|
69
|
+
# Wait for a subscription to FunctionSetAssignmentList and then update the active fsa list to trigger a notification
|
|
70
|
+
POST-SUBSCRIPTION-FSAL:
|
|
71
|
+
instructions:
|
|
72
|
+
- Trigger a FunctionSetAssignmentsList subscription request from the aggregator client system.
|
|
73
|
+
event:
|
|
74
|
+
type: POST-request-received
|
|
75
|
+
parameters:
|
|
76
|
+
endpoint: /edev/0/sub
|
|
77
|
+
serve_request_first: true
|
|
78
|
+
checks:
|
|
79
|
+
- type: subscription-contents
|
|
80
|
+
parameters:
|
|
81
|
+
subscribed_resource: /edev/1/fsa
|
|
82
|
+
actions:
|
|
83
|
+
# Trigger notification
|
|
84
|
+
- type: set-comms-rate
|
|
85
|
+
parameters:
|
|
86
|
+
fsa_list_poll_seconds: 30
|
|
87
|
+
- type: remove-steps
|
|
88
|
+
parameters:
|
|
89
|
+
steps:
|
|
90
|
+
- POST-SUBSCRIPTION-FSAL
|
|
91
|
+
|
|
92
|
+
# (m, n, o, p, q, r)
|
|
93
|
+
# Wait for a DERProgram subscription and then update the active DERProgram list to trigger a notification
|
|
94
|
+
POST-SUBSCRIPTION-DERP:
|
|
95
|
+
instructions:
|
|
96
|
+
- Trigger a DERProgramList subscription request from the aggregator client system.
|
|
97
|
+
event:
|
|
98
|
+
type: POST-request-received
|
|
99
|
+
parameters:
|
|
100
|
+
endpoint: /edev/0/sub
|
|
101
|
+
serve_request_first: true
|
|
102
|
+
checks:
|
|
103
|
+
- type: subscription-contents
|
|
104
|
+
parameters:
|
|
105
|
+
subscribed_resource: /edev/1/fsa/1/derp
|
|
106
|
+
actions:
|
|
107
|
+
# Trigger notification
|
|
108
|
+
- type: create-der-program
|
|
109
|
+
parameters:
|
|
110
|
+
primacy: 99
|
|
111
|
+
- type: remove-steps
|
|
112
|
+
parameters:
|
|
113
|
+
steps:
|
|
114
|
+
- POST-SUBSCRIPTION-DERP
|
|
115
|
+
|
|
116
|
+
# (s, t, u, v, w, x)
|
|
117
|
+
# Wait for a subscription to /edev/1/derp/1/derc and then create a DERControl to trigger a notification
|
|
118
|
+
POST-SUBSCRIPTION-DERC:
|
|
119
|
+
instructions:
|
|
120
|
+
- Trigger a DERControlList subscription request from the aggregator client system.
|
|
121
|
+
event:
|
|
122
|
+
type: POST-request-received
|
|
123
|
+
parameters:
|
|
124
|
+
endpoint: /edev/0/sub
|
|
125
|
+
serve_request_first: true
|
|
126
|
+
checks:
|
|
127
|
+
- type: subscription-contents
|
|
128
|
+
parameters:
|
|
129
|
+
subscribed_resource: /edev/1/derp/1/derc
|
|
130
|
+
actions:
|
|
131
|
+
# Trigger notification
|
|
132
|
+
- type: create-der-control
|
|
133
|
+
parameters:
|
|
134
|
+
start: $(now)
|
|
135
|
+
duration_seconds: 600
|
|
136
|
+
primacy: 0
|
|
137
|
+
opModExpLimW: 0
|
|
138
|
+
- type: remove-steps
|
|
139
|
+
parameters:
|
|
140
|
+
steps:
|
|
141
|
+
- POST-SUBSCRIPTION-DERC
|
|
142
|
+
|
|
143
|
+
# (y, z, aa, bb, cc)
|
|
144
|
+
# Wait for a subscription to /edev/1/derp/1/dderc and then update the DefaultDERControl to trigger a notification
|
|
145
|
+
POST-SUBSCRIPTION-DEFAULT-DERC:
|
|
146
|
+
instructions:
|
|
147
|
+
- Trigger a DefaultDERControl subscription request from the aggregator client system.
|
|
148
|
+
event:
|
|
149
|
+
type: POST-request-received
|
|
150
|
+
parameters:
|
|
151
|
+
endpoint: /edev/0/sub
|
|
152
|
+
serve_request_first: true
|
|
153
|
+
checks:
|
|
154
|
+
- type: subscription-contents
|
|
155
|
+
parameters:
|
|
156
|
+
subscribed_resource: /edev/1/derp/1/dderc
|
|
157
|
+
actions:
|
|
158
|
+
# Trigger notification
|
|
159
|
+
- type: set-default-der-control
|
|
160
|
+
parameters:
|
|
161
|
+
opModImpLimW: 1234
|
|
162
|
+
- type: remove-steps
|
|
163
|
+
parameters:
|
|
164
|
+
steps:
|
|
165
|
+
- POST-SUBSCRIPTION-DEFAULT-DERC
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
Description: Active Controls – Energize/de-energize
|
|
2
|
+
Category: Control
|
|
3
|
+
Classes:
|
|
4
|
+
# Note - A is explicitly omitted, this test is ONLY for subscription clients
|
|
5
|
+
- S
|
|
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: all-notifications-transmitted
|
|
16
|
+
parameters: {}
|
|
17
|
+
|
|
18
|
+
Preconditions:
|
|
19
|
+
init_actions:
|
|
20
|
+
- type: set-comms-rate
|
|
21
|
+
parameters:
|
|
22
|
+
dcap_poll_seconds: 60
|
|
23
|
+
edev_list_poll_seconds: 60
|
|
24
|
+
fsa_list_poll_seconds: 60
|
|
25
|
+
der_list_poll_seconds: 900 # Set this to a large value - testing they respond due to notification - not polling
|
|
26
|
+
derp_list_poll_seconds: 900 # Set this to a large value - testing they respond due to notification - not polling
|
|
27
|
+
mup_post_seconds: 60
|
|
28
|
+
- type: create-der-program
|
|
29
|
+
parameters:
|
|
30
|
+
primacy: 0
|
|
31
|
+
|
|
32
|
+
checks:
|
|
33
|
+
- type: end-device-contents
|
|
34
|
+
parameters: {}
|
|
35
|
+
- type: subscription-contents
|
|
36
|
+
parameters:
|
|
37
|
+
subscribed_resource: /edev/1/derp/1/derc
|
|
38
|
+
|
|
39
|
+
actions:
|
|
40
|
+
- type: create-der-control
|
|
41
|
+
parameters:
|
|
42
|
+
start: $(now)
|
|
43
|
+
duration_seconds: 300
|
|
44
|
+
opModEnergize: false
|
|
45
|
+
instructions:
|
|
46
|
+
- EndDevice should be registered with active subscriptions before starting.
|
|
47
|
+
- DER shall be generating or consuming at least 50% of its active power rating.
|
|
48
|
+
|
|
49
|
+
Steps:
|
|
50
|
+
|
|
51
|
+
# (c, d)
|
|
52
|
+
PUT-DERSTATUS-DEENERGIZE:
|
|
53
|
+
event:
|
|
54
|
+
type: PUT-request-received
|
|
55
|
+
parameters:
|
|
56
|
+
endpoint: /edev/1/der/1/ders
|
|
57
|
+
serve_request_first: true # Run this AFTER server receives the request
|
|
58
|
+
# Only trigger this if the server has an updated DERStatus
|
|
59
|
+
checks:
|
|
60
|
+
- type: der-status-contents
|
|
61
|
+
parameters:
|
|
62
|
+
genConnectStatus_bit2: false
|
|
63
|
+
actions:
|
|
64
|
+
- type: enable-steps
|
|
65
|
+
parameters:
|
|
66
|
+
steps:
|
|
67
|
+
- PUT-DERSTATUS-ENERGIZE
|
|
68
|
+
- WAIT-TEST-END
|
|
69
|
+
- type: create-der-control
|
|
70
|
+
parameters:
|
|
71
|
+
start: $(now)
|
|
72
|
+
duration_seconds: 600
|
|
73
|
+
opModEnergize: true
|
|
74
|
+
- type: remove-steps
|
|
75
|
+
parameters:
|
|
76
|
+
steps:
|
|
77
|
+
- PUT-DERSTATUS-DEENERGIZE
|
|
78
|
+
|
|
79
|
+
# (f)
|
|
80
|
+
PUT-DERSTATUS-ENERGIZE:
|
|
81
|
+
event:
|
|
82
|
+
type: PUT-request-received
|
|
83
|
+
parameters:
|
|
84
|
+
endpoint: /edev/1/der/1/ders
|
|
85
|
+
serve_request_first: true # Run this AFTER server receives the request
|
|
86
|
+
# Only trigger this if the server has an updated DERStatus
|
|
87
|
+
checks:
|
|
88
|
+
- type: der-status-contents
|
|
89
|
+
parameters:
|
|
90
|
+
genConnectStatus_bit2: true
|
|
91
|
+
actions:
|
|
92
|
+
- type: remove-steps
|
|
93
|
+
parameters:
|
|
94
|
+
steps:
|
|
95
|
+
- PUT-DERSTATUS-ENERGIZE
|
|
96
|
+
|
|
97
|
+
# (e) We give the client a short period to respond with a re-energize
|
|
98
|
+
WAIT-TEST-END:
|
|
99
|
+
event:
|
|
100
|
+
type: wait
|
|
101
|
+
parameters:
|
|
102
|
+
duration_seconds: 180
|
|
103
|
+
actions:
|
|
104
|
+
- type: remove-steps
|
|
105
|
+
parameters:
|
|
106
|
+
steps:
|
|
107
|
+
- WAIT-TEST-END
|
|
108
|
+
- type: finish-test
|
|
109
|
+
parameters: {}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
Description: Active Controls – Disconnect
|
|
2
|
+
Category: Control
|
|
3
|
+
Classes:
|
|
4
|
+
# Note - A is explicitly omitted, this test is ONLY for subscription clients
|
|
5
|
+
- S
|
|
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: all-notifications-transmitted
|
|
16
|
+
parameters: {}
|
|
17
|
+
|
|
18
|
+
Preconditions:
|
|
19
|
+
init_actions:
|
|
20
|
+
- type: set-comms-rate
|
|
21
|
+
parameters:
|
|
22
|
+
dcap_poll_seconds: 60
|
|
23
|
+
edev_list_poll_seconds: 60
|
|
24
|
+
fsa_list_poll_seconds: 60
|
|
25
|
+
der_list_poll_seconds: 900 # Set this to a large value - testing they respond due to notification - not polling
|
|
26
|
+
derp_list_poll_seconds: 900 # Set this to a large value - testing they respond due to notification - not polling
|
|
27
|
+
mup_post_seconds: 60
|
|
28
|
+
checks:
|
|
29
|
+
- type: end-device-contents
|
|
30
|
+
parameters: {}
|
|
31
|
+
actions:
|
|
32
|
+
# (a, b)
|
|
33
|
+
- type: create-der-control
|
|
34
|
+
parameters:
|
|
35
|
+
start: $(now)
|
|
36
|
+
duration_seconds: 300
|
|
37
|
+
opModConnect: false
|
|
38
|
+
instructions:
|
|
39
|
+
- EndDevice should be registered with active subscriptions before starting.
|
|
40
|
+
- DER shall be generating or consuming at least 50% of its active power rating.
|
|
41
|
+
|
|
42
|
+
Steps:
|
|
43
|
+
|
|
44
|
+
# (c, d)
|
|
45
|
+
PUT-DERSTATUS-DISCONNECT:
|
|
46
|
+
event:
|
|
47
|
+
type: PUT-request-received
|
|
48
|
+
parameters:
|
|
49
|
+
endpoint: /edev/1/der/1/ders
|
|
50
|
+
serve_request_first: true # Run this AFTER server receives the request
|
|
51
|
+
# Only trigger this if the server has an updated DERStatus
|
|
52
|
+
checks:
|
|
53
|
+
- type: der-status-contents
|
|
54
|
+
parameters:
|
|
55
|
+
genConnectStatus_bit0: false
|
|
56
|
+
actions:
|
|
57
|
+
- type: enable-steps
|
|
58
|
+
parameters:
|
|
59
|
+
steps:
|
|
60
|
+
- PUT-DERSTATUS-CONNECT
|
|
61
|
+
- WAIT-TEST-END
|
|
62
|
+
- type: create-der-control
|
|
63
|
+
parameters:
|
|
64
|
+
start: $(now)
|
|
65
|
+
duration_seconds: 600
|
|
66
|
+
opModConnect: true
|
|
67
|
+
- type: remove-steps
|
|
68
|
+
parameters:
|
|
69
|
+
steps:
|
|
70
|
+
- PUT-DERSTATUS-DISCONNECT
|
|
71
|
+
|
|
72
|
+
# (f)
|
|
73
|
+
PUT-DERSTATUS-CONNECT:
|
|
74
|
+
event:
|
|
75
|
+
type: PUT-request-received
|
|
76
|
+
parameters:
|
|
77
|
+
endpoint: /edev/1/der/1/ders
|
|
78
|
+
serve_request_first: true # Run this AFTER server receives the request
|
|
79
|
+
# Only trigger this if the server has an updated DERStatus
|
|
80
|
+
checks:
|
|
81
|
+
- type: der-status-contents
|
|
82
|
+
parameters:
|
|
83
|
+
genConnectStatus_bit0: true
|
|
84
|
+
actions:
|
|
85
|
+
- type: remove-steps
|
|
86
|
+
parameters:
|
|
87
|
+
steps:
|
|
88
|
+
- PUT-DERSTATUS-CONNECT
|
|
89
|
+
|
|
90
|
+
# (e) We give the client a short period to respond with a reconnect
|
|
91
|
+
WAIT-TEST-END:
|
|
92
|
+
event:
|
|
93
|
+
type: wait
|
|
94
|
+
parameters:
|
|
95
|
+
duration_seconds: 180
|
|
96
|
+
actions:
|
|
97
|
+
- type: remove-steps
|
|
98
|
+
parameters:
|
|
99
|
+
steps:
|
|
100
|
+
- WAIT-TEST-END
|
|
101
|
+
- type: finish-test
|
|
102
|
+
parameters: {}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
Description: Default Controls – Ramp Rate
|
|
2
|
+
Category: Control
|
|
3
|
+
Classes:
|
|
4
|
+
# Note - A is explicitly omitted, this test is ONLY for subscription clients
|
|
5
|
+
- S
|
|
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: all-notifications-transmitted
|
|
16
|
+
parameters: {}
|
|
17
|
+
|
|
18
|
+
Preconditions:
|
|
19
|
+
init_actions:
|
|
20
|
+
- type: set-comms-rate
|
|
21
|
+
parameters:
|
|
22
|
+
dcap_poll_seconds: 60
|
|
23
|
+
edev_list_poll_seconds: 60
|
|
24
|
+
fsa_list_poll_seconds: 60
|
|
25
|
+
der_list_poll_seconds: 900 # Set this to a large value - testing they respond due to notification - not polling
|
|
26
|
+
derp_list_poll_seconds: 900 # Set this to a large value - testing they respond due to notification - not polling
|
|
27
|
+
mup_post_seconds: 60
|
|
28
|
+
- type: create-der-program
|
|
29
|
+
parameters:
|
|
30
|
+
primacy: 0
|
|
31
|
+
|
|
32
|
+
checks:
|
|
33
|
+
- type: end-device-contents
|
|
34
|
+
parameters: {}
|
|
35
|
+
- type: subscription-contents
|
|
36
|
+
parameters:
|
|
37
|
+
subscribed_resource: /edev/1/derp/1/dderc
|
|
38
|
+
|
|
39
|
+
actions:
|
|
40
|
+
# (a)
|
|
41
|
+
- type: set-default-der-control
|
|
42
|
+
parameters:
|
|
43
|
+
setGradW: 100 # hundredths of a percent - this is 1%
|
|
44
|
+
|
|
45
|
+
Steps:
|
|
46
|
+
|
|
47
|
+
# (b, c)
|
|
48
|
+
# This will wait until the client POST's a DERSettings with the 1% setGradW
|
|
49
|
+
PUT-DERSETTINGS-SET-GRAD-W:
|
|
50
|
+
event:
|
|
51
|
+
type: PUT-request-received
|
|
52
|
+
parameters:
|
|
53
|
+
endpoint: /edev/1/der/1/derg
|
|
54
|
+
serve_request_first: true # Run this AFTER server receives the request
|
|
55
|
+
checks:
|
|
56
|
+
- type: der-settings-contents
|
|
57
|
+
parameters:
|
|
58
|
+
setGradW: 100
|
|
59
|
+
actions:
|
|
60
|
+
- type: remove-steps
|
|
61
|
+
parameters:
|
|
62
|
+
steps:
|
|
63
|
+
- PUT-DERSETTINGS-SET-GRAD-W
|