-
Notifications
You must be signed in to change notification settings - Fork 3
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
fix fixture checker #29
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #29 +/- ##
==========================================
+ Coverage 93.98% 98.02% +4.03%
==========================================
Files 18 20 +2
Lines 549 556 +7
Branches 106 105 -1
==========================================
+ Hits 516 545 +29
+ Misses 23 8 -15
+ Partials 10 3 -7
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Would you mind creating a test, that demonstrates the issue? |
128e502
to
da69357
Compare
I would love to, but i'm not sure how. I dived on this a bit, turns out the issue is invisible in the tests suits because we are running mono process checks. In our project, we use This means that I'm actually fixing a thread safety issue. Now, that being said, I would like to reproduce it here, but I'm not sure how to make a test suit that will use a the Should we include a new test folder, that would actually run |
d7d4444
to
b0aacd5
Compare
I went with a very simple integration test. This run https://github.com/pylint-dev/pylint-pytest/actions/runs/7310392985 shows the error before the fix |
the current implementation provokes recursion errors because of the VariablesChecker.add_message patch not working properly. This rework fix the issue by replacing the original variable checker by a subclass, without patch.
This shall uncover some hidden error, like non thread safe checks during multiprocess execution
74586ca
to
b52f6f6
Compare
@stdedos , happy new year 🎊. Can we go forward with this PR ? |
Hello @anis-campos! Happy new year 🎊🎊🎊 Apologies for the long radio silence. Winter vacations were not ... so much vacations for me, sadly 😅 Thank you for adding the test. While I don't understand "exactly" what is the issue - it is clearly an issue, and one your commit deals with! The AFAIS, the essence of your first commit is:
|
that was indeed my reasoning, I wasn't sure it it was worth it trying to understand the auto discovery when there is only 3 classes to register.
Hum, it is still a internal use only, so yes, we can keep it private. |
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.
Amazing MR 🤩
I am deeply sorry this has taken so much time to go through 🙏
# Added * Migrate setup.py to pyproject.toml (#8) * Support for Python 3.12 (#3, "side effect" of #8) * Introduced @dependabot (part of #28) * Improved reliability of the `FixtureChecker` class (#29) # Removed * Support for Python 3.6 & 3.7 (#23) # Improved * Increased reproducibility of the project, by using `pip-compile` for the development dependencies (#28, small bugfix in #39) * Minor CI + License updates (in 29f0c33, e0e529a, 8f56d1c) Signed-off-by: Stavros Ntentos <133706+stdedos@users.noreply.github.com>
# Added * Increased reproducibility of the project, by using `pip-compile` for the development dependencies (#28, small bugfix in #39) * Introduced @dependabot (part of #28) # Removed * Support for Python 3.6 & 3.7 (#23) # Improved * Migrate setup.py to pyproject.toml (#8) * Support for Python 3.12 (#3, "side effect" of #8) * Improved reliability of the `FixtureChecker` class (#29) * Minor CI + License updates (in 29f0c33, e0e529a, 8f56d1c) Signed-off-by: Stavros Ntentos <133706+stdedos@users.noreply.github.com>
# Added * Increased reproducibility of the project, by using `pip-compile` for the development dependencies (#28, small bugfix in #39) * Introduced @dependabot (part of #28) # Removed * Support for Python 3.6 & 3.7 (#23) # Improved * Migrate setup.py to pyproject.toml (#8) * Support for Python 3.12 (#3, "side effect" of #8) * Improved reliability of the `FixtureChecker` class (#29) * Minor CI + License updates (in 29f0c33, e0e529a, 8f56d1c) Signed-off-by: Stavros Ntentos <133706+stdedos@users.noreply.github.com>
the current implementation provokes recursion errors because of the
VariablesChecker.add_message patch not working properly.
This rework fix the issue by replacing the original variable checker by a subclass, without patch.