Coverage for shared/test_device.py: 100%
50 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-10-14 15:48 -0400
« prev ^ index » next coverage.py v7.8.0, created at 2025-10-14 15:48 -0400
1import pytest
3from birdbrain_device import BirdbrainDevice
4from birdbrain_exception import BirdbrainException
6def test_none_device():
7 with pytest.raises(BirdbrainException) as e:
8 hummingbird = BirdbrainDevice.connect(None)
9 assert e.value.message == "Missing device name"
11def test_bad_device():
12 with pytest.raises(BirdbrainException) as e:
13 hummingbird = BirdbrainDevice.connect("Z")
14 assert e.value.message == "Invalid device name: Z"
16def test_stop_all():
17 hummingbird = BirdbrainDevice.connect()
19 hummingbird.stop_all()
21def test_default_connect():
22 hummingbird = BirdbrainDevice.connect()
24 assert hummingbird.connected
25 assert hummingbird.device == 'A'
27def test_connect():
28 hummingbird = BirdbrainDevice.connect("A")
30 assert hummingbird.connected
31 assert hummingbird.device == 'A'
33def test_connect_to_disconnected_device():
34 with pytest.raises(BirdbrainException) as e:
35 hummingbird = BirdbrainDevice.connect("C", True)
36 assert e.value.message == "No connection: C"
38def test_connect_to_disconnected_device_no_exception():
39 hummingbird = BirdbrainDevice.connect("C", False)
41 assert not hummingbird.connected
42 assert hummingbird.device == 'C'
44def test_connect_to_disconnected_device_with_exception():
45 with pytest.raises(BirdbrainException) as e:
46 hummingbird = BirdbrainDevice.connect("C", True)
47 assert e.value.message == "No connection: C"
49def test_is_hummingbird():
50 hummingbird = BirdbrainDevice.connect("A")
52 assert hummingbird.is_hummingbird
54def test_is_finch():
55 hummingbird = BirdbrainDevice.connect("A")
57 assert not hummingbird.is_finch()
59def test_cache():
60 hummingbird = BirdbrainDevice.connect("A")
62 assert hummingbird.get_cache("something_name") == None
64 assert hummingbird.set_cache("something_name", "something") == "something"
65 assert hummingbird.get_cache("something_name") == "something"
67 assert "something_name" in hummingbird.state.cache
69 assert hummingbird.set_cache("something_name", None) == None
71 assert "something_name" not in hummingbird.state.cache
73 assert hummingbird.get_cache("something_name") == None
75 assert hummingbird.set_cache("set_not_in_the_cache", None) == None