Python: Port test model to API graphs #9368
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I found an old evaluation on LGTM for comparing the difference. Overall it looks good 👍
One improvement is that the old modeling would also flag custom test runners (subclasses of
unittest.TextTestRunner
) and test loaders (subclasses ofunittest.TestLoader
). Although these are related to testing, they are certainly not a unit test class ;)The new modeling captures quite a lot of new real testcases, from subclasses such as
from flask_testing import TestCase, LiveServerTestCase
from nose.plugins import doctests as npd; npd.DocTestCase
tornado.testing.AsyncHTTPTestCase
from django.test import TestCase
Overall I think this looks like an improvement in behavior for our test-detection, although it isn't used for as much with Code Scanning as it was for LGTM. It also moves us away from points-to. Seems like a win-win to me 😊