Skip to content

Commit 038eee0

Browse files
authored
Merge pull request #224 from plugwise/neg_test
Re-enable tinker_thermostat_schedule() negative testing
2 parents c3d157b + 96aeeb6 commit 038eee0

File tree

1 file changed

+21
-89
lines changed

1 file changed

+21
-89
lines changed

tests/test_smile.py

Lines changed: 21 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -545,17 +545,24 @@ async def tinker_thermostat_schedule(
545545
warning = " Negative test"
546546
new_schedule = new_schedule[1:]
547547
_LOGGER.info("- Adjusting schedule to %s", f"{new_schedule}{warning}")
548-
if not unhappy:
549-
try:
550-
await smile.set_schedule_state(loc_id, new_schedule, state)
551-
tinker_schedule_passed = True
552-
_LOGGER.info(" + working as intended")
553-
except pw_exceptions.PlugwiseError:
554-
_LOGGER.info(" + failed as expected")
555-
tinker_schedule_passed = True
556-
else:
557-
_LOGGER.info(" + failed as expected before intended failure")
548+
try:
549+
await smile.set_schedule_state(loc_id, new_schedule, state)
550+
tinker_schedule_passed = True
551+
_LOGGER.info(" + working as intended")
552+
except pw_exceptions.PlugwiseError:
553+
_LOGGER.info(" + failed as expected")
558554
tinker_schedule_passed = True
555+
except (
556+
pw_exceptions.ErrorSendingCommandError,
557+
pw_exceptions.ResponseError,
558+
):
559+
tinker_schedule_passed = False
560+
if unhappy:
561+
_LOGGER.info(" + failed as expected before intended failure")
562+
tinker_schedule_passed = True
563+
else: # pragma: no cover
564+
_LOGGER.info(" - succeeded unexpectedly for some reason")
565+
return False
559566

560567
return tinker_schedule_passed
561568

@@ -842,19 +849,6 @@ async def test_connect_legacy_anna_2(self):
842849
await smile.close_connection()
843850
await self.disconnect(server, client)
844851

845-
server, smile, client = await self.connect_wrapper(raise_timeout=True)
846-
result = await self.tinker_thermostat(
847-
smile,
848-
"be81e3f8275b4129852c4d8d550ae2eb",
849-
good_schedules=[
850-
"Thermostat schedule",
851-
],
852-
unhappy=True,
853-
)
854-
assert result
855-
await smile.close_connection()
856-
await self.disconnect(server, client)
857-
858852
@pytest.mark.asyncio
859853
async def test_connect_smile_p1_v2(self):
860854
"""Test a legacy P1 device."""
@@ -1076,6 +1070,7 @@ async def test_connect_anna_v4(self):
10761070
await self.disconnect(server, client)
10771071

10781072
server, smile, client = await self.connect_wrapper(raise_timeout=True)
1073+
await self.device_test(smile, testdata)
10791074
result = await self.tinker_thermostat(
10801075
smile,
10811076
"eb5309212bf5407bb143e5bfa3b18aee",
@@ -1187,18 +1182,6 @@ async def test_connect_anna_v4_dhw(self):
11871182
await smile.close_connection()
11881183
await self.disconnect(server, client)
11891184

1190-
server, smile, client = await self.connect_wrapper(raise_timeout=True)
1191-
result = await self.tinker_thermostat(
1192-
smile,
1193-
"eb5309212bf5407bb143e5bfa3b18aee",
1194-
good_schedules=["Standaard", "Thuiswerken"],
1195-
schedule_on=False,
1196-
unhappy=True,
1197-
)
1198-
assert result
1199-
await smile.close_connection()
1200-
await self.disconnect(server, client)
1201-
12021185
@pytest.mark.asyncio
12031186
async def test_connect_anna_v4_no_tag(self):
12041187
"""Test an Anna firmware 4 setup - missing tag (issue)."""
@@ -1233,18 +1216,6 @@ async def test_connect_anna_v4_no_tag(self):
12331216
await smile.close_connection()
12341217
await self.disconnect(server, client)
12351218

1236-
server, smile, client = await self.connect_wrapper(raise_timeout=True)
1237-
result = await self.tinker_thermostat(
1238-
smile,
1239-
"eb5309212bf5407bb143e5bfa3b18aee",
1240-
schedule_on=False,
1241-
good_schedules=["Standaard", "Thuiswerken"],
1242-
unhappy=True,
1243-
)
1244-
assert result
1245-
await smile.close_connection()
1246-
await self.disconnect(server, client)
1247-
12481219
@pytest.mark.asyncio
12491220
async def test_connect_anna_without_boiler_fw3(self):
12501221
"""Test an Anna with firmware 3, without a boiler."""
@@ -1317,17 +1288,6 @@ async def test_connect_anna_without_boiler_fw3(self):
13171288
await smile.close_connection()
13181289
await self.disconnect(server, client)
13191290

1320-
server, smile, client = await self.connect_wrapper(raise_timeout=True)
1321-
result = await self.tinker_thermostat(
1322-
smile,
1323-
"c34c6864216446528e95d88985e714cc",
1324-
good_schedules=["Test", "Normal"],
1325-
unhappy=True,
1326-
)
1327-
assert result
1328-
await smile.close_connection()
1329-
await self.disconnect(server, client)
1330-
13311291
@pytest.mark.asyncio
13321292
async def test_connect_anna_without_boiler_fw4(self):
13331293
"""Test an Anna with firmware 4.0, without a boiler."""
@@ -1399,17 +1359,6 @@ async def test_connect_anna_without_boiler_fw4(self):
13991359
await smile.close_connection()
14001360
await self.disconnect(server, client)
14011361

1402-
server, smile, client = await self.connect_wrapper(raise_timeout=True)
1403-
result = await self.tinker_thermostat(
1404-
smile,
1405-
"c34c6864216446528e95d88985e714cc",
1406-
good_schedules=["Test", "Normal"],
1407-
unhappy=True,
1408-
)
1409-
assert result
1410-
await smile.close_connection()
1411-
await self.disconnect(server, client)
1412-
14131362
@pytest.mark.asyncio
14141363
async def test_connect_anna_without_boiler_fw42(self):
14151364
"""Test an Anna with firmware 4.2, without a boiler."""
@@ -1482,6 +1431,7 @@ async def test_connect_anna_without_boiler_fw42(self):
14821431
await self.disconnect(server, client)
14831432

14841433
server, smile, client = await self.connect_wrapper(raise_timeout=True)
1434+
await self.device_test(smile, testdata)
14851435
result = await self.tinker_thermostat(
14861436
smile,
14871437
"c34c6864216446528e95d88985e714cc",
@@ -1619,6 +1569,7 @@ async def test_connect_adam_plus_anna(self):
16191569
await self.disconnect(server, client)
16201570

16211571
server, smile, client = await self.connect_wrapper(raise_timeout=True)
1572+
await self.device_test(smile, testdata)
16221573
result = await self.tinker_thermostat(
16231574
smile,
16241575
"009490cc2f674ce6b576863fbb64f867",
@@ -2333,6 +2284,7 @@ async def test_connect_adam_zone_per_device(self):
23332284
await self.disconnect(server, client)
23342285

23352286
server, smile, client = await self.connect_wrapper(raise_timeout=True)
2287+
await self.device_test(smile, testdata)
23362288
result = await self.tinker_thermostat(
23372289
smile,
23382290
"c50f167537524366a5af7aa3942feb1e",
@@ -2767,26 +2719,6 @@ async def test_connect_adam_multiple_devices_per_zone(self):
27672719
await smile.close_connection()
27682720
await self.disconnect(server, client)
27692721

2770-
server, smile, client = await self.connect_wrapper(raise_timeout=True)
2771-
result = await self.tinker_thermostat(
2772-
smile,
2773-
"c50f167537524366a5af7aa3942feb1e",
2774-
good_schedules=["GF7 Woonkamer"],
2775-
unhappy=True,
2776-
)
2777-
assert result
2778-
2779-
result = await self.tinker_thermostat(
2780-
smile,
2781-
"82fa13f017d240daa0d0ea1775420f24",
2782-
good_schedules=["CV Jessie"],
2783-
unhappy=True,
2784-
)
2785-
assert result
2786-
2787-
await smile.close_connection()
2788-
await self.disconnect(server, client)
2789-
27902722
@pytest.mark.asyncio
27912723
async def test_adam_heatpump_cooling(self):
27922724
"""Test Adam with heatpump in cooling mode and idle."""

0 commit comments

Comments
 (0)