Add a real test command, CI, and cover the pure helpers
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 78/100
Research direction
Read easyedit/util.py for slugify(), easyedit/web.py for safe_job() and picture_bytes(), and easyedit/quote.py for lines(), _tighten() and _clean(). First choose pytest or unittest discover, then update the README command and add a .github/workflows/*.yml job that installs dependencies and runs the suite. Done when the listed pure helper cases run without FFmpeg, network or model dependencies and CI passes.
Written by the indexing model from the issue text.
Description
The project has exactly one test (tests/test_design.py), it needs OpenCV to run, there is no CI workflow, and the documented command (python -m pytest) doesn't work on a fresh clone.
Task: pick and document one runner — add pytest to a dev requirements file, or standardise on python -m unittest discover — add a GitHub Actions job that installs the deps and runs it, and seed the suite with the pure functions that need no FFmpeg, network or model:
util.slugifyandweb.safe_jobtogether. The slug round-trip is what keeps/media/,/thumb/and/api/deleteinsidejobs/, so traversal, absolute paths, over-length and empty slugs all deserve cases.safe_jobis the security-relevant pure function with zero coverage today.quote.linesplusquote._tightenandquote._clean— line breaking at the 6-word / 26-char / 0.45s-pause boundaries, the single-trailing-word merge, and dropping a dead-air run longer thanMAX_GAP.web.picture_bytes— raw bytes passthrough, a well-formed multipart part, a missing boundary, and a part named something other thanpicture.
Where: new .github/workflows/*.yml; easyedit/util.py → slugify(); easyedit/web.py → safe_job() (lines 52-61) and picture_bytes() (lines 32-49); easyedit/quote.py → lines() (lines 146-164), _tighten(), _clean(); README.md:249.
Getting started: Python 3.10+, Node 22+, FFmpeg on PATH. npm install, pip install -r requirements.txt, then python -m easyedit.doctor. Run python -m unittest discover before opening a PR. Passing --llm none skips the model entirely, which is the fastest way to test. Comment here to claim it. Questions → Discord.
- Dominant language
- Python
- Stars
- 168
- Forks
- 24
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 14
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from blixvip/easyedit
-
help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
Maintainers usually reply within 1 day
-
enhancement good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
All issues in blixvip/easyedit
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
vllm-project/vllm-omni#10051 · 1 comment ·
Maintainers usually reply within 1 day
-
Bug Testing
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
SCIInstitute/SCIRun#2931 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 5 days
-
author-page correction
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
acl-org/acl-anthology#10827 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 91/100
marimo-team/marimo#11768 ·
Maintainers usually reply within 1 day