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

1import pytest 

2 

3from birdbrain_device import BirdbrainDevice 

4from birdbrain_exception import BirdbrainException 

5 

6def test_none_device(): 

7 with pytest.raises(BirdbrainException) as e: 

8 hummingbird = BirdbrainDevice.connect(None) 

9 assert e.value.message == "Missing device name" 

10 

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" 

15 

16def test_stop_all(): 

17 hummingbird = BirdbrainDevice.connect() 

18 

19 hummingbird.stop_all() 

20 

21def test_default_connect(): 

22 hummingbird = BirdbrainDevice.connect() 

23 

24 assert hummingbird.connected 

25 assert hummingbird.device == 'A' 

26 

27def test_connect(): 

28 hummingbird = BirdbrainDevice.connect("A") 

29 

30 assert hummingbird.connected 

31 assert hummingbird.device == 'A' 

32 

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" 

37 

38def test_connect_to_disconnected_device_no_exception(): 

39 hummingbird = BirdbrainDevice.connect("C", False) 

40 

41 assert not hummingbird.connected 

42 assert hummingbird.device == 'C' 

43 

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" 

48 

49def test_is_hummingbird(): 

50 hummingbird = BirdbrainDevice.connect("A") 

51 

52 assert hummingbird.is_hummingbird 

53 

54def test_is_finch(): 

55 hummingbird = BirdbrainDevice.connect("A") 

56 

57 assert not hummingbird.is_finch() 

58 

59def test_cache(): 

60 hummingbird = BirdbrainDevice.connect("A") 

61 

62 assert hummingbird.get_cache("something_name") == None 

63 

64 assert hummingbird.set_cache("something_name", "something") == "something" 

65 assert hummingbird.get_cache("something_name") == "something" 

66 

67 assert "something_name" in hummingbird.state.cache 

68 

69 assert hummingbird.set_cache("something_name", None) == None 

70 

71 assert "something_name" not in hummingbird.state.cache 

72 

73 assert hummingbird.get_cache("something_name") == None 

74 

75 assert hummingbird.set_cache("set_not_in_the_cache", None) == None