mirror of
				https://github.com/KevinMidboe/python-gpiozero.git
				synced 2025-10-29 17:50:37 +00:00 
			
		
		
		
	Add tests for StatusZero and StatusBoard
This commit is contained in:
		| @@ -778,3 +778,117 @@ def test_energenie(): | ||||
|         pins[5].assert_states_and_times([(0.0, False), (0.1, True), (0.25, False)]) | ||||
|         device1.close() | ||||
|         assert repr(device1) == '<gpiozero.Energenie object closed>' | ||||
|  | ||||
| def test_statuszero_bad_init(): | ||||
|     with pytest.raises(ValueError): | ||||
|         StatusZero('') | ||||
|     with pytest.raises(ValueError): | ||||
|         StatusZero('1') | ||||
|     with pytest.raises(ValueError): | ||||
|         StatusZero(1) | ||||
|     with pytest.raises(ValueError): | ||||
|         StatusZero('a', 'b', 'c', 'd') | ||||
|  | ||||
| def test_statuszero_good_init(): | ||||
|     with StatusZero() as sz: | ||||
|         assert sz | ||||
|     with StatusZero('a') as sz: | ||||
|         assert sz | ||||
|     with StatusZero('a', 'b') as sz: | ||||
|         assert sz | ||||
|     with StatusZero('a', 'b', 'c') as sz: | ||||
|         assert sz | ||||
|  | ||||
| def test_statuszero(): | ||||
|     with StatusZero() as sz: | ||||
|         assert isinstance(sz.one, LEDBoard) | ||||
|         assert isinstance(sz.two, LEDBoard) | ||||
|         assert isinstance(sz.three, LEDBoard) | ||||
|         assert isinstance(sz.one.red, LED) | ||||
|         assert isinstance(sz.one.green, LED) | ||||
|         assert sz.value == ((False, False), (False, False), (False, False)) | ||||
|         sz.on() | ||||
|         assert sz.value == ((True, True), (True, True), (True, True)) | ||||
|         sz.one.green.off() | ||||
|         assert sz.one.value == (True, False) | ||||
|  | ||||
| def test_statuszero_kwargs(): | ||||
|     with StatusZero(pwm=True, initial_value=True) as sz: | ||||
|         assert isinstance(sz.one, LEDBoard) | ||||
|         assert isinstance(sz.two, LEDBoard) | ||||
|         assert isinstance(sz.three, LEDBoard) | ||||
|         assert isinstance(sz.one.red, PWMLED) | ||||
|         assert isinstance(sz.one.green, PWMLED) | ||||
|         assert sz.value == ((1, 1), (1, 1), (1, 1)) | ||||
|         sz.off() | ||||
|         assert sz.value == ((0, 0), (0, 0), (0, 0)) | ||||
|  | ||||
| def test_statuszero_named(): | ||||
|     with StatusZero('a') as sz: | ||||
|         assert isinstance(sz.a, LEDBoard) | ||||
|         assert isinstance(sz.a.red, LED) | ||||
|         with pytest.raises(AttributeError): | ||||
|             sz.one | ||||
|  | ||||
| def test_statusboard_bad_init(): | ||||
|     with pytest.raises(ValueError): | ||||
|         StatusBoard('') | ||||
|     with pytest.raises(ValueError): | ||||
|         StatusBoard('1') | ||||
|     with pytest.raises(ValueError): | ||||
|         StatusBoard(1) | ||||
|     with pytest.raises(ValueError): | ||||
|         StatusBoard('a', 'b', 'c', 'd', 'e', 'f') | ||||
|  | ||||
| def test_statusboard_good_init(): | ||||
|     with StatusBoard() as sb: | ||||
|         assert sb | ||||
|     with StatusBoard('a') as sb: | ||||
|         assert sb | ||||
|     with StatusBoard('a', 'b') as sb: | ||||
|         assert sb | ||||
|     with StatusBoard('a', 'b', 'c', 'd', 'e') as sb: | ||||
|         assert sb | ||||
|  | ||||
| def test_statusboard(): | ||||
|     with StatusBoard() as sb: | ||||
|         assert isinstance(sb.one, CompositeOutputDevice) | ||||
|         assert isinstance(sb.two, CompositeOutputDevice) | ||||
|         assert isinstance(sb.five, CompositeOutputDevice) | ||||
|         assert isinstance(sb.one.button, Button) | ||||
|         assert isinstance(sb.one.lights, LEDBoard) | ||||
|         assert isinstance(sb.one.lights.red, LED) | ||||
|         assert isinstance(sb.one.lights.green, LED) | ||||
|         assert sb.value == ((False, (False, False)), (False, (False, False)), | ||||
|                             (False, (False, False)), (False, (False, False)), | ||||
|                             (False, (False, False))) | ||||
|         sb.on() | ||||
|         assert sb.value == ((False, (True, True)), (False, (True, True)), | ||||
|                             (False, (True, True)), (False, (True, True)), | ||||
|                             (False, (True, True))) | ||||
|         sb.one.lights.green.off() | ||||
|         assert sb.one.value == (False, (True, False)) | ||||
|  | ||||
| def test_statusboard_kwargs(): | ||||
|     with StatusBoard(pwm=True, initial_value=True) as sb: | ||||
|         assert isinstance(sb.one, CompositeOutputDevice) | ||||
|         assert isinstance(sb.two, CompositeOutputDevice) | ||||
|         assert isinstance(sb.five, CompositeOutputDevice) | ||||
|         assert isinstance(sb.one.button, Button) | ||||
|         assert isinstance(sb.one.lights, LEDBoard) | ||||
|         assert isinstance(sb.one.lights.red, PWMLED) | ||||
|         assert isinstance(sb.one.lights.green, PWMLED) | ||||
|         assert sb.value == ((False, (1, 1)), (False, (1, 1)), (False, (1, 1)), | ||||
|                            (False, (1, 1)), (False, (1, 1))) | ||||
|         sb.off() | ||||
|         assert sb.value == ((False, (0, 0)), (False, (0, 0)), (False, (0, 0)), | ||||
|                             (False, (0, 0)), (False, (0, 0))) | ||||
|  | ||||
| def test_statusboard_named(): | ||||
|     with StatusBoard('a') as sb: | ||||
|         assert isinstance(sb.a, CompositeOutputDevice) | ||||
|         assert isinstance(sb.a.button, Button) | ||||
|         assert isinstance(sb.a.lights, LEDBoard) | ||||
|         assert isinstance(sb.a.lights.red, LED) | ||||
|         with pytest.raises(AttributeError): | ||||
|             sb.one | ||||
|   | ||||
		Reference in New Issue
	
	Block a user