♻️ Refactor logic to allow running pytest tests locally (#683)
This commit is contained in:

committed by
GitHub

parent
64e21bb0d5
commit
4e2c6bd6ba
@@ -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`.
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user