import pytest import os def pytest_addoption(parser): # test_esptool.py and test_espefuse.py parser.addoption( "--port", action="store", default="/dev/ttyUSB0", help="Serial port" ) parser.addoption("--chip", action="store", default="esp32", help="Chip type") # test_esptool.py only parser.addoption("--baud", action="store", default=115200, help="Baud rate") parser.addoption("--with-trace", action="store_true", default=False, help="Trace") parser.addoption( "--preload-port", action="store", default=False, help="Port for dummy binary preloading for USB-JTAG/Serial tests", ) # test_espefuse.py only parser.addoption( "--reset-port", action="store", default=None, help="FPGA reset port" ) def pytest_configure(config): # test_esptool.py and test_espefuse.py global arg_port, arg_chip arg_port = config.getoption("--port") arg_chip = config.getoption("--chip") # test_esptool.py only global arg_baud, arg_trace, arg_preload_port arg_baud = config.getoption("--baud") arg_trace = config.getoption("--with-trace") arg_preload_port = config.getoption("--preload-port") # test_espefuse.py only global arg_reset_port arg_reset_port = config.getoption("--reset-port") # register custom markers config.addinivalue_line( "markers", "host_test: mark esptool tests that run on the host machine only " "(don't require a real chip connected).", ) config.addinivalue_line( "markers", "quick_test: mark esptool tests checking basic functionality.", ) def need_to_install_package_err(): pytest.exit( "To run the tests, install esptool in development mode. " "Instructions: https://docs.espressif.com/projects/esptool/en/latest/" "contributing.html#development-setup" ) @pytest.fixture(scope="session", autouse=True) def set_terminal_properties(): """Make sure terminal width is set to 120 columns and color is disabled for consistent test output.""" os.environ["COLUMNS"] = "120" os.environ["NO_COLOR"] = "1"