FastNotes — это RESTful API-сервис для управления заметками, реализованный с использованием асинхронного стека. Проект поддерживает операции CRUD для работы с заметками и покрыт тестами.
| Компонент | Технология |
|---|---|
| Backend | FastAPI |
| ORM | SQLAlchemy (async) |
| База данных | PostgreSQL (через Databases) |
| Тестирование | Pytest + HTTPX |
| Документация | Автоматическая через FastAPI /docs |
| Контейнеризация | Docker + Docker Compose |
Проект покрыт юнит-тестами с использованием:
pytest— основной тестовый фреймворк.monkeypatch
def test_create_note_success(test_app, monkeypatch):
async def mock_post(payload):
return { "id": 1, "title": payload["title"], "description": payload["description"], "created_at": "..." }
monkeypatch.setattr(crud, "post", mock_post)
response = test_app.post("/notes", json={"title": "Test", "description": "..."})
assert response.status_code == 201- Клонируйте репозиторий:
git clone https://github.com/belyashnikovatn/FastNotes.git
cd FastNotes- Запустите контейнеры:
docker-compose up --build- Откройте документацию:
- Swagger UI: http://localhost:8000/docs
- Redoc: http://localhost:8000/redoc
- Запустите тесты:
docker compose exec web pytest .