Skip to content

Commit

Permalink
Merge pull request #7 from tucked/legacy
Browse files Browse the repository at this point in the history
Revert "Support legacy config files"
  • Loading branch information
tucked authored Mar 20, 2023
2 parents 8a30491 + 0042d27 commit e513828
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 57 deletions.
34 changes: 0 additions & 34 deletions pbnh/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,42 +5,13 @@
from typing import Any

from flask import Flask

# Deprecated (only db.py should know about sqlalchemy):
from sqlalchemy.engine import URL
import yaml


CONFIG_PATH_DEFAULT = "/etc/pbnh.yaml"
CONFIG_PATH_ENV_VAR = "PBNH_CONFIG"


def _uri_from_legacy(database: dict[str, Any]) -> URL:
"""Build an SQLALCHEMY_DATABASE_URI from legacy config."""
# e.g.
# database:
# dbname : "paste"
# dialect : "postgresql"
# driver : null
# host : "database.example.com"
# password : "WARMACHINEROX"
# port : 5432
# username : "someuser"
return URL.create(
drivername="+".join(
value
for key in ["dialect", "driver"]
for value in [database.get(key)]
if value
),
username=database.get("username"),
password=database.get("password"),
host=database.get("host"),
port=database.get("port"),
database=database.get("dbname"),
)


def create_app(
override_config: dict[str, Any] | None = None, /, *, check_db: bool = False
) -> Flask | None:
Expand Down Expand Up @@ -79,11 +50,6 @@ def create_app(
if app.debug:
app.logger.setLevel(logging.DEBUG)

# Adapt legacy config (deprecated).
if "SQLALCHEMY_DATABASE_URI" not in app.config and "database" in app.config:
app.logger.warning("Legacy config detected")
app.config["SQLALCHEMY_DATABASE_URI"] = _uri_from_legacy(app.config["database"])

# Tell Flask it is behind a reverse proxy.
if "WERKZEUG_PROXY_FIX" in app.config:
# https://flask.palletsprojects.com/en/2.2.x/deploying/proxy_fix/
Expand Down
23 changes: 0 additions & 23 deletions tests/test_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,29 +25,6 @@ def test_config_nondebug(override_config):
pbnh.create_app(override_config).logger.level != logging.DEBUG


@pytest.mark.parametrize("drivername", ["sqlite", "postgresql+psycopg2"])
def test_legacy_config(monkeypatch, drivername):
"""Ensure that legacy config is adapted correctly."""
dialect, _, driver = drivername.partition("+")
database = {
"dbname": "paste",
"dialect": dialect,
"driver": driver,
"host": "database.example.com",
"password": "WARMACHINEROX",
"port": 5432,
"username": "someuser",
}
monkeypatch.setenv(pbnh.CONFIG_PATH_ENV_VAR, "")
url = pbnh.create_app({"database": database}).config.get("SQLALCHEMY_DATABASE_URI")
assert url.database == database["dbname"]
assert url.drivername == drivername
assert url.host == database["host"]
assert url.password == database["password"]
assert url.port == database["port"]
assert url.username == database["username"]


def test_config_path_env_var(tmp_path, monkeypatch, override_config):
"""Ensure that PBNH_CONFIG can be used to specify a config file."""
path = tmp_path / "pbnh.yaml"
Expand Down

0 comments on commit e513828

Please sign in to comment.