-
Notifications
You must be signed in to change notification settings - Fork 0
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
TST: use sybil for doctests #250
Conversation
Reviewer's Guide by SourceryThis PR switches the project's doctest implementation from pytest-doctestplus to sybil. The change involves restructuring how doctests are collected and executed, introducing pytest fixtures for test setup, and updating the documentation infrastructure. The implementation removes dependencies on jupyter-sphinx and pytest-doctestplus while maintaining test coverage. Class diagram for updated testing infrastructureclassDiagram
class Sybil {
+pytest_collect_file
}
class DocTestParser {
+optionflags: ELLIPSIS
}
class PythonCodeBlockParser
class SkipParser
class FileSystem {
+opened: bool
}
class Versioned {
+put_archive()
+put_file()
+get_file()
+date()
+owner()
}
class Unversioned {
+put_file()
+put_archive()
+get_file()
}
class BackendError
class Minio {
+create()
}
Sybil --> DocTestParser
Sybil --> PythonCodeBlockParser
Sybil --> SkipParser
Versioned --> FileSystem
Unversioned --> FileSystem
Minio --> FileSystem
BackendError --> FileSystem
note for Sybil "Sybil is used for collecting and running doctests"
note for FileSystem "FileSystem backend is used in doctests"
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @hagenw - I've reviewed your changes and they look great!
Here's what I looked at during the review
- 🟡 General issues: 1 issue found
- 🟢 Security: all looks good
- 🟢 Testing: all looks good
- 🟢 Complexity: all looks good
- 🟢 Documentation: all looks good
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review
Mainly the doctests are refactores to sybil
.
I have reviewed structural changes to the testing process before - test identification was not 100% coherent with our previous approach.
Apart from that I have skimmed over the text , I did not find any flaws.
I also build the documentation, and it builds without errors.
So I would think approval is safe.
Similar to audeering/audinterface#178 we switch to use
sybil
for doctests.This has several motivations:
jupyter-sphinx
(large dependencies, not well maintained)pytest-doctestplus
(slow in adopting to newerpytest
versions)pytest
fixtures inside doctestsUpdate "Usage" section
Updated "Developer guide" section
Updated "Legacy backends" section
In the developer guide, I replaced the usage of
shelve
bypickle
as the previous implementation worked under Linux, but not under MacOS (where it was not tested before).Summary by Sourcery
Switch to sybil for doctests to separate testing from documentation building, remove large and outdated dependencies, and enhance testing capabilities with pytest fixtures.
Enhancements:
Documentation:
Tests:
Chores: