Skip to content

Commit

Permalink
Merge branch 'main' into 32bit-port
Browse files Browse the repository at this point in the history
  • Loading branch information
graebm authored Jan 2, 2024
2 parents ad5ab0d + 885b976 commit 23549be
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 59 deletions.
44 changes: 26 additions & 18 deletions servicetests/test_cases/test_shadow_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,25 +80,33 @@ def main():
if test_result == 0:
print("Verifying that shadow was updated")
shadow_value = None
try:
if shadow_name:
thing_shadow = iot_data_client.get_thing_shadow(thingName=thing_name, shadowName=shadow_name)
else:
thing_shadow = iot_data_client.get_thing_shadow(thingName=thing_name)

payload = thing_shadow['payload'].read()
data = json.loads(payload)
shadow_value = data.get('state', {}).get('reported', {}).get(shadow_property, None)
if shadow_value != shadow_desired_value:
print(f"ERROR: Could not verify thing shadow: {shadow_property} is not set to desired value "
f"'{shadow_desired_value}'; shadow actual state: {data}")
i = 0
while i < 10:
try:
if shadow_name:
thing_shadow = iot_data_client.get_thing_shadow(thingName=thing_name, shadowName=shadow_name)
else:
thing_shadow = iot_data_client.get_thing_shadow(thingName=thing_name)

payload = thing_shadow['payload'].read()
data = json.loads(payload)
shadow_value = data.get('state', {}).get('reported', {}).get(shadow_property, None)
if shadow_value == shadow_desired_value:
test_result = 0
break
else:
print(f"ERROR: Could not verify thing shadow: {shadow_property} is not set to desired value "
f"'{shadow_desired_value}'; shadow actual state: {data}")
test_result = -1
except KeyError as e:
print(f"ERROR: Could not verify thing shadow: key {e} does not exist in shadow response: {thing_shadow}")
test_result = -1
except KeyError as e:
print(f"ERROR: Could not verify thing shadow: key {e} does not exist in shadow response: {thing_shadow}")
test_result = -1
except Exception as e:
print(f"ERROR: Could not verify thing shadow: {e}")
test_result = -1
except Exception as e:
print(f"ERROR: Could not verify thing shadow: {e}")
test_result = -1
i = i + 1
time.sleep(3);


if test_result == 0:
print("Test succeeded")
Expand Down
43 changes: 2 additions & 41 deletions servicetests/tests/ShadowUpdate/shadow_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,17 +100,13 @@ def on_get_shadow_accepted(response):
value = response.state.delta.get(shadow_property)
if value:
print(" Shadow contains delta value '{}'.".format(value))
change_shadow_value(value)
return

if response.state.reported:
value = response.state.reported.get(shadow_property)
if value:
print(" Shadow contains reported value '{}'.".format(value))
return

print(" Shadow document lacks '{}' property. Setting defaults...".format(shadow_property))
change_shadow_value(SHADOW_VALUE_DEFAULT)
return

except Exception as e:
Expand All @@ -128,12 +124,8 @@ def on_get_shadow_rejected(error):
print("Ignoring get_shadow_rejected message due to unexpected token.")
return

if error.code == 404:
print("Thing has no shadow document. Creating with defaults...")
change_shadow_value(SHADOW_VALUE_DEFAULT)
else:
exit("Get request was rejected. code:{} message:'{}'".format(
error.code, error.message))
if error.code != 404:
exit("Get request was rejected. code:{} message:'{}'".format(error.code, error.message))
except Exception as e:
exit(e)

Expand Down Expand Up @@ -193,32 +185,6 @@ def on_update_shadow_rejected(error):
exit(e)


def change_shadow_value(value):
with locked_data.lock:

print("Changed local shadow value to '{}'.".format(value))
locked_data.shadow_value = value

print("Updating reported shadow value to '{}'...".format(value))

# use a unique token so we can correlate this "request" message to
# any "response" messages received on the /accepted and /rejected topics
token = str(uuid4())

# if the value is "none" then set it to a Python none object to
request = iotshadow.UpdateShadowRequest(
thing_name=shadow_thing_name,
state=iotshadow.ShadowState(
reported={shadow_property: value},
desired={shadow_property: value},
),
client_token=token,
)
future = shadow_client.publish_update_shadow(request, mqtt_qos)
locked_data.request_tokens.add(token)
future.add_done_callback(on_publish_update_shadow)


def update_event_received(response):
print("Update Event Received\n")
print("Current response", response.current)
Expand Down Expand Up @@ -387,8 +353,6 @@ def update_shadow():

update_thing_update_future = shadow_client.publish_update_shadow(request = iotshadow.UpdateShadowRequest
(thing_name = shadow_thing_name, state=state), qos=mqtt_qos)

change_shadow_value(cmdData.input_shadow_value)
update_thing_update_future.result()

except Exception as e:
Expand Down Expand Up @@ -470,6 +434,3 @@ def update_shadow():
exit(0)
# Wait for the sample to finish
is_sample_done.wait()



0 comments on commit 23549be

Please sign in to comment.