-
-
Notifications
You must be signed in to change notification settings - Fork 750
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
Use python imports to identify fixtures (part 6/6) #5706
Conversation
07f6c46
to
56e7651
Compare
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.
LGTM
@@ -22,7 +22,7 @@ | |||
from winrm_runner import winrm_ps_script_runner | |||
from winrm_runner.winrm_base import WinRmBaseRunner | |||
|
|||
FIXTURES_PATH = os.path.join(os.path.dirname(__file__), "fixtures") | |||
from .fixtures import FIXTURES_PATH |
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.
is the .
necessary here?
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.
Alternatively we might be able to use this:
from .fixtures import FIXTURES_PATH | |
from tests.unit.fixtures import FIXTURES_PATH |
Relative import was simpler. But I'm fine either way.
1fb7909
to
bc952a5
Compare
16e7601
to
c6cd658
Compare
c6cd658
to
d45f381
Compare
Background
I'm working towards introducing
pants
. Eventually I would like to use pants to run tests to take advantage of the fine-grained per-file caching of results that accounts for dependencies by python files (pants infers the deps by reading the python files).In order to use the fine-grained caching, Pants needs to know which tests rely on which fixtures. We could add extra metadata to tie the tests to the fixtures, but that would be an additional maintenance burden that will become out-of-date. We can also include all fixtures for all tests, but then we don't benefit from the fine-grained per-file caching. However, pants can already infer dependencies based on python imports, so that is what this PR (and several follow-up PRs) takes advantage of.
Overview
This PR does the following:
__init__.py
.fixture.py
file in each fixture that uses the fixturesloader utils (where helpful) to identify itself withPATH
andNAME
vars.PATH
and/orNAME
vars from that fixture.This PR focuses on the last couple fixtures.
Statistics
Changes Summary (mostly in
st2reactor
with a little in thewinrm_runner
):fixture.py
(each has 13 lines of copyright/license header):16*5=+80 lines
__init__.py
when that made more sense for a directory of fixtures-11 +17
lines changed in test files to use the new fixture vars.We may find need to address additional fixtures in the future, but this is the end of this series of PRs.