Skip to content

V-Solar-UC/backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a089916 · Jun 21, 2021

History

40 Commits
Jun 21, 2021
Jun 2, 2021
May 28, 2021
May 12, 2021
Jun 2, 2021
May 12, 2021
May 28, 2021
May 12, 2021
May 28, 2021
May 12, 2021
Jun 20, 2021
Jun 20, 2021
May 28, 2021
Jun 20, 2021

Repository files navigation

V-Solar backend 💻

Importante:

despues de clonar el repositorio:

  1. correr pip install pre-commit, luego pre-commit install y finalmente pre-commit install --hook-type commit-msg.

  2. correr mkdir pgadmin

  3. correr cp .env.example .env y rellenar variables de entorno

How to:

start containers:

docker compose up --build

run migrations (upgrade or downgrade):

docker compose exec api poetry run alembic upgrade head

docker compose exec api poetry run alembic downgrade base

connect to postgres:

docker compose exec db psql -h localhost -U postgres --dbname=<dbname>

run tests:

docker compose exec api poetry run pytest -v -s (-s is optional, outputs logs to stdout)

libraries:

  • poetry: dependency management

  • FastAPI

  • alembic: migrations

  • SQLAlchemy: orm and database connection

  • pytest: tests

  • pydantic: data parsing, data validation (input and output)

  • loguru: logging to stdout and disk (overrides uvicorn handlers)

  • httpx & asgi-lifespan: permite a pytest correr tests con funciones asincronas (necesarias para hacer queries a la db)

relevant resources:

pytest fixtures

database queries (raw & sqlalchemy)

migrations with alembic

pre-commit hooks

repositories pattern

how to use pydantic models

running tests asynchronously

why async tests

sqlalchemy events

how sqlalchemy sessions work

sqlalchemy queries