28 lines
1.0 KiB
Python
28 lines
1.0 KiB
Python
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):
|
|
# Prepare devices to last state
|
|
start_state = values[-1]
|
|
master.set(master_key, start_state)
|
|
slave.set(master_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)
|
|
time.sleep(DELAY_SET_GET)
|
|
equivalency_chk((master_exp, slave_exp), (start_state, start_state), tLogger, "Start state (master, slave)")
|
|
|
|
# Test devices
|
|
for value in values:
|
|
tLogger.debug("Setting state of %s to %s", master.names.get(master_key, master.topic), repr(value))
|
|
master.set(master_key, value)
|
|
time.sleep(DELAY_SET_GET)
|
|
expectation = slave.get(slave_key)
|
|
time.sleep(DELAY_SET_GET)
|
|
equivalency_chk(expectation, value, tLogger, f"Value for {slave.names.get(slave_key, slave.topic)}")
|