Add tests for source layout inference and import linter contracts with setup.py#1858
Merged
Merged
Conversation
…h setup.py; fix AGENTS.md size limit by skipping private functions in export Agent-Logs-Url: https://github.com/usethis-python/usethis-python/sessions/2513930c-0ee9-4750-a2de-37bf989b5189 Co-authored-by: nathanjmcdougall <18602289+nathanjmcdougall@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add test for source layout inference with setup.py
Add tests for source layout inference and import linter contracts with Apr 7, 2026
setup.py
nathanjmcdougall
approved these changes
Apr 7, 2026
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
setup.pypresence in a flat-layout project was untested for both source layout inference and import linter contract generation — a potential regression surface whensetup.pyexists alongside a real Python package.Changes
test_layout.py— addstest_setup_py_present: assertsget_source_dir_str()returns"."when onlysetup.pyis present (nosrc/directory)test_import_linter.py— addstest_flat_layout_with_setup_pytoTestGetConfigSpec: creates a flat-layout project withsetup.py+ a proper package (myflatpkg/with 3 interdependent modules), then asserts:"setup"is not in the generated contract names (i.e.setup.pyis not mistaken for a package)"myflatpkg"is present as a contract.pre-commit-config.yaml/docs/functions.txt/AGENTS.md— fixes a pre-existingcheck-agent-file-sizesviolation (514 lines vs. 500-line limit) by adding--skip-privateto theexport-functionshook. Private (_-prefixed) functions are implementation details agents shouldn't reference directly; removing them reducesAGENTS.mdto 477 lines.