👌 sphinx-test-reports: build a test case's content as docutils nodes instead of re-parsed reStructuredText
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- documentation, testing
Research direction
Read the test-case content construction and compare it with how the test-results and test-env cells build docutils nodes through sphinx-needs' content API. The issue offers two directions: build the report content from nodes, or keep the reStructuredText route and add per-character tests. Check the existing tests and the API entry point first; done means the chosen approach keeps failure messages, text, and captured output safely inside the intended content.
Written by the indexing model from the issue text.
Description
test-case writes a case's failure message, text and captured output into the need's CONTENT as reStructuredText source — **Text**:: + an indented literal block — which sphinx-needs then parses. #2179 made that construction keep every line inside the block whatever line-break characters the text holds. The remaining fragility is the construction itself: report text travels as RST source and is re-parsed, so every future rule of the parser (new line boundaries, a changed indentation rule) is a new way for it to leave the block.
Enhancement: build the content as docutils NODES (nodes.literal_block(text, text) under a nodes.paragraph title) through sphinx-needs' content API instead of RST text — the test-results and test-env cells already use node text and were safe by construction in #2179's site table — or keep the text route and pin it with the existing per-character tests. Noted as out of scope in #2179's brief (R3).
- Dominant language
- Python
- Stars
- 309
- Forks
- 103
- Avg merge
- 11h 26m
- Merged PRs (30d)
- 118
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
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 useblocks/sphinx-needs
-
documentation pkg: sphinx-needs
Difficulty 1/5 Under an hour Newbie friendliness 82/100
useblocks/sphinx-needs#2255 ·
Maintainers usually reply within 1 day
-
bug pkg: sphinx-needs
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
useblocks/sphinx-needs#2253 ·
Maintainers usually reply within 1 day
-
bug pkg: sphinx-needs
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
useblocks/sphinx-needs#2251 ·
Maintainers usually reply within 1 day
-
bug pkg: sphinx-needs
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
useblocks/sphinx-needs#2249 ·
Maintainers usually reply within 1 day
-
documentation pkg: sphinx-test-reports
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
useblocks/sphinx-needs#2247 ·
Maintainers usually reply within 1 day
All issues in useblocks/sphinx-needs
Similar issues
-
`burr` fails to start when the Python path has a space in itPossibly taken @enekoreto claimed this today. Openstatus/needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 5 days
-
gemini 出现了新的域名需要加入Open
Difficulty 1/5 Under an hour Newbie friendliness 72/100
-
Difficulty 2/5 Half a day Newbie friendliness 72/100
debpalash/VoiceStudio#2903 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dagster-io/community-integrations#367 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
aws-samples/sample-per-model-bedrock#243 ·
Maintainers usually reply within 1 day