ManimCommunity / ManimCommunity/manim
Reorganize tests
- Dominant language
- Python
- Stars
- 40.9k
- Forks
- 3.1k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 25
Description
## Enhancement proposal
The `tests` folder is currently, in my opinion, fairly disorganized. This can make it more difficult to add new tests, as well as to identify which tests we currently have and what tests need to be added. I propose reorganizing the tests in roughly the following way:
```
tests/
├─ module/
├─ interface/
├─ miscellaneous/
```
The `module` folder should mirror the structure of the main `manim` directory. Tests should be grouped by module rather than being split up into graphical and non-graphical unit tests. For example, graphical and non-graphical unit tests for `VMobject` should be placed within the same file. Cairo and OpenGL tests for a given Mobject or Animation should also be placed in the same file (except for the base classes). Not quite sure about how the structure of control data should work.
The `interface` module should include tests that check Manim works with the various methods of providing input and getting output. For example, CLI tests, tests that assert output files were created by Manim, and in the future tests that check the Jupyter interface works correctly should all be included here.
The `miscellaneous` folder should include tests that don't fit in the other two categories. Not sure if there are any such tests right now.
## Additional comments
Contributor guide
Research direction
Start by inventorying the existing tests/ folder and comparing it with the main manim directory structure. Review how graphical, non-graphical, Cairo, OpenGL, CLI, and output-file tests are currently organized. Done would require an agreed structure separating module, interface, and miscellaneous tests, including a clear decision for control data tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing-qa
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100