Implemented plugin secrets, refs #538

This commit is contained in:
Simon Willison 2019-07-03 20:36:27 -07:00
commit 002c9c464a
3 changed files with 32 additions and 3 deletions

View file

@ -1,7 +1,8 @@
from bs4 import BeautifulSoup as Soup
from .fixtures import app_client # noqa
from .fixtures import app_client, make_app_client # noqa
import base64
import json
import os
import re
import pytest
import urllib
@ -125,6 +126,24 @@ def test_plugin_config(app_client):
assert None is app_client.ds.plugin_config("unknown-plugin")
def test_plugin_config_env():
os.environ["FOO_ENV"] = "FROM_ENVIRONMENT"
for client in make_app_client(
metadata={"plugins": {"env-plugin": {"foo": {"$env": "FOO_ENV"}}}}
):
assert {"foo": "FROM_ENVIRONMENT"} == client.ds.plugin_config("env-plugin")
del os.environ["FOO_ENV"]
def test_plugin_config_file(tmpdir):
filepath = str(tmpdir / "secret-file")
open(filepath, "w").write("FROM_FILE")
for client in make_app_client(
metadata={"plugins": {"file-plugin": {"foo": {"$file": filepath}}}}
):
assert {"foo": "FROM_FILE"} == client.ds.plugin_config("file-plugin")
@pytest.mark.parametrize(
"path,expected_extra_body_script",
[