def test_inputs_with_group(self, dc, yaml1): mcp1 = Mock(name='MCP1') mcp2 = Mock(name='MCP2') dc.devices = {'MCP1': mcp1, 'MCP2': mcp2} dc.initialize_input_pins(yaml1) assert dc.inputs('epm_sensors') == \ {'Open Arm|-9': InputPin(device=mcp1, pin=1), 'Open Arm|-8': InputPin(device=mcp2, pin=2) }
def test_input_values_false(self, dc): dc.initialize() mcp1 = dc.devices['MCP1'] mcp2 = dc.devices['MCP2'] mcp1.input = Mock(return_value=True) mcp2.input = Mock(return_value=False) results = dc.input_values(values=False) mcp1.assert_has_calls([call.input(1)]) mcp2.assert_has_calls([call.input(2), call.input(3)]) assert results == { 'Open Arm|-8': InputPin(device=mcp2, pin=2), 'Reset Button': InputPin(device=mcp2, pin=3) }
def test_read_sensors(self, epm): mcp1 = epm.devcfg.devices['MCP1'] mcp2 = epm.devcfg.devices['MCP2'] mcp1.input = Mock(return_value=False) mcp2.input = Mock(return_value=True) results = epm.read_sensors() mcp1.assert_has_calls([call.input(1)]) mcp2.assert_has_calls([call.input(2)]) assert results == {'Open Arm|-9': InputPin(device=mcp1, pin=1)}
def epm(): d = Mock(name='device') e = Mock(name='epm') e.read_sensors = Mock(side_effect=[{ 'A': InputPin(d, pin=1) }, { 'B': InputPin(d, pin=2) }, { 'C': InputPin(d, pin=3) }, { 'D': InputPin(d, pin=4), 'E': InputPin(d, pin=5) }, { 'F': InputPin(d, pin=6) }]) return e
def test_read_all_sensors(self, epm): mcp1 = Mock(name='mcp1') pin1 = InputPin(device=mcp1, pin=1) pin2 = InputPin(device=mcp1, pin=2) pin3 = InputPin(device=mcp1, pin=3) pin4 = InputPin(device=mcp1, pin=4) pin1.input = Mock(return_value=0) pin2.input = Mock(return_value=1) pin3.input = Mock(return_value=0) pin4.input = Mock(return_value=1) inputs = { 'Open Arm|-6': pin1, 'Open Arm|-7': pin2, 'Open Arm|-8': pin3, 'Open Arm|-9': pin4 } epm.devcfg.inputs = Mock(return_value=inputs) assert epm.check_all_sensors() == {0: [pin1, pin3], 1: [pin2, pin4]} epm.devcfg.inputs.assert_called_with('epm_sensors')
def test_detect_sensors_ready(self, epm): mcp1 = Mock(name='mcp1') pin1 = InputPin(device=mcp1, pin=1, name='a') pin2 = InputPin(device=mcp1, pin=2, name='b') pin3 = InputPin(device=mcp1, pin=3, name='c') pin4 = InputPin(device=mcp1, pin=4, name='d') pin1.input = Mock(side_effect=[0, 0, 0, 1]) pin2.input = Mock(side_effect=[0, 1, 1, 1]) pin3.input = Mock(side_effect=[1, 0, 0, 1]) pin4.input = Mock(side_effect=[1, 1, 1, 1]) inputs = {'a': pin1, 'b': pin2, 'c': pin3, 'd': pin4} epm.devcfg.inputs = Mock(return_value=inputs) epm.logger.info = Mock(name='logger') epm.detect_sensors_ready() assert epm.logger.info.call_args_list == [ call('[epmsensorsd] Waiting for sensors to be ON and ready: '), call('[epmsensorsd] - a'), call('[epmsensorsd] - b'), call( '[epmsensorsd] The following sensors are now properly ON and ready: ' ), call('[epmsensorsd] - b'), call('[epmsensorsd] Waiting for sensors to be ON and ready: '), call('[epmsensorsd] - c'), call('[epmsensorsd] All 4 sensors are now properly ON and ready.') ]