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)])
 | 
					        pins[5].assert_states_and_times([(0.0, False), (0.1, True), (0.25, False)])
 | 
				
			||||||
        device1.close()
 | 
					        device1.close()
 | 
				
			||||||
        assert repr(device1) == '<gpiozero.Energenie object closed>'
 | 
					        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