Coverage for shared/test_device.py: 100%

37 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-04 20:20 -0500

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_default_connect(): 

17 hummingbird = BirdbrainDevice.connect() 

18 

19 assert hummingbird.connected 

20 assert hummingbird.device == 'A' 

21 

22def test_connect(): 

23 hummingbird = BirdbrainDevice.connect("A") 

24 

25 assert hummingbird.connected 

26 assert hummingbird.device == 'A' 

27 

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" 

32 

33def test_connect_to_disconnected_device_no_exception(): 

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

35 

36 assert not hummingbird.connected 

37 assert hummingbird.device == 'C' 

38 

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" 

43 

44def test_is_hummingbird(): 

45 hummingbird = BirdbrainDevice.connect("A") 

46 

47 assert hummingbird.is_hummingbird 

48 

49def test_is_finch(): 

50 hummingbird = BirdbrainDevice.connect("A") 

51 

52 assert not hummingbird.is_finch()