Coverage for shared/test_device.py: 100%
37 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-12 11:24 -0400
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-12 11:24 -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_default_connect():
17 hummingbird = BirdbrainDevice.connect()
19 assert hummingbird.connected
20 assert hummingbird.device == 'A'
22def test_connect():
23 hummingbird = BirdbrainDevice.connect("A")
25 assert hummingbird.connected
26 assert hummingbird.device == 'A'
28def test_connect_to_disconnected_device():
29 with pytest.raises(BirdbrainException) as e:
30 hummingbird = BirdbrainDevice.connect("C", True)
31 assert e.value.message == "No connection: C"
33def test_connect_to_disconnected_device_no_exception():
34 hummingbird = BirdbrainDevice.connect("C", False)
36 assert not hummingbird.connected
37 assert hummingbird.device == 'C'
39def test_connect_to_disconnected_device_with_exception():
40 with pytest.raises(BirdbrainException) as e:
41 hummingbird = BirdbrainDevice.connect("C", True)
42 assert e.value.message == "No connection: C"
44def test_is_hummingbird():
45 hummingbird = BirdbrainDevice.connect("A")
47 assert hummingbird.is_hummingbird
49def test_is_finch():
50 hummingbird = BirdbrainDevice.connect("A")
52 assert not hummingbird.is_finch()