♻️ Refactor logic to allow running pytest tests locally (#683)

This commit is contained in:
Sebastián Ramírez
2024-03-12 13:31:31 +01:00
committed by GitHub
parent 64e21bb0d5
commit 4e2c6bd6ba
3 changed files with 12 additions and 3 deletions

View File

@@ -67,6 +67,12 @@ Modify or add SQLModel models for data and SQL tables in `./backend/app/models.p
Add and modify tasks to the Celery worker in `./backend/app/worker.py`. Add and modify tasks to the Celery worker in `./backend/app/worker.py`.
### VS Code
There are already configurations in place to run the backend through the VS Code debugger, so that you can use breakpoints, pause and explore variables, etc.
The setup is also already configured so you can run the tests through the VS Code Python tests tab.
### Docker Compose Override ### Docker Compose Override
During development, you can change Docker Compose settings that will only affect the local development environment in the file `docker-compose.override.yml`. During development, you can change Docker Compose settings that will only affect the local development environment in the file `docker-compose.override.yml`.

View File

@@ -23,7 +23,9 @@ def parse_cors(v: Any) -> list[str] | str:
class Settings(BaseSettings): class Settings(BaseSettings):
model_config = SettingsConfigDict(env_file=".env", env_ignore_empty=True) model_config = SettingsConfigDict(
env_file=".env", env_ignore_empty=True, extra="ignore"
)
API_V1_STR: str = "/api/v1" API_V1_STR: str = "/api/v1"
SECRET_KEY: str = secrets.token_urlsafe(32) SECRET_KEY: str = secrets.token_urlsafe(32)
# 60 minutes * 24 hours * 8 days = 8 days # 60 minutes * 24 hours * 8 days = 8 days
@@ -77,7 +79,6 @@ class Settings(BaseSettings):
return self return self
EMAIL_RESET_TOKEN_EXPIRE_HOURS: int = 48 EMAIL_RESET_TOKEN_EXPIRE_HOURS: int = 48
EMAIL_TEMPLATES_DIR: str = "/app/app/email-templates/build"
@computed_field # type: ignore[misc] @computed_field # type: ignore[misc]
@property @property

View File

@@ -18,7 +18,9 @@ class EmailData:
def render_email_template(*, template_name: str, context: dict[str, Any]) -> str: def render_email_template(*, template_name: str, context: dict[str, Any]) -> str:
template_str = (Path(settings.EMAIL_TEMPLATES_DIR) / template_name).read_text() template_str = (
Path(__file__).parent / "email-templates" / "build" / template_name
).read_text()
html_content = Template(template_str).render(context) html_content = Template(template_str).render(context)
return html_content return html_content