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,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