datasette-secrets 0.1a3__tar.gz → 0.1a4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datasette-secrets
3
- Version: 0.1a3
3
+ Version: 0.1a4
4
4
  Summary: Manage secrets such as API keys for use with other Datasette plugins
5
5
  Author: Datasette
6
6
  License: Apache-2.0
@@ -23,6 +23,9 @@ async def get_secret(datasette, secret_name, actor_id=None):
23
23
  return os.environ[env_var]
24
24
  # Now look it up in the database
25
25
  config = get_config(datasette)
26
+ if config is None:
27
+ return None
28
+ encryption_key = config["encryption_key"]
26
29
  db = get_database(datasette)
27
30
  try:
28
31
  db_secret = (
@@ -35,7 +38,7 @@ async def get_secret(datasette, secret_name, actor_id=None):
35
38
  return None
36
39
  if not db_secret:
37
40
  return None
38
- key = Fernet(config["encryption_key"].encode("utf-8"))
41
+ key = Fernet(encryption_key.encode("utf-8"))
39
42
  decrypted = key.decrypt(db_secret["encrypted"])
40
43
  # Update the last used timestamp and actor_id
41
44
  params = (actor_id, db_secret["id"])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: datasette-secrets
3
- Version: 0.1a3
3
+ Version: 0.1a4
4
4
  Summary: Manage secrets such as API keys for use with other Datasette plugins
5
5
  Author: Datasette
6
6
  License: Apache-2.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "datasette-secrets"
3
- version = "0.1a3"
3
+ version = "0.1a4"
4
4
  description = "Manage secrets such as API keys for use with other Datasette plugins"
5
5
  readme = "README.md"
6
6
  authors = [{name = "Datasette"}]
@@ -4,7 +4,7 @@ from datasette import hookimpl
4
4
  from datasette.app import Datasette
5
5
  from datasette.cli import cli
6
6
  from datasette.plugins import pm
7
- from datasette_secrets import get_secret, Secret, startup
7
+ from datasette_secrets import get_secret, Secret, startup, get_config
8
8
  import pytest
9
9
  from unittest.mock import ANY
10
10
 
@@ -275,6 +275,14 @@ async def test_get_secret(ds, monkeypatch):
275
275
  assert await get_secret(ds, "EXAMPLE_SECRET") is None
276
276
 
277
277
 
278
+ @pytest.mark.asyncio
279
+ async def test_if_not_configured(register_multiple_secrets):
280
+ ds = Datasette()
281
+ config = get_config(ds)
282
+ assert config is None
283
+ assert await get_secret(ds, "OPENAI_API_KEY") is None
284
+
285
+
278
286
  @pytest.mark.asyncio
279
287
  async def test_secret_index_page(ds, register_multiple_secrets):
280
288
  response = await ds.client.get(