syntax fix
This commit is contained in:
@@ -86,6 +86,21 @@ class ModerationTests(unittest.TestCase):
|
|||||||
self.assertEqual(self.run_cli(args), 1)
|
self.assertEqual(self.run_cli(args), 1)
|
||||||
self.assertFalse(self.path.exists())
|
self.assertFalse(self.path.exists())
|
||||||
|
|
||||||
|
def test_export_prefix_accepts_whitespace_and_preserves_variable_names(self):
|
||||||
|
env_file = self.root / ".env"
|
||||||
|
for prefix in ["export ", " export\t", "\texport ", ""]:
|
||||||
|
env_file.write_text(f'{prefix}DATA_DIR="anderer Ordner"\n', encoding="utf-8")
|
||||||
|
self.assertEqual(moderate_routes.database_path(self.root),
|
||||||
|
self.root / "anderer Ordner" / "wegwichtel.sqlite")
|
||||||
|
env_file.write_text("exportDATA_DIR=anders\nexport_path=anders\n", encoding="utf-8")
|
||||||
|
self.assertEqual(moderate_routes.database_path(self.root), self.path)
|
||||||
|
|
||||||
|
def test_env_read_errors_are_reported_without_changing_database(self):
|
||||||
|
with patch.object(Path, "read_text", side_effect=PermissionError("Lesen nicht erlaubt")):
|
||||||
|
self.assertEqual(self.run_cli(["-e", "1"]), 1)
|
||||||
|
self.assertIsNone(self.activation())
|
||||||
|
self.assertIn("Lesen nicht erlaubt", self.error.getvalue())
|
||||||
|
|
||||||
def test_bad_env_reports_line_without_secrets(self):
|
def test_bad_env_reports_line_without_secrets(self):
|
||||||
for value in ["secret-without-equals", 'DATA_DIR="secret']:
|
for value in ["secret-without-equals", 'DATA_DIR="secret']:
|
||||||
(self.root / ".env").write_text(value, encoding="utf-8")
|
(self.root / ".env").write_text(value, encoding="utf-8")
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ import argparse
|
|||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
import os
|
import os
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
import re
|
||||||
import shlex
|
import shlex
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import sys
|
import sys
|
||||||
import re
|
|
||||||
|
|
||||||
PROJECT_ROOT = Path(__file__).resolve().parents[2]
|
PROJECT_ROOT = Path(__file__).resolve().parents[2]
|
||||||
|
|
||||||
@@ -18,12 +18,13 @@ def database_path(project_root):
|
|||||||
settings = {}
|
settings = {}
|
||||||
env_file = project_root / ".env"
|
env_file = project_root / ".env"
|
||||||
try:
|
try:
|
||||||
for number, line in enumerate(env_file.read_text(encoding="utf-8-sig").splitlines(), 1):
|
contents = env_file.read_text(encoding="utf-8-sig")
|
||||||
|
except FileNotFoundError:
|
||||||
|
contents = ""
|
||||||
|
for number, line in enumerate(contents.splitlines(), 1):
|
||||||
line = re.sub(r'^\s*export\s+', '', line).strip()
|
line = re.sub(r'^\s*export\s+', '', line).strip()
|
||||||
if not line or line.startswith("#"):
|
if not line or line.startswith("#"):
|
||||||
continue
|
continue
|
||||||
if line.startswith("export "):
|
|
||||||
line = line[7:].lstrip()
|
|
||||||
key, separator, value = line.partition("=")
|
key, separator, value = line.partition("=")
|
||||||
if not separator:
|
if not separator:
|
||||||
raise ValueError(f"Ungültige .env-Angabe in Zeile {number}.")
|
raise ValueError(f"Ungültige .env-Angabe in Zeile {number}.")
|
||||||
|
|||||||
Reference in New Issue
Block a user