Skip to content

Commit 6e404bd

Browse files
committed
Add some GET tests for TEST_DATA
1 parent 22dbe7b commit 6e404bd

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

tools/rdm/TestDefinitions.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
RDM_MAX_DOMAIN_NAME_LENGTH,
3030
RDM_MAX_HOSTNAME_LENGTH,
3131
RDM_MAX_SERIAL_NUMBER_LENGTH,
32+
RDM_MAX_STRING_LENGTH,
3233
RDM_MAX_TEST_DATA_PATTERN_LENGTH,
3334
RDM_MIN_HOSTNAME_LENGTH,
3435
RDM_ZERO_FOOTPRINT_DMX_ADDRESS)
@@ -8151,6 +8152,37 @@ class AllSubDevicesGetTestData(TestMixins.AllSubDevicesGetMixin,
81518152
DATA = [1]
81528153

81538154

8155+
class GetTestDataPatternLengthZero(TestMixins.GetTestDataMixin,
8156+
OptionalParameterTestFixture):
8157+
"""GET TEST_DATA with a pattern length of 0."""
8158+
PATTERN_LENGTH = 0
8159+
8160+
8161+
class GetTestDataPatternLengthOne(TestMixins.GetTestDataMixin,
8162+
OptionalParameterTestFixture):
8163+
"""GET TEST_DATA with a pattern length of 1."""
8164+
PATTERN_LENGTH = 1
8165+
8166+
8167+
class GetTestDataPatternLengthMaxStringLength(TestMixins.GetTestDataMixin,
8168+
OptionalParameterTestFixture):
8169+
"""GET TEST_DATA with a pattern length of the max string length."""
8170+
PATTERN_LENGTH = RDM_MAX_STRING_LENGTH
8171+
8172+
8173+
class GetTestDataPatternLengthMaxPDL(TestMixins.GetTestDataMixin,
8174+
OptionalParameterTestFixture):
8175+
"""GET TEST_DATA with a pattern length of the max PDL."""
8176+
# TODO(Peter): Make this a constant
8177+
PATTERN_LENGTH = 231
8178+
8179+
8180+
class GetTestDataPatternLengthMaxPatternLength(TestMixins.GetTestDataMixin,
8181+
OptionalParameterTestFixture):
8182+
"""GET TEST_DATA with a pattern length of the max pattern length."""
8183+
PATTERN_LENGTH = RDM_MAX_TEST_DATA_PATTERN_LENGTH
8184+
8185+
81548186
class GetTestDataWithNoData(TestMixins.GetWithNoDataMixin,
81558187
OptionalParameterTestFixture):
81568188
"""GET TEST_DATA with no argument given."""

tools/rdm/TestMixins.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,33 @@ def VerifyResult(self, response, fields):
241241
url_field))
242242

243243

244+
class GetTestDataMixin(ResponderTestFixture):
245+
"""GET TEST_DATA PID with a given pattern length.
246+
247+
If ALLOWED_NACKS is non-empty, this adds a custom NackGetResult to the list
248+
of allowed results for each entry.
249+
"""
250+
PID = 'TEST_DATA'
251+
CATEGORY = TestCategory.NETWORK_MANAGEMENT
252+
PATTERN_LENGTH = 1
253+
ALLOWED_NACKS = []
254+
EXPECTED_FIELDS = ['pattern_data']
255+
256+
def Test(self):
257+
expected_value = []
258+
for i in range(0, self.PATTERN_LENGTH):
259+
expected_value.append({'data': (i % (255 + 1))})
260+
results = [
261+
self.AckGetResult(
262+
field_names=self.EXPECTED_FIELDS,
263+
field_values={self.EXPECTED_FIELDS[0]: expected_value})
264+
]
265+
for nack in self.ALLOWED_NACKS:
266+
results.append(self.NackGetResult(nack))
267+
self.AddIfGetSupported(results)
268+
self.SendGet(PidStore.ROOT_DEVICE, self.pid, [self.PATTERN_LENGTH])
269+
270+
244271
class GetRequiredMixin(ResponderTestFixture):
245272
"""GET Mixin for a required PID. Verify EXPECTED_FIELDS is in the response.
246273

0 commit comments

Comments
 (0)