import time from unittest.test import equivalency_chk from .help import DELAY_SET_GET def device_follow(tLogger, master, master_key, slave, slave_key, values, switch_on): # Prepare System if switch_on is not None: switch_on.set(switch_on.KEY_OUTPUT_0, True) time.sleep(DELAY_SET_GET) tLogger.debug("Prepare: Switching on device") # Prepare devices to last state start_state = values[-1] master.set(master_key, start_state) slave.set(slave_key, start_state) time.sleep(DELAY_SET_GET) tLogger.debug("Prepare: Setting devices to last state %s", repr(start_state)) master_exp = master.get(master_key) slave_exp = slave.get(slave_key) equivalency_chk((master_exp, slave_exp), (start_state, start_state), tLogger, "Start state (master, slave)") # # Test devices for value in values: master.set(master_key, value) time.sleep(DELAY_SET_GET) tLogger.debug("Setting state of %s to %s", master.get_name(master_key, master.topic), repr(value)) result = slave.get(slave_key) equivalency_chk(result, value, tLogger, f"Value for {slave.get_name(slave_key, slave.topic)}")