'Prevent all python unittests from running based on environment variable
Is there a way I could prevent all unit tests from running if a certain environment variable is not set to a specific value?
For example I want tests to only run if os.getenv(DB_URL) returns sqlite:///:memory:.
I'd like to configure this globally so I don't need to review every single test class / setup function to check this individually.
Solution 1:[1]
There's many ways to accomplish this, but a fixture is probably the easiest
import os
import pytest
DB_URL = "foo"
@pytest.fixture(autouse=True, scope="session")
def verify_db_url():
expected_url = "sqlite:///:memory:"
if os.getenv(DB_URL) != expected_url:
pytest.exit("Exiting due to incorrect database environment variable.")
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Teejay Bruno |
