From 47fc5e1c78883b3bac16ce7fc5d1d5e30a0b3827 Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Fri, 3 Nov 2023 13:49:21 +0000 Subject: [PATCH] CI: Fix tests for st7735 rename. --- tests/conftest.py | 7 +++++++ tests/test_dimensions.py | 15 ++++----------- tests/test_features.py | 19 ++++++------------- tests/test_setup.py | 25 ++++++++----------------- tests/tools.py | 23 ----------------------- 5 files changed, 25 insertions(+), 64 deletions(-) delete mode 100644 tests/tools.py diff --git a/tests/conftest.py b/tests/conftest.py index 009dbb4..032b5b1 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -8,6 +8,13 @@ import mock import pytest +@pytest.fixture(scope='function', autouse=False) +def st7735(): + import st7735 + yield st7735 + del sys.modules['st7735'] + + @pytest.fixture(scope='function', autouse=False) def GPIO(): """Mock RPi.GPIO module.""" diff --git a/tests/test_dimensions.py b/tests/test_dimensions.py index 4eb4b61..61607a1 100644 --- a/tests/test_dimensions.py +++ b/tests/test_dimensions.py @@ -1,17 +1,10 @@ -from tools import force_reimport - - -def test_128_64_0(GPIO, spidev, numpy): - force_reimport('ST7735') - import ST7735 - display = ST7735.ST7735(port=0, cs=0, dc=24, width=128, height=64, rotation=0) +def test_128_64_0(GPIO, spidev, numpy, st7735): + display = st7735.ST7735(port=0, cs=0, dc=24, width=128, height=64, rotation=0) assert display.width == 128 assert display.height == 64 -def test_128_64_90(GPIO, spidev, numpy): - force_reimport('ST7735') - import ST7735 - display = ST7735.ST7735(port=0, cs=0, dc=24, width=128, height=64, rotation=90) +def test_128_64_90(GPIO, spidev, numpy, st7735): + display = st7735.ST7735(port=0, cs=0, dc=24, width=128, height=64, rotation=90) assert display.width == 64 assert display.height == 128 diff --git a/tests/test_features.py b/tests/test_features.py index 8de6eb8..441a893 100644 --- a/tests/test_features.py +++ b/tests/test_features.py @@ -1,25 +1,18 @@ import mock -from tools import force_reimport -def test_display(GPIO, spidev, numpy): - force_reimport('ST7735') - import ST7735 - display = ST7735.ST7735(port=0, cs=0, dc=24) +def test_display(GPIO, spidev, numpy, st7735): + display = st7735.ST7735(port=0, cs=0, dc=24) numpy.dstack().flatten().tolist.return_value = [0xff, 0x00, 0xff, 0x00] display.display(mock.MagicMock()) spidev.SpiDev().xfer3.assert_called_with([0xff, 0x00, 0xff, 0x00]) -def test_color565(GPIO, spidev, numpy): - force_reimport('ST7735') - import ST7735 - assert ST7735.color565(255, 255, 255) == 0xFFFF +def test_color565(GPIO, spidev, numpy, st7735): + assert st7735.color565(255, 255, 255) == 0xFFFF -def test_image_to_data(GPIO, spidev, numpy): - force_reimport('ST7735') +def test_image_to_data(GPIO, spidev, numpy, st7735): numpy.dstack().flatten().tolist.return_value = [] - import ST7735 - assert ST7735.image_to_data(mock.MagicMock()) == [] + assert st7735.image_to_data(mock.MagicMock()) == [] diff --git a/tests/test_setup.py b/tests/test_setup.py index 8b89f47..8d9fb63 100644 --- a/tests/test_setup.py +++ b/tests/test_setup.py @@ -1,11 +1,8 @@ import mock -from tools import force_reimport -def test_setup(GPIO, spidev, numpy): - force_reimport('ST7735') - import ST7735 - display = ST7735.ST7735(port=0, cs=0, dc=24) +def test_setup(GPIO, spidev, numpy, st7735): + display = st7735.ST7735(port=0, cs=0, dc=24) del display GPIO.output.assert_has_calls([ @@ -14,17 +11,13 @@ def test_setup(GPIO, spidev, numpy): ], any_order=True) -def test_setup_no_invert(GPIO, spidev, numpy): - force_reimport('ST7735') - import ST7735 - display = ST7735.ST7735(port=0, cs=0, dc=24, invert=False) +def test_setup_no_invert(GPIO, spidev, numpy, st7735): + display = st7735.ST7735(port=0, cs=0, dc=24, invert=False) del display -def test_setup_with_backlight(GPIO, spidev, numpy): - force_reimport('ST7735') - import ST7735 - display = ST7735.ST7735(port=0, cs=0, dc=24, backlight=4) +def test_setup_with_backlight(GPIO, spidev, numpy, st7735): + display = st7735.ST7735(port=0, cs=0, dc=24, backlight=4) GPIO.setup.assert_called_with(4, GPIO.OUT) display.set_backlight(GPIO.HIGH) @@ -39,9 +32,7 @@ def test_setup_with_backlight(GPIO, spidev, numpy): ], any_order=True) -def test_setup_with_reset(GPIO, spidev, numpy): - force_reimport('ST7735') - import ST7735 - display = ST7735.ST7735(port=0, cs=0, dc=24, rst=4) +def test_setup_with_reset(GPIO, spidev, numpy, st7735): + display = st7735.ST7735(port=0, cs=0, dc=24, rst=4) GPIO.setup.assert_called_with(4, GPIO.OUT) del display diff --git a/tests/tools.py b/tests/tools.py deleted file mode 100644 index 89c3fa0..0000000 --- a/tests/tools.py +++ /dev/null @@ -1,23 +0,0 @@ -import sys - - -def force_reimport(module): - """Force the module under test to be re-imported. - - Because pytest runs all tests within the same scope (this makes me cry) - we have to do some manual housekeeping to avoid tests polluting each other. - - Since conftest.py already does some sys.modules mangling I see no reason not to - do the same thing here. - """ - if "." in module: - steps = module.split(".") - else: - steps = [module] - - for i in range(len(steps)): - module = ".".join(steps[0:i + 1]) - try: - del sys.modules[module] - except KeyError: - pass