X-Git-Url: https://zdv2.bktei.com/gitweb/EVA-2020-02-2.git/blobdiff_plain/be4d0fc9022240b5047654523aab877cbaa8a73d..4cc6c622eb92bbc223db977e37bd351f84ef2ee5:/library/tests/test_setup.py diff --git a/library/tests/test_setup.py b/library/tests/test_setup.py index 95080b6..6b6658c 100644 --- a/library/tests/test_setup.py +++ b/library/tests/test_setup.py @@ -2,6 +2,28 @@ import sys import mock +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 + + def test_gas_setup(GPIO, smbus): from enviroplus import gas gas._is_setup = False @@ -49,7 +71,8 @@ def test_gas_read_adc_default_gain(GPIO, smbus): gas._is_setup = False gas.enable_adc(True) - assert gas.read_adc() == 0.255 + gas.set_adc_gain(gas.MICS6814_GAIN) + assert gas.read_adc() == 0.765 def test_gas_read_adc_str(GPIO, smbus): @@ -59,3 +82,12 @@ def test_gas_read_adc_str(GPIO, smbus): gas.enable_adc(True) gas.set_adc_gain(2.048) assert 'ADC' in str(gas.read_all()) + + +def test_gas_cleanup(GPIO, smbus): + force_reimport('enviroplus.gas') + from enviroplus import gas + + gas.cleanup() + + GPIO.output.assert_called_with(gas.MICS6814_HEATER_PIN, 0)