Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

generator: retain nested test case structure #1889

Merged
merged 18 commits into from
Apr 2, 2024
Merged

generator: retain nested test case structure #1889

merged 18 commits into from
Apr 2, 2024

Conversation

senekor
Copy link
Contributor

@senekor senekor commented Apr 1, 2024

Previously, the generator flattened any nesting of test cases from problem-specifications. This worked alright for medium-complexity exercises. However, it makes writing a functional test template harder in the general case. An example is the exercise forth, which has test cases with the same description across different test groups. Flattening the groups leads to tests with the same name being generated. Preserving the structure makes it possible to organize the tests into one module per test group, solving the naming conflicts.

The three commits contain:

  1. The rather small changes to the generator to preserve the structure
  2. Refactoring of many templates which now have to deal with structure. In most cases I just removed the structure again. Some changes to additional-tests.json were also necessary, such that the additional tests would have the same nesting structure as the standard ones.
  3. A fix of the repository test additional_tests_are_documented. It reads the additional-tests.json files and therefore has to account for the new structure as well.

senekor added 17 commits March 30, 2024 23:22
The logic to extract the function names from the lib.rs stub to use it
for exercise generation doesn't really add any value, it just makes
things more complicated. First of all, the Rust code itself.
But also the tera templates, which contain a {{ fn_names[0] }}.

All for saving a few characters of typing when creating a new template.
That's not worth it in my opinion. The templating context should only
contain things that actually change dynamically, namely the test data.
@senekor senekor requested a review from ErikSchierboom April 1, 2024 21:55
Base automatically changed from anyhow to main April 2, 2024 08:07
@senekor senekor merged commit e318d66 into main Apr 2, 2024
10 checks passed
@senekor senekor deleted the no-flatten-tests branch April 2, 2024 08:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants