From 4a73028c2512e9c81a16f9d666a1fda29dc87861 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Tue, 14 Apr 2020 18:48:12 +1200 Subject: [PATCH] Dropped tempenv fixture The pytest monkeypatch fixture does it --- tests/conftest.py | 2 +- tests/fix_tempenv.py | 40 --------------------------------------- tests/pq/test_conninfo.py | 4 ++-- tests/pq/test_pgconn.py | 9 +++++---- 4 files changed, 8 insertions(+), 47 deletions(-) delete mode 100644 tests/fix_tempenv.py diff --git a/tests/conftest.py b/tests/conftest.py index a53ed1bb1..aa0b4daf4 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1 +1 @@ -pytest_plugins = ("tests.fix_async", "tests.fix_db", "tests.fix_tempenv") +pytest_plugins = ("tests.fix_async", "tests.fix_db") diff --git a/tests/fix_tempenv.py b/tests/fix_tempenv.py deleted file mode 100644 index 9f3f35bd7..000000000 --- a/tests/fix_tempenv.py +++ /dev/null @@ -1,40 +0,0 @@ -import os -import pytest - - -class TempEnv: - def __init__(self): - self._prev = {} - - def get(self, item, default): - return os.environ.get(self, item, default) - - def __getitem__(self, item): - return os.environ[item] - - def __setitem__(self, item, value): - self._prev.setdefault(item, os.environ.get(item)) - os.environ[item] = value - - def __delitem__(self, item): - self._prev.setdefault(item, os.environ.get(item)) - del os.environ[item] - - def __contains__(self, item): - return item in os.environ - - def restore(self): - for k, v in self._prev.items(): - if v is not None: - os.environ[k] = v - else: - if k in os.environ: - del os.environ[k] - - -@pytest.fixture -def tempenv(): - """Allow to change the env vars temporarily.""" - env = TempEnv() - yield env - env.restore() diff --git a/tests/pq/test_conninfo.py b/tests/pq/test_conninfo.py index b08c8c949..176d52f54 100644 --- a/tests/pq/test_conninfo.py +++ b/tests/pq/test_conninfo.py @@ -1,8 +1,8 @@ import pytest -def test_defaults(pq, tempenv): - tempenv["PGPORT"] = "15432" +def test_defaults(pq, monkeypatch): + monkeypatch.setenv("PGPORT", "15432") defs = pq.Conninfo.get_defaults() assert len(defs) > 20 port = [d for d in defs if d.keyword == b"port"][0] diff --git a/tests/pq/test_pgconn.py b/tests/pq/test_pgconn.py index c9601458a..c3cb4c89b 100644 --- a/tests/pq/test_pgconn.py +++ b/tests/pq/test_pgconn.py @@ -1,3 +1,4 @@ +import os from select import select import pytest @@ -208,8 +209,8 @@ def test_transaction_status(pq, pgconn): assert pgconn.transaction_status == pq.TransactionStatus.UNKNOWN -def test_parameter_status(pq, dsn, tempenv): - tempenv["PGAPPNAME"] = "psycopg3 tests" +def test_parameter_status(pq, dsn, monkeypatch): + monkeypatch.setenv("PGAPPNAME", "psycopg3 tests") pgconn = pq.PGconn.connect(dsn.encode("utf8")) assert pgconn.parameter_status(b"application_name") == b"psycopg3 tests" assert pgconn.parameter_status(b"wat") is None @@ -275,7 +276,7 @@ def test_needs_password(pgconn): pgconn.needs_password -def test_used_password(pq, pgconn, tempenv, dsn): +def test_used_password(pq, pgconn, dsn, monkeypatch): assert isinstance(pgconn.used_password, bool) # Assume that if a password was passed then it was needed. @@ -284,7 +285,7 @@ def test_used_password(pq, pgconn, tempenv, dsn): # requested by the server and passed by libpq. info = pq.Conninfo.parse(dsn.encode("utf8")) has_password = ( - "PGPASSWORD" in tempenv + "PGPASSWORD" in os.environ or [i for i in info if i.keyword == b"password"][0].val is not None ) if has_password: -- 2.47.3