-pytest_plugins = ("tests.fix_async", "tests.fix_db", "tests.fix_tempenv")
+pytest_plugins = ("tests.fix_async", "tests.fix_db")
+++ /dev/null
-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()
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]
+import os
from select import select
import pytest
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
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.
# 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: