Example #1
0
def test_raspberry_pi_gpu_temp__iter__returns_iterator():
    """ The iter methods must return an iterator in order to work properly """
    with mock.patch('mycodo.inputs.raspi.RaspberryPiGPUTemp.get_measurement'
                    ) as mock_measure:
        mock_measure.side_effect = [67, 52]
        rpi_gpu = RaspberryPiGPUTemp()
        assert isinstance(rpi_gpu.__iter__(), Iterator)
Example #2
0
def test_raspberry_pi_gpu_temp_special_method_repr():
    """ expect a __repr__ format """
    with mock.patch('mycodo.inputs.raspi.RaspberryPiGPUTemp.get_measurement') as mock_measure:
        mock_measure.side_effect = [67.2, 52.5]
        rpi_gpu = RaspberryPiGPUTemp()
        assert not rpi_gpu.read()
        assert "<RaspberryPiGPUTemp(temperature=67.20)>" in repr(rpi_gpu)
        assert not rpi_gpu.read()
        assert "<RaspberryPiGPUTemp(temperature=52.50)>" in repr(rpi_gpu)
Example #3
0
def test_raspberry_pi_gpu_temp_temperature_property():
    """ verify temperature property """
    with mock.patch('mycodo.inputs.raspi.RaspberryPiGPUTemp.get_measurement') as mock_measure:
        mock_measure.side_effect = [67.2, 52.5]
        rpi_gpu = RaspberryPiGPUTemp()
        assert rpi_gpu._temperature is None
        assert rpi_gpu.temperature == 67.2
        assert rpi_gpu.temperature == 67.2  # same reading, not updated yet
        assert not rpi_gpu.read()
        assert rpi_gpu.temperature == 52.5
Example #4
0
def test_raspberry_pi_gpu_temp_read_updates_temp():
    """  Verify that RaspberryPiGPUTemp().read() gets the average temp """
    with mock.patch('mycodo.inputs.raspi.RaspberryPiGPUTemp.get_measurement') as mock_measure:
        mock_measure.side_effect = [67, 52]
        rpi_gpu = RaspberryPiGPUTemp()
        assert rpi_gpu._temperature is None
        assert not rpi_gpu.read()
        assert rpi_gpu._temperature == 67.0
        assert not rpi_gpu.read()
        assert rpi_gpu._temperature == 52.0
Example #5
0
def test_raspberry_pi_gpu_temp_special_method_str():
    """ expect a __str__ format """
    with mock.patch('mycodo.inputs.raspi.RaspberryPiGPUTemp.get_measurement'
                    ) as mock_measure:
        mock_measure.side_effect = [67.2, 52.5]
        rpi_gpu = RaspberryPiGPUTemp(None, testing=True)
        assert not rpi_gpu.read()
        assert "Temperature: 67.20" in str(rpi_gpu)
        assert not rpi_gpu.read()
        assert "Temperature: 52.50" in str(rpi_gpu)
Example #6
0
def test_raspberry_pi_gpu_temp_read_logs_unknown_errors():
    """ verify get_measurement string format """
    with LogCapture() as log_cap:
        with mock.patch('mycodo.inputs.raspi.RaspberryPiGPUTemp.get_measurement', side_effect=Exception('msg')):
            RaspberryPiGPUTemp().read()
    expected_log = ('mycodo.inputs.raspi', 'ERROR', "RaspberryPiGPUTemp raised an exception when taking a reading: msg")
    assert expected_log in log_cap.actual()
Example #7
0
def test_raspberry_pi_gpu_temp_read_logs_ioerror():
    """ verify get_measurement string format """
    with LogCapture() as log_cap:
        with mock.patch('mycodo.inputs.raspi.RaspberryPiGPUTemp.get_measurement', side_effect=IOError('msg')):
            RaspberryPiGPUTemp().read()
    expected_log = ('mycodo.inputs.raspi', 'ERROR', "RaspberryPiGPUTemp.get_measurement() method raised IOError: msg")
    assert expected_log in log_cap.actual()
Example #8
0
def test_raspberry_pi_gpu_temp_read_logs_called_process_error():
    """ verify get_measurement string format """
    with LogCapture() as log_cap:
        with mock.patch('mycodo.inputs.raspi.RaspberryPiGPUTemp.get_measurement',
                        side_effect=CalledProcessError(cmd='cmd', returncode=0)):
            RaspberryPiGPUTemp().read()
    expected_log = ('mycodo.inputs.raspi', 'ERROR', "RaspberryPiGPUTemp.get_measurement() subprocess call raised: Command 'cmd' returned non-zero exit status 0")
    assert expected_log in log_cap.actual()
Example #9
0
def test_raspberry_pi_gpu_temp_iterates_using_in():
    """ Verify that a RaspberryPiGPUTemp object can use the 'in' operator """
    with mock.patch('mycodo.inputs.raspi.RaspberryPiGPUTemp.get_measurement') as mock_measure:
        mock_measure.side_effect = [67, 52, 37, 45]
        rpigpu = RaspberryPiGPUTemp()
        expected_result_list = [dict(temperature=67.00),
                                dict(temperature=52.00),
                                dict(temperature=37.00),
                                dict(temperature=45.00)]
        assert expected_result_list == [temp for temp in rpigpu]
    BH1750Sensor(None, None, None, None, testing=True),
    BME280Sensor(None, None, testing=True),
    BMP180Sensor(None, testing=True),
    BMP280Sensor(None, None, testing=True),
    ChirpSensor(None, None, testing=True),
    DHT11Sensor(None, None, testing=True),
    DHT22Sensor(None, None, testing=True),
    DS18B20Sensor(None, None, testing=True),
    HTU21DSensor(None, testing=True),
    K30Sensor(None, testing=True),
    LinuxCommand(None, 'measurement', testing=True),
    MHZ16Sensor(None, testing=True),
    MHZ19Sensor(None, testing=True),
    MycodoRam(testing=True),
    RaspberryPiCPUTemp(),
    RaspberryPiGPUTemp(),
    RaspberryPiCPULoad(),
    RaspberryPiFreeSpace(None, testing=True),
    SHT1x7xSensor(None, None, None, testing=True),
    SHT2xSensor(None, None, testing=True),
    SignalPWMInput(None, None, None, testing=True),
    SignalRPMInput(None, None, None, None, testing=True),
    TMP006Sensor(None, None, testing=True),
    TSL2561Sensor(None, None, testing=True),
    TSL2591Sensor(None, None, testing=True)
]


# ----------------------------
#   AbstractInput
# ----------------------------
Example #11
0
def test_raspberry_pi_gpu_temp_get_measurement_method_returns_float():
    """ verify get_measurement string format """
    with mock.patch('mycodo.inputs.raspi.subprocess') as mock_subprocess:
        mock_subprocess.check_output.side_effect = lambda n: "temp=42.8'C"
        assert 42.8 == RaspberryPiGPUTemp.get_measurement()
Example #12
0
def test_raspberry_pi_gpu_temp_read_returns_1_on_exception():
    """ Verify the read() method returns true on error """
    with mock.patch('mycodo.inputs.raspi.RaspberryPiGPUTemp.get_measurement', side_effect=Exception):
        assert RaspberryPiGPUTemp().read()
Example #13
0
def test_raspberry_pi_gpu_temp_raises_exception():
    """ stops iteration on read() error """
    with mock.patch('mycodo.inputs.raspi.RaspberryPiGPUTemp.get_measurement', side_effect=IOError):
        with pytest.raises(StopIteration):
            RaspberryPiGPUTemp().next()
Example #14
0
def test_raspberry_pi_gpu_temp_next_returns_dict():
    """ Expect next() to return string: '{'measurement type':measurement value}' """
    with mock.patch('mycodo.inputs.raspi.subprocess') as mock_subprocess:
        mock_subprocess.check_output.side_effect = lambda n: "temp=42.8'C"
        rpi_gpu = RaspberryPiGPUTemp()
        assert rpi_gpu.next() == dict(temperature=42.80)
Example #15
0
def test_raspberry_pi_gpu_temp_is_iterator_instance():
    """ Verify that a RaspberryPiGPUTemp object is and behaves like an iterator """
    assert isinstance(RaspberryPiGPUTemp(), Iterator), "RaspberryPiGPUTemp is not and iterator instance"
Example #16
0
    BH1750Sensor(None, testing=True),
    BME280Sensor(None, testing=True),
    BMP180Sensor(None, testing=True),
    BMP280Sensor(None, testing=True),
    ChirpSensor(None, testing=True),
    DHT11Sensor(None, testing=True),
    DHT22Sensor(None, testing=True),
    DS18B20Sensor(None, testing=True),
    HTU21DSensor(None, testing=True),
    K30Sensor(None, testing=True),
    LinuxCommand(None, testing=True),
    MHZ16Sensor(None, testing=True),
    MHZ19Sensor(None, testing=True),
    MycodoRam(None, testing=True),
    RaspberryPiCPUTemp(None, testing=True),
    RaspberryPiGPUTemp(None, testing=True),
    RaspberryPiCPULoad(None, testing=True),
    RaspberryPiFreeSpace(None, testing=True),
    SHT1x7xSensor(None, testing=True),
    SHT2xSensor(None, testing=True),
    SignalPWMInput(None, testing=True),
    SignalRPMInput(None, testing=True),
    TMP006Sensor(None, testing=True),
    TSL2561Sensor(None, testing=True),
    TSL2591Sensor(None, testing=True)
]


# ----------------------------
#   AbstractInput
# ----------------------------