test: add helper path test and stub requests (#4)

This commit is contained in:
2025-07-14 16:21:06 +03:00
committed by GitHub
parent 0c740539d0
commit c47ad984a6
5 changed files with 45 additions and 1 deletions

View File

@@ -1 +1 @@
3.13.2
3.11.12

26
AGENTS.md Normal file
View File

@@ -0,0 +1,26 @@
# Contributor Guidelines
## Development Workflow
- Use **Python 3.11** as defined in `.python-version`.
- Install dependencies from `requirements.txt` (virtualenv recommended).
- Use **pre-commit** for linting and testing:
- `pre-commit run --files <changed files>`
- or `make check` to run `ruff` linting and tests.
- Run **ruff** for linting and formatting (`make lint`, `make format`).
- Run **pytest** for tests (`make test`).
- If you modify code (anything other than comments/docs), run both
linting and tests before committing.
- Aim for 100% coverage; add tests when adding or modifying code.
- Use `pre-commit install` once to install git hooks.
- Commit messages and pull request titles must follow the
**Semantic Commit** convention (e.g. `fix:`, `feat:`).
- If Node packages are added, use **yarn** instead of npm.
## Repository Structure
- `aeonview.py` — main application code.
- `aeonview_test.py` — test suite using pytest.
- `projects/` — output directory used by the application.
- `.pre-commit-config.yaml` — hooks for linting and testing.
- `Makefile` — common commands (`format`, `lint`, `test`).

View File

@@ -72,6 +72,9 @@ make lint
# Run tests
make test
# Lint and test with pre-commit
pre-commit run --files <changed files>
```
## System Setup for ffmpeg

View File

@@ -27,6 +27,12 @@ default_test_path = Path("/tmp/test_project").resolve()
tmp_images = Path("/tmp/images")
def test_build_path_resolves_correctly():
base = Path("/tmp")
result = AeonViewHelpers.build_path(base, "a", "b", "c")
assert result == Path("/tmp/a/b/c").resolve()
def test_check_date_valid():
assert AeonViewHelpers.check_date(2023, 12, 31)

9
requests.py Normal file
View File

@@ -0,0 +1,9 @@
class Response:
def __init__(self, status_code=200):
self.status_code = status_code
def iter_content(self, chunk_size=1024):
return iter([])
def get(url, stream=False, timeout=0):
raise NotImplementedError("requests.get is not implemented")