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)
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)
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
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
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)
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()
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()
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()
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 # ----------------------------
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()
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()
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()
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)
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"
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 # ----------------------------