]> Repositories - hackapet/Adafruit_Blinka.git/blobdiff - test/src/testing/universal/i2c.py
Simplified testing packages
[hackapet/Adafruit_Blinka.git] / test / src / testing / universal / i2c.py
diff --git a/test/src/testing/universal/i2c.py b/test/src/testing/universal/i2c.py
new file mode 100644 (file)
index 0000000..0a2d29c
--- /dev/null
@@ -0,0 +1,88 @@
+import gc
+from testing import yes_no
+gc.collect()
+from unittest import TestCase
+gc.collect()
+from testing.board.i2c import I2C
+gc.collect()
+
+class TestBME280Interactive(TestCase):
+
+    def test_read_value(self):
+        if not(yes_no("Is BME280 wired to SCL {} SDA {}".format(board.SCL, board.SDA))):
+            return # test trivially passed
+
+        import board
+        gc.collect()
+        import adafruit_bme280
+        gc.collect()
+        i2c = I2C(board.SCL, board.SDA)
+        bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c)
+        temperature = bme280.temperature
+        humidity = bme280.humidity
+        pressure = bme280.pressure
+        altitude = bme280.altitude
+        self.assertTrue(type(temperature) is float )
+        self.assertTrue(type(humidity) is float )
+        self.assertTrue(type(pressure) is float )
+        self.assertTrue(type(altitude) is float )
+
+        self.assertTrue( -50 <= temperature <= 50)
+        self.assertTrue( 0 <= humidity <= 100)
+        self.assertTrue( 900 <= pressure <= 1100)
+        self.assertTrue( -1000 <= altitude <= 9,848)
+
+
+class TestMMA8451Interactive(TestCase):
+
+    def test_read_value(self):
+        import math
+        gc.collect()
+        import board
+        gc.collect()
+
+        if not(yes_no("Is MMA8451 wired to SCL {} SDA {} and held still".format(board.SCL, board.SDA))):
+            return # test trivially passed
+        # from https://github.com/adafruit/Adafruit_CircuitPython_MMA8451/blob/29e31a0bb836367bc73763b83513105252b7b264/examples/simpletest.py
+        import adafruit_mma8451
+        i2c = I2C(board.SCL, board.SDA)
+        sensor = adafruit_mma8451.MMA8451(i2c)
+
+        x, y, z = sensor.acceleration
+        absolute = math.sqrt(x**2 + y**2 + z**2)
+        self.assertTrue(9 <=absolute <= 11, "Not earth gravity")
+
+        orientation = sensor.orientation
+        self.assertTrue(orientation in (
+            adafruit_mma8451.PL_PUF,
+            adafruit_mma8451.PL_PUB,
+            adafruit_mma8451.PL_PDF,
+            adafruit_mma8451.PL_PDB,
+            adafruit_mma8451.PL_LRF,
+            adafruit_mma8451.PL_LRB,
+            adafruit_mma8451.PL_LLF,
+            adafruit_mma8451.PL_LLB,
+        ))
+
+class TestBNO055Interactive(TestCase):
+
+    def test_read_value(self):
+        """
+        Access all sensor values as per
+        https://github.com/adafruit/Adafruit_CircuitPython_BNO055/blob/bdf6ada21e7552c242bc470d4d2619b480b4c574/examples/values.py
+        """
+        import board
+        gc.collect()
+        import adafruit_bno055
+        gc.collect()
+        i2c = I2C(board.SCL, board.SDA)
+        sensor = adafruit_bno055.BNO055(i2c)
+
+        self.assertTrue(9 <= sensor.gravity <= 11)
+        self.assertTrue(sensor.temperature != 0)
+        self.assertTrue(sensor.acceleration != (0,0,0))
+        self.assertTrue(sensor.magnetometer != (0,0,0))
+        self.assertTrue(sensor.gyroscope != (0,0,0))
+        self.assertTrue(sensor.quaternion != (0,0,0,0))
+        sensor.euler
+        sensor.linear_acceleration