Skip to content

Commit

Permalink
fix: default exclude pattern for __pycache__ (#396)
Browse files Browse the repository at this point in the history
Signed-off-by: Stephen Whitlock <[email protected]>
  • Loading branch information
jshwi committed Jul 28, 2024
1 parent 97d1aac commit 6902f46
Show file tree
Hide file tree
Showing 5 changed files with 165 additions and 3 deletions.
3 changes: 3 additions & 0 deletions .idea/scopes/tests_fix_test.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions changelog/396.fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
default exclude pattern for __pycache__
2 changes: 1 addition & 1 deletion docsig/_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
|\\.tox[\\\\/].*
|\\.vscode[\\\\/].*
|_?build[\\\\/].*
|__pycache__[\\\\/].*
|.*[\\\\/]__pycache__[\\\\/].*
|dist[\\\\/].*
|node_modules[\\\\/].*
)$
Expand Down
161 changes: 159 additions & 2 deletions tests/fix_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
==================
"""

# pylint: disable=protected-access
# pylint: disable=protected-access,line-too-long

import pickle
from pathlib import Path
Expand All @@ -12,7 +12,7 @@

import docsig

from . import FixtureMakeTree, InitFileFixtureType, MockMainType
from . import TREE, FixtureMakeTree, InitFileFixtureType, MockMainType, long


def test_fix_optional_return_statements_with_overload_func_sig502(
Expand Down Expand Up @@ -125,3 +125,160 @@ def _paths(*args, **kwargs) -> docsig._core._Paths:
Path("parent") / "src" / "design" / "file3.py",
]
)


def test_exclude_defaults_396(
capsys: pytest.CaptureFixture,
main: MockMainType,
make_tree: FixtureMakeTree,
) -> None:
"""Test bash script is ignored when under __pycache__ directory.
:param capsys: Capture sys out.
:param main: Patch package entry point.
:param make_tree: Create directory tree from dict mapping.
"""
make_tree(Path.cwd(), TREE)
Path(".gitignore").unlink()
main(".", long.verbose, test_flake8=False)
std = capsys.readouterr()
expected = [
f"{Path('.pyaud_cache/7.5.1/CACHEDIR.TAG')}: in gitignore, skipping",
f"{Path('.pyaud_cache/7.5.1/files.json')}: in gitignore, skipping",
f"{Path('.pyaud_cache/7.5.1/.gitignore')}: in gitignore, skipping",
f"{Path('.pytest_cache/CACHEDIR.TAG')}: in gitignore, skipping",
f"{Path('.pytest_cache/README.md')}: in gitignore, skipping",
f"{Path('.pytest_cache/.gitignore')}: in gitignore, skipping",
f"{Path('.pytest_cache/v')}: in gitignore, skipping",
f"{Path('.mypy_cache/CACHEDIR.TAG')}: in gitignore, skipping",
f"{Path('.mypy_cache/3.12')}: in gitignore, skipping",
f"{Path('.mypy_cache/.gitignore')}: in gitignore, skipping",
f"{Path('.mypy_cache/3.8')}: in gitignore, skipping",
f"{Path('.idea/workspace.xml')}: in gitignore, skipping",
f"{Path('.idea/dictionaries')}: in gitignore, skipping",
f"{Path('dist/docsig-0.49.1.tar.gz')}: in exclude list, skipping",
f"{Path('dist/docsig-0.49.2-py3-none-any.whl')}: in exclude list, skipping",
f"{Path('dist/docsig-0.49.2.tar.gz')}: in exclude list, skipping",
f"{Path('dist/docsig-0.49.0-py3-none-any.whl')}: in exclude list, skipping",
f"{Path('dist/docsig-0.49.0.tar.gz')}: in exclude list, skipping",
f"{Path('dist/docsig-0.49.1-py3-none-any.whl')}: in exclude list, skipping",
f"{Path('node_modules/.cache/prettier/.prettier-caches/7f51ae3462154079bc96a79583b977616b1ad315.json')}: in exclude list, skipping",
f"{Path('.git/HEAD')}: in exclude list, skipping",
f"{Path('.idea/docsig.iml')}: in exclude list, skipping",
f"{Path('.idea/jsonSchemas.xml')}: in exclude list, skipping",
f"{Path('.idea/inspectionProfiles/profiles_settings.xml')}: in exclude list, skipping",
f"{Path('.idea/inspectionProfiles/Project_Default.xml')}: in exclude list, skipping",
f"{Path('.idea/codeStyles/Project.xml')}: in exclude list, skipping",
f"{Path('.idea/codeStyles/codeStyleConfig.xml')}: in exclude list, skipping",
f"{Path('.idea/material_theme_project_new.xml')}: in exclude list, skipping",
f"{Path('.idea/vcs.xml')}: in exclude list, skipping",
f"{Path('.idea/.gitignore')}: in exclude list, skipping",
f"{Path('.idea/modules.xml')}: in exclude list, skipping",
f"{Path('.idea/watcherTasks.xml')}: in exclude list, skipping",
f"{Path('.idea/misc.xml')}: in exclude list, skipping",
f"{Path('.idea/scopes/whitelist_py.xml')}: in exclude list, skipping",
f"{Path('.idea/scopes/bump2version.xml')}: in exclude list, skipping",
f"{Path('.idea/scopes/docs__themes_graphite_static.xml')}: in exclude list, skipping",
f"{Path('.idea/scopes/docs_conf.xml')}: in exclude list, skipping",
f"{Path('.idea/scopes/_prettierignore.xml')}: in exclude list, skipping",
f"{Path('.idea/scopes/docs_index.xml')}: in exclude list, skipping",
f"{Path('.idea/scopes/_pylintrc.xml')}: in exclude list, skipping",
f"{Path('.bumpversion.cfg')}: Parsing Python code failed",
f"{Path('.conform.yaml')}: Parsing Python code failed",
f"{Path('.coverage')}: Parsing Python code failed",
f"{Path('.editorconfig')}: Parsing Python code failed",
f"{Path('.github/COMMIT_POLICY.md')}: Parsing Python code failed",
f"{Path('.github/dependabot.yml')}: Parsing Python code failed",
f"{Path('.github/workflows/build.yaml')}: Parsing Python code failed",
f"{Path('.github/workflows/codeql-analysis.yml')}: Parsing Python code failed",
f"{Path('.pre-commit-config.yaml')}: Parsing Python code failed",
f"{Path('.pre-commit-hooks.yaml')}: Parsing Python code failed",
f"{Path('.prettierignore')}: Parsing Python code failed",
f"{Path('.pylintrc')}: Parsing Python code failed",
f"{Path('.readthedocs.yml')}: Parsing Python code failed",
f"{Path('CHANGELOG.md')}: Parsing Python code failed",
f"{Path('CODE_OF_CONDUCT.md')}: Parsing Python code failed",
f"{Path('CONTRIBUTING.md')}: Parsing Python code failed",
f"{Path('LICENSE')}: Parsing Python code failed",
f"{Path('Makefile')}: Parsing Python code failed",
f"{Path('README.rst')}: Parsing Python code failed",
f"{Path('coverage.xml')}: Parsing Python code failed",
f"{Path('docs/conf.py')}: Parsing Python code successful",
f"{Path('docs/docsig.rst')}: Parsing Python code failed",
f"{Path('docs/examples/classes.rst')}: Parsing Python code failed",
f"{Path('docs/examples/message-control.rst')}: Parsing Python code failed",
f"{Path('docs/index.rst')}: Parsing Python code failed",
f"{Path('docs/requirements.txt')}: Parsing Python code failed",
f"{Path('docs/static/docsig.svg')}: Parsing Python code failed",
f"{Path('docsig/__init__.py')}: Parsing Python code successful",
f"{Path('docsig/__main__.py')}: Parsing Python code successful",
f"{Path('docsig/__pycache__/__init__.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/__init__.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/__main__.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/__main__.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_config.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_config.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_core.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_core.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_decorators.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_decorators.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_directives.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_directives.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_display.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_display.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_git.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_hooks.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_hooks.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_main.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_main.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_message.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_message.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_module.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_module.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_report.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_report.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_stub.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_stub.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_utils.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_utils.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_version.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/_version.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/messages.cpython-311.pyc')}: in exclude list, skipping",
f"{Path('docsig/__pycache__/messages.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('docsig/_config.py')}: Parsing Python code successful",
f"{Path('docsig/_core.py')}: Parsing Python code successful",
f"{Path('docsig/_decorators.py')}: Parsing Python code successful",
f"{Path('docsig/_directives.py')}: Parsing Python code successful",
f"{Path('docsig/_display.py')}: Parsing Python code successful",
f"{Path('docsig/_hooks.py')}: Parsing Python code successful",
f"{Path('docsig/_main.py')}: Parsing Python code successful",
f"{Path('docsig/_message.py')}: Parsing Python code successful",
f"{Path('docsig/_module.py')}: Parsing Python code successful",
f"{Path('docsig/_report.py')}: Parsing Python code successful",
f"{Path('docsig/_stub.py')}: Parsing Python code successful",
f"{Path('docsig/_utils.py')}: Parsing Python code successful",
f"{Path('docsig/_version.py')}: Parsing Python code successful",
f"{Path('docsig/messages.py')}: Parsing Python code successful",
f"{Path('docsig/py.typed')}: Parsing Python code failed",
f"{Path('package-lock.json')}: Parsing Python code failed",
f"{Path('package.json')}: Parsing Python code failed",
f"{Path('poetry.lock')}: Parsing Python code failed",
f"{Path('pyproject.toml')}: Parsing Python code successful",
f"{Path('tests/TESTS.md')}: Parsing Python code failed",
f"{Path('tests/__init__.py')}: Parsing Python code successful",
f"{Path('tests/__pycache__/__init__.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('tests/__pycache__/_test.cpython-38-pytest-8.1.1.pyc')}: in exclude list, skipping",
f"{Path('tests/__pycache__/_test.cpython-38.pyc')}: in exclude list, skipping",
f"{Path('tests/__pycache__/conftest.cpython-38-pytest-8.1.1.pyc')}: in exclude list, skipping",
f"{Path('tests/__pycache__/disable_test.cpython-38-pytest-8.1.1.pyc')}: in exclude list, skipping",
f"{Path('tests/__pycache__/misc_test.cpython-38-pytest-8.1.1.pyc')}: in exclude list, skipping",
f"{Path('tests/_test.py')}: Parsing Python code successful",
f"{Path('tests/conftest.py')}: Parsing Python code successful",
f"{Path('tests/disable_test.py')}: Parsing Python code successful",
f"{Path('tests/git_test.py')}: Parsing Python code successful",
f"{Path('tests/misc_test.py')}: Parsing Python code successful",
f"{Path('whitelist.py')}: Parsing Python code successful",
]
for i in expected:
assert i in std.out
assert all(i in std.out for i in expected)
1 change: 1 addition & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,4 @@ exclude =
whitelist.py
per-file-ignores =
tests/exclude_test.py:E501
tests/fix_test.py:E501

0 comments on commit 6902f46

Please sign in to comment.