Skip to content

Commit ef5040a

Browse files
authored
[MatterYamlTests] null values that are saved are not substituted when… (#29107)
* [MatterYamlTests] null values that are saved with saveAs are not substituted when the key used to saved them is used * Update darwin-framework-tool tests codegen * Add a new check in yaml_loader.py to ensure than the saveAs key is not the same as the attribute since this is a common mistake and it confuses the test suite that does not know if the attribute name should be replaced or not * Update various YAML files such that they do not save the result of a read attribute with the exact same name than the attribute itself
1 parent d8480f1 commit ef5040a

32 files changed

+850
-620
lines changed

scripts/py_matter_yamltests/matter_yamltests/errors.py

+12
Original file line numberDiff line numberDiff line change
@@ -210,3 +210,15 @@ def __init__(self, content):
210210
self.tag_key_with_error(content, 'command')
211211
arguments = content.get('arguments')
212212
self.tag_key_with_error(arguments, 'value')
213+
214+
215+
class TestStepSaveAsNameError(TestStepError):
216+
"""Raise when a test step response save an attribute response with the same name than the attribute itself"""
217+
218+
def __init__(self, content):
219+
message = 'The "saveAs" key can not be the same than the "attribute" key'
220+
super().__init__(message)
221+
222+
self.tag_key_with_error(content, 'attribute')
223+
response = content.get('response')
224+
self.tag_key_with_error(response, 'saveAs')

scripts/py_matter_yamltests/matter_yamltests/parser.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -1080,9 +1080,8 @@ def _config_variable_substitution(self, value):
10801080
variable_info = self._runtime_config_variable_storage[token]
10811081
if type(variable_info) is dict and 'defaultValue' in variable_info:
10821082
variable_info = variable_info['defaultValue']
1083-
if variable_info is not None:
1084-
tokens[idx] = variable_info
1085-
substitution_occured = True
1083+
tokens[idx] = variable_info
1084+
substitution_occured = True
10861085

10871086
if len(tokens) == 1:
10881087
return tokens[0]

scripts/py_matter_yamltests/matter_yamltests/yaml_loader.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717

1818
from .errors import (TestStepArgumentsValueError, TestStepError, TestStepGroupEndPointError, TestStepGroupResponseError,
1919
TestStepInvalidTypeError, TestStepKeyError, TestStepNodeIdAndGroupIdError, TestStepResponseVariableError,
20-
TestStepValueAndValuesError, TestStepVerificationStandaloneError, TestStepWaitResponseError)
20+
TestStepSaveAsNameError, TestStepValueAndValuesError, TestStepVerificationStandaloneError,
21+
TestStepWaitResponseError)
2122
from .fixes import add_yaml_support_for_scientific_notation_without_dot
2223

2324
try:
@@ -123,6 +124,7 @@ def __check_test_step(self, config: dict, content):
123124
self.__rule_wait_should_not_expect_a_response(content)
124125
self.__rule_response_variable_should_exist_in_config(config, content)
125126
self.__rule_argument_value_is_only_when_writing_attributes(content)
127+
self.__rule_saveas_name_and_attribute_name_should_be_different(content)
126128

127129
if 'arguments' in content:
128130
arguments = content.get('arguments')
@@ -272,3 +274,11 @@ def __rule_argument_value_is_only_when_writing_attributes(self, content):
272274
arguments = content.get('arguments')
273275
if 'value' in arguments and operation != 'writeAttribute':
274276
raise TestStepArgumentsValueError(content)
277+
278+
def __rule_saveas_name_and_attribute_name_should_be_different(self, content):
279+
if content.get('command') == 'readAttribute' and 'response' in content:
280+
attribute_name = content.get('attribute')
281+
response = content.get('response')
282+
if 'saveAs' in response:
283+
if response.get('saveAs') == attribute_name:
284+
raise TestStepSaveAsNameError(content)

src/app/tests/suites/DL_Schedules.yaml

+31-31
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ tests:
5858
command: "readAttribute"
5959
attribute: "NumberOfTotalUsersSupported"
6060
response:
61-
saveAs: NumberOfTotalUsersSupported
61+
saveAs: NumberOfTotalUsersSupportedValue
6262
value: 10
6363

6464
- label:
@@ -67,7 +67,7 @@ tests:
6767
command: "readAttribute"
6868
attribute: "NumberOfWeekDaySchedulesSupportedPerUser"
6969
response:
70-
saveAs: NumberOfWeekDaySchedulesSupportedPerUser
70+
saveAs: NumberOfWeekDaySchedulesSupportedPerUserValue
7171
value: 10
7272

7373
- label:
@@ -76,14 +76,14 @@ tests:
7676
command: "readAttribute"
7777
attribute: "NumberOfYearDaySchedulesSupportedPerUser"
7878
response:
79-
saveAs: NumberOfYearDaySchedulesSupportedPerUser
79+
saveAs: NumberOfYearDaySchedulesSupportedPerUserValue
8080
value: 10
8181

8282
- label: "Get Max number of Holiday schedules and verify default value"
8383
command: "readAttribute"
8484
attribute: "NumberOfHolidaySchedulesSupported"
8585
response:
86-
saveAs: NumberOfHolidaySchedulesSupported
86+
saveAs: NumberOfHolidaySchedulesSupportedValue
8787
value: 10
8888

8989
#
@@ -115,7 +115,7 @@ tests:
115115
arguments:
116116
values:
117117
- name: "WeekDayIndex"
118-
value: NumberOfWeekDaySchedulesSupportedPerUser + 1
118+
value: NumberOfWeekDaySchedulesSupportedPerUserValue + 1
119119
- name: "UserIndex"
120120
value: 1
121121
- name: "DaysMask"
@@ -159,7 +159,7 @@ tests:
159159
- name: "WeekDayIndex"
160160
value: 1
161161
- name: "UserIndex"
162-
value: NumberOfTotalUsersSupported + 1
162+
value: NumberOfTotalUsersSupportedValue + 1
163163
- name: "DaysMask"
164164
value: 0x01
165165
- name: "StartHour"
@@ -427,13 +427,13 @@ tests:
427427
arguments:
428428
values:
429429
- name: "WeekDayIndex"
430-
value: NumberOfWeekDaySchedulesSupportedPerUser + 1
430+
value: NumberOfWeekDaySchedulesSupportedPerUserValue + 1
431431
- name: "UserIndex"
432432
value: 1
433433
response:
434434
values:
435435
- name: "WeekDayIndex"
436-
value: NumberOfWeekDaySchedulesSupportedPerUser + 1
436+
value: NumberOfWeekDaySchedulesSupportedPerUserValue + 1
437437
- name: "UserIndex"
438438
value: 1
439439
- name: "Status"
@@ -463,13 +463,13 @@ tests:
463463
- name: "WeekDayIndex"
464464
value: 1
465465
- name: "UserIndex"
466-
value: NumberOfTotalUsersSupported + 1
466+
value: NumberOfTotalUsersSupportedValue + 1
467467
response:
468468
values:
469469
- name: "WeekDayIndex"
470470
value: 1
471471
- name: "UserIndex"
472-
value: NumberOfTotalUsersSupported + 1
472+
value: NumberOfTotalUsersSupportedValue + 1
473473
- name: "Status"
474474
value: 0x85
475475

@@ -513,7 +513,7 @@ tests:
513513
arguments:
514514
values:
515515
- name: "YearDayIndex"
516-
value: NumberOfYearDaySchedulesSupportedPerUser + 1
516+
value: NumberOfYearDaySchedulesSupportedPerUserValue + 1
517517
- name: "UserIndex"
518518
value: 1
519519
- name: "LocalStartTime"
@@ -545,7 +545,7 @@ tests:
545545
- name: "YearDayIndex"
546546
value: 1
547547
- name: "UserIndex"
548-
value: NumberOfTotalUsersSupported + 1
548+
value: NumberOfTotalUsersSupportedValue + 1
549549
- name: "LocalStartTime"
550550
value: 12345
551551
- name: "LocalEndTime"
@@ -625,13 +625,13 @@ tests:
625625
arguments:
626626
values:
627627
- name: "YearDayIndex"
628-
value: NumberOfYearDaySchedulesSupportedPerUser + 1
628+
value: NumberOfYearDaySchedulesSupportedPerUserValue + 1
629629
- name: "UserIndex"
630630
value: 1
631631
response:
632632
values:
633633
- name: "YearDayIndex"
634-
value: NumberOfYearDaySchedulesSupportedPerUser + 1
634+
value: NumberOfYearDaySchedulesSupportedPerUserValue + 1
635635
- name: "UserIndex"
636636
value: 1
637637
- name: "Status"
@@ -661,13 +661,13 @@ tests:
661661
- name: "YearDayIndex"
662662
value: 1
663663
- name: "UserIndex"
664-
value: NumberOfTotalUsersSupported + 1
664+
value: NumberOfTotalUsersSupportedValue + 1
665665
response:
666666
values:
667667
- name: "YearDayIndex"
668668
value: 1
669669
- name: "UserIndex"
670-
value: NumberOfTotalUsersSupported + 1
670+
value: NumberOfTotalUsersSupportedValue + 1
671671
- name: "Status"
672672
value: 0x85
673673

@@ -711,7 +711,7 @@ tests:
711711
arguments:
712712
values:
713713
- name: "HolidayIndex"
714-
value: NumberOfHolidaySchedulesSupported + 1
714+
value: NumberOfHolidaySchedulesSupportedValue + 1
715715
- name: "LocalStartTime"
716716
value: 12345
717717
- name: "LocalEndTime"
@@ -785,11 +785,11 @@ tests:
785785
arguments:
786786
values:
787787
- name: "HolidayIndex"
788-
value: NumberOfHolidaySchedulesSupported + 1
788+
value: NumberOfHolidaySchedulesSupportedValue + 1
789789
response:
790790
values:
791791
- name: "HolidayIndex"
792-
value: NumberOfHolidaySchedulesSupported + 1
792+
value: NumberOfHolidaySchedulesSupportedValue + 1
793793
- name: "Status"
794794
value: 0x85
795795

@@ -925,7 +925,7 @@ tests:
925925
arguments:
926926
values:
927927
- name: "WeekDayIndex"
928-
value: NumberOfWeekDaySchedulesSupportedPerUser + 1
928+
value: NumberOfWeekDaySchedulesSupportedPerUserValue + 1
929929
- name: "UserIndex"
930930
value: 1
931931
response:
@@ -949,7 +949,7 @@ tests:
949949
- name: "WeekDayIndex"
950950
value: 1
951951
- name: "UserIndex"
952-
value: NumberOfTotalUsersSupported + 1
952+
value: NumberOfTotalUsersSupportedValue + 1
953953
response:
954954
error: INVALID_COMMAND
955955

@@ -1050,7 +1050,7 @@ tests:
10501050
arguments:
10511051
values:
10521052
- name: "YearDayIndex"
1053-
value: NumberOfYearDaySchedulesSupportedPerUser + 1
1053+
value: NumberOfYearDaySchedulesSupportedPerUserValue + 1
10541054
- name: "UserIndex"
10551055
value: 1
10561056
response:
@@ -1074,7 +1074,7 @@ tests:
10741074
- name: "YearDayIndex"
10751075
value: 1
10761076
- name: "UserIndex"
1077-
value: NumberOfTotalUsersSupported + 1
1077+
value: NumberOfTotalUsersSupportedValue + 1
10781078
response:
10791079
error: INVALID_COMMAND
10801080

@@ -1171,7 +1171,7 @@ tests:
11711171
arguments:
11721172
values:
11731173
- name: "HolidayIndex"
1174-
value: NumberOfYearDaySchedulesSupportedPerUser + 1
1174+
value: NumberOfYearDaySchedulesSupportedPerUserValue + 1
11751175
response:
11761176
error: INVALID_COMMAND
11771177

@@ -1896,7 +1896,7 @@ tests:
18961896
arguments:
18971897
values:
18981898
- name: "HolidayIndex"
1899-
value: NumberOfHolidaySchedulesSupported
1899+
value: NumberOfHolidaySchedulesSupportedValue
19001900
- name: "LocalStartTime"
19011901
value: 1
19021902
- name: "LocalEndTime"
@@ -1909,11 +1909,11 @@ tests:
19091909
arguments:
19101910
values:
19111911
- name: "HolidayIndex"
1912-
value: NumberOfHolidaySchedulesSupported
1912+
value: NumberOfHolidaySchedulesSupportedValue
19131913
response:
19141914
values:
19151915
- name: "HolidayIndex"
1916-
value: NumberOfHolidaySchedulesSupported
1916+
value: NumberOfHolidaySchedulesSupportedValue
19171917
- name: "Status"
19181918
value: 0x0
19191919
- name: "LocalStartTime"
@@ -2027,11 +2027,11 @@ tests:
20272027
arguments:
20282028
values:
20292029
- name: "HolidayIndex"
2030-
value: NumberOfHolidaySchedulesSupported
2030+
value: NumberOfHolidaySchedulesSupportedValue
20312031
response:
20322032
values:
20332033
- name: "HolidayIndex"
2034-
value: NumberOfHolidaySchedulesSupported
2034+
value: NumberOfHolidaySchedulesSupportedValue
20352035
- name: "Status"
20362036
value: 0x0
20372037
- name: "LocalStartTime"
@@ -2129,11 +2129,11 @@ tests:
21292129
arguments:
21302130
values:
21312131
- name: "HolidayIndex"
2132-
value: NumberOfHolidaySchedulesSupported
2132+
value: NumberOfHolidaySchedulesSupportedValue
21332133
response:
21342134
values:
21352135
- name: "HolidayIndex"
2136-
value: NumberOfHolidaySchedulesSupported
2136+
value: NumberOfHolidaySchedulesSupportedValue
21372137
- name: "Status"
21382138
value: 0x8B
21392139

0 commit comments

Comments
 (0)