From 6aabf21cf8e794f50248501fbce48195d18f63b9 Mon Sep 17 00:00:00 2001 From: cn Date: Wed, 14 Mar 2018 22:46:58 +0100 Subject: [PATCH] module: add pytest for unit and snapshot testing with travis-ci --- .gitignore | 3 + .travis.yml | 14 + README.md | 3 +- bme280/__init__.py | 6 +- pytest.ini | 2 + requirements.txt | 3 + tests/__init__.py | 0 tests/bme280_test.py | 133 ++ tests/snapshots/__init__.py | 0 tests/snapshots/snap_bme280_test.py | 3052 +++++++++++++++++++++++++++ 10 files changed, 3213 insertions(+), 3 deletions(-) create mode 100644 .travis.yml create mode 100644 pytest.ini create mode 100644 requirements.txt create mode 100644 tests/__init__.py create mode 100644 tests/bme280_test.py create mode 100644 tests/snapshots/__init__.py create mode 100644 tests/snapshots/snap_bme280_test.py diff --git a/.gitignore b/.gitignore index 0d20b64..47b1686 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ +.cache/ +env/ +__pycache__/ *.pyc diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..9d8b8ae --- /dev/null +++ b/.travis.yml @@ -0,0 +1,14 @@ +--- +sudo: false +language: python +python: + - "2.7" + - "3.6" + +matrix: + fast_finish: true + allow_failures: + - python: "3.6" + +script: + - pytest diff --git a/README.md b/README.md index 5211bea..990ecbd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ - # python-bme280 +[![Build Status](https://travis-ci.org/cmur2/python-bme280.svg?branch=master)](https://travis-ci.org/cmur2/python-bme280) + A Python library for accessing the [BME280 combined humidity and pressure](https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BME280_DS001-11.pdf) from Bosch via `python-smbus` using the I2C interface. Default settings are suitable for Raspberry Pi 2 and 3 and was successfully tested using a [breakout](https://github.com/watterott/BME280-Breakout). diff --git a/bme280/__init__.py b/bme280/__init__.py index afd3295..5c029d2 100644 --- a/bme280/__init__.py +++ b/bme280/__init__.py @@ -1,4 +1,6 @@ from bme280 import Bme280 -#from bme280 import HO_SKIPPED, HO_1, HO_2, HO_4, HO_8, HO_16, PO_SKIPPED, PO_1, PO_2, PO_4, PO_8, PO_16, TO_SKIPPED, TO_1, TO_2, TO_4, TO_8, TO_16 -#from bme280 import MODE_SLEEP, MODE_FORCED, MODE_NORMAL +from bme280 import HO_SKIPPED, HO_1, HO_2, HO_4, HO_8, HO_16, PO_SKIPPED, PO_1, PO_2, PO_4, PO_8, PO_16, TO_SKIPPED, TO_1, TO_2, TO_4, TO_8, TO_16 +from bme280 import MODE_SLEEP, MODE_FORCED, MODE_NORMAL +from bme280 import TSTANDBY_0_5, TSTANDBY_62_5, TSTANDBY_125, TSTANDBY_250, TSTANDBY_500, TSTANDBY_1000, TSTANDBY_10, TSTANDBY_20 +from bme280 import FILTER_OFF, FILTER_2, FILTER_4, FILTER_8, FILTER_16 diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..3fdfe86 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,2 @@ +[pytest] +norecursedirs = env* .* diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7b74539 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +mock==2.0.0 +pytest==3.0.6 +snapshottest==0.5.0 diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/bme280_test.py b/tests/bme280_test.py new file mode 100644 index 0000000..4a610f3 --- /dev/null +++ b/tests/bme280_test.py @@ -0,0 +1,133 @@ + +# import unittest +import sys +import time + +import mock + +import snapshottest + +# Note: prepare globally mocked modules first and then load our module +MOCKED_SMBUS_MODULE = mock.Mock() +sys.modules['smbus'] = MOCKED_SMBUS_MODULE +time.sleep = lambda s: None +import bme280 + +# inspired by https://github.com/adafruit/Adafruit_Python_GPIO/blob/master/Adafruit_GPIO/I2C.py +class MockSMBus(object): + def __init__(self, initial_read=None): + self._log = [] + self.initial_read = initial_read or {} + + def read_byte(self, addr): + val = self.initial_read.get(addr).pop(0) + self._log.append(('r', addr, val)) + return val + + def write_byte(self, addr, val): + self._log.append(('w', addr, val)) + + def read_byte_data(self, addr, cmd): + val = self.initial_read.get(addr).pop(0) + self._log.append(('w', addr, cmd)) + self._log.append(('r', addr, val)) + return val + + def write_byte_data(self, addr, cmd, val): + self._log.append(('w', addr, cmd)) + self._log.append(('w', addr, val)) + +def setup_mockbus(**kwargs): + mockbus = MockSMBus(**kwargs) + MOCKED_SMBUS_MODULE.SMBus.return_value = mockbus + return mockbus + +def calibration_read(): + return [0x00] * (24+1+7) + +class TestBme280(snapshottest.TestCase): + + def test_setup(self): + mockbus = setup_mockbus(initial_read={ + 0x76: calibration_read() + }) + bme = bme280.Bme280() + MOCKED_SMBUS_MODULE.SMBus.assert_called_with(1) + self.assertIsNotNone(bme) + self.assertMatchSnapshot(mockbus._log) + + def test_chip_id(self): + mockbus = setup_mockbus(initial_read={ + 0x76: calibration_read() + [0x23] + }) + bme = bme280.Bme280() + self.assertEqual(bme.get_chip_id(), 0x23) + self.assertMatchSnapshot(mockbus._log) + + def test_reset(self): + mockbus = setup_mockbus(initial_read={ + 0x76: calibration_read() + }) + bme = bme280.Bme280() + bme.reset() + self.assertMatchSnapshot(mockbus._log) + + def test_status(self): + mockbus = setup_mockbus(initial_read={ + 0x76: calibration_read() + [0x08, 0x00, 0x01, 0x00] + }) + bme = bme280.Bme280() + self.assertTrue(bme.is_status_measuring()) + self.assertFalse(bme.is_status_measuring()) + self.assertTrue(bme.is_status_image_register_updating()) + self.assertFalse(bme.is_status_image_register_updating()) + self.assertMatchSnapshot(mockbus._log) + + def test_oversampling(self): + mockbus = setup_mockbus(initial_read={ + 0x76: calibration_read() + }) + bme = bme280.Bme280() + self.assertEqual(bme.get_humidity_oversampling(), bme280.HO_1) + bme.set_humidity_oversampling(bme280.HO_16) + self.assertEqual(bme.get_humidity_oversampling(), bme280.HO_16) + self.assertEqual(bme.get_temperature_oversampling(), bme280.TO_1) + bme.set_temperature_oversampling(bme280.TO_16) + self.assertEqual(bme.get_temperature_oversampling(), bme280.TO_16) + self.assertEqual(bme.get_pressure_oversampling(), bme280.PO_1) + bme.set_pressure_oversampling(bme280.PO_16) + self.assertEqual(bme.get_pressure_oversampling(), bme280.PO_16) + self.assertMatchSnapshot(mockbus._log) + + def test_mode(self): + mockbus = setup_mockbus(initial_read={ + 0x76: calibration_read() + }) + bme = bme280.Bme280() + self.assertEqual(bme.get_mode(), bme280.MODE_SLEEP) + bme.set_mode(bme280.MODE_FORCED) + self.assertEqual(bme.get_mode(), bme280.MODE_FORCED) + self.assertMatchSnapshot(mockbus._log) + + def test_config(self): + mockbus = setup_mockbus(initial_read={ + 0x76: calibration_read() + }) + bme = bme280.Bme280() + self.assertEqual(bme.get_tstandy(), bme280.TSTANDBY_1000) + bme.set_tstandy(bme280.TSTANDBY_20) + self.assertEqual(bme.get_tstandy(), bme280.TSTANDBY_20) + self.assertEqual(bme.get_filter(), bme280.FILTER_OFF) + bme.set_filter(bme280.FILTER_16) + self.assertEqual(bme.get_filter(), bme280.FILTER_16) + self.assertMatchSnapshot(mockbus._log) + + def test_data(self): + mockbus = setup_mockbus(initial_read={ + 0x76: calibration_read() + [0x00] * 8 + }) + bme = bme280.Bme280() + bme.set_mode(bme280.MODE_FORCED) + t, p, h = bme.get_data() + # self.assertEqual(t, 0x00) + self.assertMatchSnapshot(mockbus._log) diff --git a/tests/snapshots/__init__.py b/tests/snapshots/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/snapshots/snap_bme280_test.py b/tests/snapshots/snap_bme280_test.py new file mode 100644 index 0000000..1c1848c --- /dev/null +++ b/tests/snapshots/snap_bme280_test.py @@ -0,0 +1,3052 @@ +# -*- coding: utf-8 -*- +# snapshottest: v1 - https://goo.gl/zC4yUc +from __future__ import unicode_literals + +from snapshottest import Snapshot + + +snapshots = Snapshot() + +snapshots['TestBme280::test_chip_id 1'] = [ + ( + 'w', + 118, + 136 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 137 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 138 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 139 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 140 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 141 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 142 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 143 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 144 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 145 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 146 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 147 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 148 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 149 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 150 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 151 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 152 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 153 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 154 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 155 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 156 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 157 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 158 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 159 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 161 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 225 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 226 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 227 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 228 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 229 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 230 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 231 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 242 + ), + ( + 'w', + 118, + 1 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 36 + ), + ( + 'w', + 118, + 245 + ), + ( + 'w', + 118, + 160 + ), + ( + 'w', + 118, + 208 + ), + ( + 'r', + 118, + 35 + ) +] + +snapshots['TestBme280::test_config 1'] = [ + ( + 'w', + 118, + 136 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 137 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 138 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 139 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 140 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 141 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 142 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 143 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 144 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 145 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 146 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 147 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 148 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 149 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 150 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 151 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 152 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 153 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 154 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 155 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 156 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 157 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 158 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 159 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 161 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 225 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 226 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 227 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 228 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 229 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 230 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 231 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 242 + ), + ( + 'w', + 118, + 1 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 36 + ), + ( + 'w', + 118, + 245 + ), + ( + 'w', + 118, + 160 + ), + ( + 'w', + 118, + 245 + ), + ( + 'w', + 118, + 224 + ), + ( + 'w', + 118, + 245 + ), + ( + 'w', + 118, + 240 + ) +] + +snapshots['TestBme280::test_mode 1'] = [ + ( + 'w', + 118, + 136 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 137 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 138 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 139 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 140 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 141 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 142 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 143 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 144 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 145 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 146 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 147 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 148 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 149 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 150 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 151 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 152 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 153 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 154 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 155 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 156 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 157 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 158 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 159 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 161 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 225 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 226 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 227 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 228 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 229 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 230 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 231 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 242 + ), + ( + 'w', + 118, + 1 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 36 + ), + ( + 'w', + 118, + 245 + ), + ( + 'w', + 118, + 160 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 37 + ) +] + +snapshots['TestBme280::test_oversampling 1'] = [ + ( + 'w', + 118, + 136 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 137 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 138 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 139 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 140 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 141 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 142 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 143 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 144 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 145 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 146 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 147 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 148 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 149 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 150 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 151 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 152 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 153 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 154 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 155 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 156 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 157 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 158 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 159 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 161 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 225 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 226 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 227 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 228 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 229 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 230 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 231 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 242 + ), + ( + 'w', + 118, + 1 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 36 + ), + ( + 'w', + 118, + 245 + ), + ( + 'w', + 118, + 160 + ), + ( + 'w', + 118, + 242 + ), + ( + 'w', + 118, + 5 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 36 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 164 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 180 + ) +] + +snapshots['TestBme280::test_reset 1'] = [ + ( + 'w', + 118, + 136 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 137 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 138 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 139 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 140 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 141 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 142 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 143 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 144 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 145 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 146 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 147 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 148 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 149 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 150 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 151 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 152 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 153 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 154 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 155 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 156 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 157 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 158 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 159 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 161 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 225 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 226 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 227 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 228 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 229 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 230 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 231 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 242 + ), + ( + 'w', + 118, + 1 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 36 + ), + ( + 'w', + 118, + 245 + ), + ( + 'w', + 118, + 160 + ), + ( + 'w', + 118, + 224 + ), + ( + 'w', + 118, + 182 + ) +] + +snapshots['TestBme280::test_setup 1'] = [ + ( + 'w', + 118, + 136 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 137 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 138 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 139 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 140 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 141 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 142 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 143 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 144 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 145 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 146 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 147 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 148 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 149 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 150 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 151 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 152 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 153 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 154 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 155 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 156 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 157 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 158 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 159 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 161 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 225 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 226 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 227 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 228 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 229 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 230 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 231 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 242 + ), + ( + 'w', + 118, + 1 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 36 + ), + ( + 'w', + 118, + 245 + ), + ( + 'w', + 118, + 160 + ) +] + +snapshots['TestBme280::test_status 1'] = [ + ( + 'w', + 118, + 136 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 137 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 138 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 139 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 140 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 141 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 142 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 143 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 144 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 145 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 146 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 147 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 148 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 149 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 150 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 151 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 152 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 153 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 154 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 155 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 156 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 157 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 158 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 159 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 161 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 225 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 226 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 227 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 228 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 229 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 230 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 231 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 242 + ), + ( + 'w', + 118, + 1 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 36 + ), + ( + 'w', + 118, + 245 + ), + ( + 'w', + 118, + 160 + ), + ( + 'w', + 118, + 243 + ), + ( + 'r', + 118, + 8 + ), + ( + 'w', + 118, + 243 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 243 + ), + ( + 'r', + 118, + 1 + ), + ( + 'w', + 118, + 243 + ), + ( + 'r', + 118, + 0 + ) +] + +snapshots['TestBme280::test_data 1'] = [ + ( + 'w', + 118, + 136 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 137 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 138 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 139 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 140 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 141 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 142 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 143 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 144 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 145 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 146 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 147 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 148 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 149 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 150 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 151 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 152 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 153 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 154 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 155 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 156 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 157 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 158 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 159 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 161 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 225 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 226 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 227 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 228 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 229 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 230 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 231 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 242 + ), + ( + 'w', + 118, + 1 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 36 + ), + ( + 'w', + 118, + 245 + ), + ( + 'w', + 118, + 160 + ), + ( + 'w', + 118, + 244 + ), + ( + 'w', + 118, + 37 + ), + ( + 'w', + 118, + 247 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 248 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 249 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 250 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 251 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 252 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 253 + ), + ( + 'r', + 118, + 0 + ), + ( + 'w', + 118, + 254 + ), + ( + 'r', + 118, + 0 + ) +]