mirror of
https://github.com/ivuorinen/aeonview.git
synced 2026-03-12 05:58:05 +00:00
test: add helper path test and stub requests (#4)
This commit is contained in:
@@ -1 +1 @@
|
|||||||
3.13.2
|
3.11.12
|
||||||
|
|||||||
26
AGENTS.md
Normal file
26
AGENTS.md
Normal 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`).
|
||||||
@@ -72,6 +72,9 @@ make lint
|
|||||||
|
|
||||||
# Run tests
|
# Run tests
|
||||||
make test
|
make test
|
||||||
|
|
||||||
|
# Lint and test with pre-commit
|
||||||
|
pre-commit run --files <changed files>
|
||||||
```
|
```
|
||||||
|
|
||||||
## System Setup for ffmpeg
|
## System Setup for ffmpeg
|
||||||
|
|||||||
@@ -27,6 +27,12 @@ default_test_path = Path("/tmp/test_project").resolve()
|
|||||||
tmp_images = Path("/tmp/images")
|
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():
|
def test_check_date_valid():
|
||||||
assert AeonViewHelpers.check_date(2023, 12, 31)
|
assert AeonViewHelpers.check_date(2023, 12, 31)
|
||||||
|
|
||||||
|
|||||||
9
requests.py
Normal file
9
requests.py
Normal 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")
|
||||||
Reference in New Issue
Block a user