inline-snapshot 0.34.0__tar.gz → 0.34.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- inline_snapshot-0.34.2/AGENTS.md +91 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/CHANGELOG.md +14 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/PKG-INFO +2 -2
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/README.md +1 -1
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/categories.md +1 -1
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/eq_snapshot.md +3 -3
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/external/external.md +1 -1
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/index.md +1 -1
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/plugin.md +1 -1
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/snapshot_arg.md +4 -5
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/testing.md +1 -1
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_snapshot_arg.py +5 -3
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_snapshot_session.py +2 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/extra.py +3 -3
- inline_snapshot-0.34.2/src/inline_snapshot/fix_pytest_cache.py +47 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/version.py +1 -1
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_docs.py +4 -3
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_pytest_diff_fix.py +4 -4
- inline_snapshot-0.34.2/tests/test_pytester.py +94 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_snapshot_arg.py +2 -2
- inline_snapshot-0.34.0/tests/test_pytester.py +0 -36
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.github/FUNDING.yml +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.github/actions/setup/action.yml +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.github/copilot-instructions.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.github/pull_request_template.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.github/workflows/ci.yml +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.github/workflows/cog.yml +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.github/workflows/deploy_development_docs.yml +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.github/workflows/docs.yml +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.github/workflows/test_docs.yml +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.gitignore +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.inline-snapshot/external/.gitignore +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.inline-snapshot/external/ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d.json +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.pre-commit-config.yaml +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/CONTRIBUTING.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/LICENSE +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/MANIFEST.in +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/changelog.d/.gitkeep +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/conftest.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/alternatives.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/assets/create_fix.mp4 +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/assets/favicon.png +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/assets/favicon.svg +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/assets/logo.svg +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/assets/logo_orig.svg +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/assets/number_set_output.png +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/assets/pycharm_run.mp4 +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/assets/star-history.png +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/changelog.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/cmp_snapshot.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/code_generation.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/configuration.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/contributing.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/customize_repr.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/external/external_file.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/external/outsource.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/external/register_format.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/extra.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/fix_assert.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/get_snapshot_value.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/getitem_snapshot.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/howto/parametrize.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/in_snapshot.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/insiders.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/limitations.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/plugins/pyproject.toml +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/plugins/replace_url.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/pycharm.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/pytest.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/styles/extra.css +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/theme/main.html +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/third_party.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/docs/types.md +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/mkdocs.yml +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/pyproject.toml +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/redeploy_docs.sh +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/scripts/clean_changelog_fragments.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/scripts/replace_words.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/scripts/test_downstream.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/__init__.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_adapter_context.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_align.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_change.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_code_repr.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_compare_context.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_config.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_customize/__init__.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_customize/_builder.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_customize/_custom.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_customize/_custom_call.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_customize/_custom_code.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_customize/_custom_dict.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_customize/_custom_external.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_customize/_custom_sequence.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_customize/_custom_undefined.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_customize/_custom_unmanaged.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_exceptions.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/__init__.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_diff.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_external.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_external_base.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_external_file.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_external_location.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_find_external.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_format/__init__.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_format/_binary.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_format/_json.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_format/_protocol.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_format/_text.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_outsource.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_storage/__init__.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_storage/_hash.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_storage/_protocol.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_external/_storage/_uuid.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_fix_assert.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_flags.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_format.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_generator_utils.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_get_snapshot_value.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_global_state.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_inline_snapshot.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_is.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_new_adapter.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_problems.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_rewrite_code.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_sentinels.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_snapshot/__init__.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_snapshot/collection_value.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_snapshot/dict_value.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_snapshot/eq_value.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_snapshot/generic_value.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_snapshot/min_max_value.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_snapshot/undecided_value.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_source_file.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_types.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_unmanaged.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/_utils.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/fix_pytest_diff.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/plugin/__init__.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/plugin/_default_plugin.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/plugin/_spec.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/py.typed +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/pydantic_fix.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/pytest_plugin.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/syntax_warnings.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/testing/__init__.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/src/inline_snapshot/testing/_example.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/test-repos.json +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/testing/generate_tests.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/__init__.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/adapter/test_call.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/adapter/test_change_types.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/adapter/test_dataclass.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/adapter/test_dict.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/adapter/test_general.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/adapter/test_namedtuple.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/adapter/test_sequence.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/conftest.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/external/__init__.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/external/storage/test_generic.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/external/storage/test_hash.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/external/storage/test_uuid.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/external/test_external.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/external/test_external_file.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/external/test_external_location.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/external/test_formats.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/external/test_module_name.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_align.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_builder.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_change.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_change_collection_error.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_ci.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_code_repr.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_config.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_customize.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_datetime_timezone.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_dirty_equals.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_encoding.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_example.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_formatting.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_fstring.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_get_snapshot_value.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_hasrepr.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_inline_snapshot.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_is.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_preserve_values.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_pydantic.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_pypy.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_pytest_plugin.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_raises.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_rewrite_code.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_skip_updates.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_storage.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_string.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_transformed.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_typing.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_update.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_warns.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_without_node.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_xdist.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/test_xfail.py +0 -0
- {inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/tests/utils.py +0 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
## Project Overview
|
|
4
|
+
|
|
5
|
+
`inline-snapshot` is a Python snapshot/approval testing library for pytest. Its core feature is storing expected values directly in source code through APIs such as `snapshot()`, `snapshot_arg()`, `external()`, and `outsource()`. The package also ships a pytest plugin that can report, review, create, update, trim, and fix snapshots.
|
|
6
|
+
|
|
7
|
+
The project supports Python 3.9 through 3.14 and PyPy where possible. CI runs across Linux, macOS, Windows, CPython, PyPy, and both Pydantic 1 and 2 dependency sets.
|
|
8
|
+
|
|
9
|
+
## Repository Layout
|
|
10
|
+
|
|
11
|
+
- `src/inline_snapshot/`: package source.
|
|
12
|
+
- `src/inline_snapshot/pytest_plugin.py`: pytest entry point and CLI flag handling.
|
|
13
|
+
- `src/inline_snapshot/_inline_snapshot.py`, `_snapshot_arg.py`, `_get_snapshot_value.py`: main public snapshot behavior.
|
|
14
|
+
- `src/inline_snapshot/_snapshot/`: snapshot value implementations such as equality, dict, min/max, collection, and undecided values.
|
|
15
|
+
- `src/inline_snapshot/_customize/`: code-generation customization support.
|
|
16
|
+
- `src/inline_snapshot/_external/`: external snapshot files, formats, storage, diffing, and outsourcing.
|
|
17
|
+
- `src/inline_snapshot/plugin/`: first-party plugin hook specification and default plugin.
|
|
18
|
+
- `src/inline_snapshot/testing/_example.py`: preferred test harness for new behavior tests.
|
|
19
|
+
- `tests/`: pytest suite. Adapter tests live in `tests/adapter/`; external snapshot tests live in `tests/external/`.
|
|
20
|
+
- `docs/`: MkDocs Material documentation.
|
|
21
|
+
- `changelog.d/`: scriv changelog fragments. Do not edit `CHANGELOG.md` directly.
|
|
22
|
+
- `.github/workflows/ci.yml`: CI matrix and coverage enforcement.
|
|
23
|
+
|
|
24
|
+
## Development Commands
|
|
25
|
+
|
|
26
|
+
The project is configured around `uv` and Hatch.
|
|
27
|
+
|
|
28
|
+
- Install/run ad hoc commands: `uv run --group dev ...`
|
|
29
|
+
- Run the normal test suite: `uv run --group dev pytest`
|
|
30
|
+
- Run a focused test: `uv run --group dev pytest tests/test_file.py::test_name`
|
|
31
|
+
- Run tests with coverage locally: `hatch test -acp`
|
|
32
|
+
- Run the full Hatch test matrix: `hatch test`
|
|
33
|
+
- Run one Hatch Python version with pytest args: `hatch test -py 3.10 -- --sw`
|
|
34
|
+
- Run mypy like CI: `uv run --with pip --group dev -p 3.12 mypy --non-interactive --install-types src/inline_snapshot tests`
|
|
35
|
+
- Build docs strictly: `hatch run docs:build`
|
|
36
|
+
- Serve docs: `hatch run docs:serve`
|
|
37
|
+
- Run pre-commit on all files: `pre-commit run -a`
|
|
38
|
+
|
|
39
|
+
If dependencies are missing, prefer `uv run --group dev ...` before adding new tooling.
|
|
40
|
+
|
|
41
|
+
## Testing Guidance
|
|
42
|
+
|
|
43
|
+
New tests should usually use `inline_snapshot.testing.Example` from `src/inline_snapshot/testing/_example.py`. This is also called out in `CONTRIBUTING.md` as the preferred style.
|
|
44
|
+
|
|
45
|
+
- Use `Example(...).run_inline(...)` for fast in-process tests of snapshot behavior and source rewrites.
|
|
46
|
+
- Use `Example(...).run_pytest(...)` when behavior depends on the real pytest plugin, assertion rewriting, subprocess execution, terminal output, or pytest reports.
|
|
47
|
+
- Use `snapshot_arg()` in tests when expected values themselves should be snapshot-managed.
|
|
48
|
+
- Many tests compare changed files, report text, stderr, outcomes, or raised exceptions; keep these assertions explicit.
|
|
49
|
+
- CPython-only rewriting tests are skipped on PyPy unless marked with `@pytest.mark.no_rewriting`.
|
|
50
|
+
- The suite has a hard 100% coverage requirement in CI. Add tests with code changes, and use `# pragma: no cover` only for genuinely untestable paths.
|
|
51
|
+
|
|
52
|
+
Snapshot-changing tests may rewrite files. Review diffs carefully after running tests with update flags such as `--inline-snapshot=create,fix,update,trim` or shortcuts from `[tool.inline-snapshot]`.
|
|
53
|
+
|
|
54
|
+
## Formatting and Style
|
|
55
|
+
|
|
56
|
+
- Black and isort are used; isort is configured with `profile = "black"` and `force_single_line = true`.
|
|
57
|
+
- Pre-commit also runs pyupgrade, autoflake, blacken-docs, YAML formatting, actionlint, typos, and pyproject validation.
|
|
58
|
+
- Keep imports in the existing single-import-per-line style.
|
|
59
|
+
- The public API is exported from `src/inline_snapshot/__init__.py`; update `__all__` when adding public symbols.
|
|
60
|
+
- `py.typed` is present, so public typing quality matters.
|
|
61
|
+
|
|
62
|
+
## Pytest Plugin and Configuration Notes
|
|
63
|
+
|
|
64
|
+
- The pytest plugin is registered through `[project.entry-points.pytest11]` as `inline_snapshot = "inline_snapshot.pytest_plugin"`.
|
|
65
|
+
- The main CLI option is `--inline-snapshot=` with flags including `disable`, `short-report`, `report`, `review`, `create`, `update`, `trim`, `fix`, and insider-only `fix-assert`.
|
|
66
|
+
- Project configuration is read from `[tool.inline-snapshot]` in `pyproject.toml`.
|
|
67
|
+
- Custom shortcut options may be generated from inline-snapshot config.
|
|
68
|
+
- xdist is detected and affects snapshot session behavior.
|
|
69
|
+
- Assertion rewriting is registered for `inline_snapshot.extra` and `inline_snapshot.testing._example`.
|
|
70
|
+
|
|
71
|
+
## Documentation
|
|
72
|
+
|
|
73
|
+
Docs are built with MkDocs Material. The nav and plugins are configured in `mkdocs.yml`.
|
|
74
|
+
|
|
75
|
+
- Source docs live under `docs/`.
|
|
76
|
+
- The docs build watches `CONTRIBUTING.md`, `CHANGELOG.md`, `README.md`, `src/inline_snapshot`, and `changelog.d`.
|
|
77
|
+
- Use `hatch run docs:build` before touching docs-heavy changes when feasible.
|
|
78
|
+
|
|
79
|
+
## Changelog and Release Notes
|
|
80
|
+
|
|
81
|
+
For user-visible changes, create a scriv fragment:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
uvx scriv create --add
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Fill in only the relevant headings in the generated `changelog.d/*.md` file. Do not edit `CHANGELOG.md` manually; it is assembled by `scriv collect`.
|
|
88
|
+
|
|
89
|
+
## Current Workspace Caution
|
|
90
|
+
|
|
91
|
+
At the time this file was created, `src/inline_snapshot/_adapter_context.py` already had uncommitted changes. Treat unrelated local modifications as user work and do not revert them.
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
|
|
2
|
+
<a id='changelog-0.34.2'></a>
|
|
3
|
+
# 0.34.2 — 2026-06-19
|
|
4
|
+
|
|
5
|
+
## Fixed
|
|
6
|
+
|
|
7
|
+
- Fixed snapshot updates when pytest reuses stale assertion-rewrite cache files after a test folder is moved, which could leave cached code objects pointing at the old source path ([#369](https://github.com/15r10nk/inline-snapshot/issues/369)).
|
|
8
|
+
|
|
9
|
+
<a id='changelog-0.34.1'></a>
|
|
10
|
+
# 0.34.1 — 2026-06-05
|
|
11
|
+
|
|
12
|
+
## Fixed
|
|
13
|
+
|
|
14
|
+
- Fixed `snapshot_arg()` to use the `fix` category (instead of `create`) when creating an argument with an existing non-ellipsis default argument value.
|
|
15
|
+
|
|
2
16
|
<a id='changelog-0.34.0'></a>
|
|
3
17
|
# 0.34.0 — 2026-05-29
|
|
4
18
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: inline-snapshot
|
|
3
|
-
Version: 0.34.
|
|
3
|
+
Version: 0.34.2
|
|
4
4
|
Summary: golden master/snapshot/approval testing library which puts the values right into your source code
|
|
5
5
|
Project-URL: Changelog, https://15r10nk.github.io/inline-snapshot/latest/changelog/
|
|
6
6
|
Project-URL: Discussions, https://github.com/15r10nk/inline-snapshots/discussions
|
|
@@ -128,7 +128,7 @@ def test_something():
|
|
|
128
128
|
The following examples show how you can use inline-snapshot in your tests. Take a look at the
|
|
129
129
|
[documentation](https://15r10nk.github.io/inline-snapshot/latest) if you want to know more.
|
|
130
130
|
|
|
131
|
-
<!-- inline-snapshot: create fix trim first_block outcome-passed=1 -->
|
|
131
|
+
<!-- inline-snapshot: create fix trim first_block outcome-passed=1 outcome-errors=1 -->
|
|
132
132
|
``` python
|
|
133
133
|
from inline_snapshot import external, outsource, snapshot
|
|
134
134
|
|
|
@@ -87,7 +87,7 @@ def test_something():
|
|
|
87
87
|
The following examples show how you can use inline-snapshot in your tests. Take a look at the
|
|
88
88
|
[documentation](https://15r10nk.github.io/inline-snapshot/latest) if you want to know more.
|
|
89
89
|
|
|
90
|
-
<!-- inline-snapshot: create fix trim first_block outcome-passed=1 -->
|
|
90
|
+
<!-- inline-snapshot: create fix trim first_block outcome-passed=1 outcome-errors=1 -->
|
|
91
91
|
``` python
|
|
92
92
|
from inline_snapshot import external, outsource, snapshot
|
|
93
93
|
|
|
@@ -37,7 +37,7 @@ Example:
|
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
=== "--inline-snapshot=fix"
|
|
40
|
-
<!-- inline-snapshot: fix outcome-passed=1 -->
|
|
40
|
+
<!-- inline-snapshot: fix outcome-passed=1 outcome-errors=1 -->
|
|
41
41
|
``` python hl_lines="5"
|
|
42
42
|
from inline_snapshot import snapshot
|
|
43
43
|
|
|
@@ -181,7 +181,7 @@ def test_function():
|
|
|
181
181
|
|
|
182
182
|
Re-running the test with `--inline-snapshot=fix` will update the snapshot to match the new value of `payload`, while keeping the `date` as a dirty-equals expression:
|
|
183
183
|
|
|
184
|
-
<!-- inline-snapshot: fix outcome-passed=1 -->
|
|
184
|
+
<!-- inline-snapshot: fix outcome-passed=1 outcome-errors=1 -->
|
|
185
185
|
``` python hl_lines="17"
|
|
186
186
|
import datetime
|
|
187
187
|
from dirty_equals import IsNow
|
|
@@ -277,7 +277,7 @@ The snapshot does not need to be fixed when `current_version` changes in the fut
|
|
|
277
277
|
```
|
|
278
278
|
|
|
279
279
|
=== "--inline-snapshot=fix"
|
|
280
|
-
<!-- inline-snapshot: fix outcome-passed=1 -->
|
|
280
|
+
<!-- inline-snapshot: fix outcome-passed=1 outcome-errors=1 -->
|
|
281
281
|
``` python hl_lines="6"
|
|
282
282
|
from inline_snapshot import Is, snapshot
|
|
283
283
|
|
|
@@ -73,7 +73,7 @@ def test_something():
|
|
|
73
73
|
)
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
<!-- inline-snapshot: create fix outcome-passed=1 -->
|
|
76
|
+
<!-- inline-snapshot: create fix outcome-passed=1 outcome-errors=1 -->
|
|
77
77
|
``` python hl_lines="6 7 8 9 10 11 12 13"
|
|
78
78
|
from inline_snapshot import external, snapshot
|
|
79
79
|
|
|
@@ -89,7 +89,7 @@ your code is correct and you want to update your test results.
|
|
|
89
89
|
|
|
90
90
|
|
|
91
91
|
=== "--inline-snapshot=fix"
|
|
92
|
-
<!-- inline-snapshot: fix outcome-passed=1 -->
|
|
92
|
+
<!-- inline-snapshot: fix outcome-passed=1 outcome-errors=1 -->
|
|
93
93
|
``` python hl_lines="9"
|
|
94
94
|
from inline_snapshot import snapshot
|
|
95
95
|
|
|
@@ -218,7 +218,7 @@ def long_string_handler(value, builder: Builder):
|
|
|
218
218
|
return builder.create_external(value)
|
|
219
219
|
```
|
|
220
220
|
|
|
221
|
-
<!-- inline-snapshot: create fix first_block outcome-passed=1 -->
|
|
221
|
+
<!-- inline-snapshot: create fix first_block outcome-passed=1 outcome-errors=1 -->
|
|
222
222
|
``` python title="test_long_strings.py"
|
|
223
223
|
from inline_snapshot import external, snapshot
|
|
224
224
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
# snapshot_arg(...)
|
|
3
2
|
|
|
4
3
|
`snapshot_arg` lets you embed snapshot assertions inside a helper function, so callers don't need to pass `snapshot()` at every call site.
|
|
@@ -86,10 +85,10 @@ def test_numbers():
|
|
|
86
85
|
|
|
87
86
|
2. Asserting this snapshot ensures it gets reset when `expr` stops returning a value.
|
|
88
87
|
|
|
89
|
-
We are using `None` as the default because we want to omit the argument when its value matches the default.
|
|
90
|
-
Running with `--inline-snapshot=
|
|
88
|
+
We are using `None` as the default because we want to omit the argument when its value matches the default.
|
|
89
|
+
Running with `--inline-snapshot=fix` fills in only the arguments whose value differs from the default:
|
|
91
90
|
|
|
92
|
-
<!-- inline-snapshot:
|
|
91
|
+
<!-- inline-snapshot: fix outcome-passed=1 outcome-errors=1 -->
|
|
93
92
|
``` python hl_lines="17 18"
|
|
94
93
|
from inline_snapshot import snapshot_arg
|
|
95
94
|
|
|
@@ -140,7 +139,7 @@ def test_prints():
|
|
|
140
139
|
1. New style — no `snapshot()` needed.
|
|
141
140
|
2. Old style — `snapshot()` is now redundant and can be removed.
|
|
142
141
|
|
|
143
|
-
<!-- inline-snapshot: create outcome-passed=1 outcome-errors=1 -->
|
|
142
|
+
<!-- inline-snapshot: create fix outcome-passed=1 outcome-errors=1 -->
|
|
144
143
|
``` python hl_lines="6 9"
|
|
145
144
|
from inline_snapshot import snapshot
|
|
146
145
|
from inline_snapshot.extra import prints
|
|
@@ -27,7 +27,7 @@ def test_a():
|
|
|
27
27
|
|
|
28
28
|
Inline-snapshot will then populate the empty snapshots.
|
|
29
29
|
|
|
30
|
-
<!-- inline-snapshot: create outcome-passed=1 outcome-errors=1 -->
|
|
30
|
+
<!-- inline-snapshot: create fix outcome-passed=1 outcome-errors=1 -->
|
|
31
31
|
``` python hl_lines="17 18 19 20 21 22 23 24 25 26 27"
|
|
32
32
|
from inline_snapshot import snapshot
|
|
33
33
|
from inline_snapshot.testing import Example
|
|
@@ -280,13 +280,15 @@ class SnapshotArgReference(SnapshotRefBase):
|
|
|
280
280
|
if is_default:
|
|
281
281
|
return
|
|
282
282
|
|
|
283
|
-
|
|
283
|
+
flag = "create" if self._default_value is ... else "fix"
|
|
284
|
+
|
|
285
|
+
new_code = yield from with_flag(self._value._new_code(), flag)
|
|
284
286
|
|
|
285
287
|
# The first positional argument can be inserted positionally;
|
|
286
288
|
# any later position requires keyword form to avoid leaving gaps.
|
|
287
289
|
if self._arg_pos == 0:
|
|
288
290
|
yield CallArg(
|
|
289
|
-
flag=
|
|
291
|
+
flag=flag,
|
|
290
292
|
file=self._value._file,
|
|
291
293
|
node=self._context.expr.node,
|
|
292
294
|
arg_pos=0,
|
|
@@ -296,7 +298,7 @@ class SnapshotArgReference(SnapshotRefBase):
|
|
|
296
298
|
else:
|
|
297
299
|
|
|
298
300
|
yield CallArg(
|
|
299
|
-
flag=
|
|
301
|
+
flag=flag,
|
|
300
302
|
file=self._value._file,
|
|
301
303
|
node=self._context.expr.node,
|
|
302
304
|
arg_pos=None,
|
|
@@ -17,6 +17,7 @@ from rich.syntax import Syntax
|
|
|
17
17
|
from inline_snapshot._external._storage import default_storages
|
|
18
18
|
from inline_snapshot._utils import category_link
|
|
19
19
|
from inline_snapshot._utils import link
|
|
20
|
+
from inline_snapshot.fix_pytest_cache import fix_pytest_cache
|
|
20
21
|
|
|
21
22
|
from . import _config
|
|
22
23
|
from ._change import ChangeBase
|
|
@@ -381,6 +382,7 @@ class SnapshotSession:
|
|
|
381
382
|
def fix_libraries(self):
|
|
382
383
|
pydantic_fix()
|
|
383
384
|
fix_pytest_diff()
|
|
385
|
+
fix_pytest_cache()
|
|
384
386
|
|
|
385
387
|
def show_report(self, con: Console):
|
|
386
388
|
|
|
@@ -118,9 +118,9 @@ def prints(*, stdout: SnapshotArg[str] = "", stderr: SnapshotArg[str] = ""):
|
|
|
118
118
|
print("some error", file=sys.stderr)
|
|
119
119
|
```
|
|
120
120
|
|
|
121
|
-
=== "--inline-snapshot=
|
|
121
|
+
=== "--inline-snapshot=fix"
|
|
122
122
|
|
|
123
|
-
<!-- inline-snapshot:
|
|
123
|
+
<!-- inline-snapshot: fix outcome-passed=1 outcome-errors=1 -->
|
|
124
124
|
``` python hl_lines="7"
|
|
125
125
|
import sys
|
|
126
126
|
from inline_snapshot import snapshot
|
|
@@ -210,7 +210,7 @@ def warns(
|
|
|
210
210
|
|
|
211
211
|
=== "--inline-snapshot=create"
|
|
212
212
|
|
|
213
|
-
<!-- inline-snapshot: create fix outcome-passed=1 -->
|
|
213
|
+
<!-- inline-snapshot: create fix outcome-passed=1 outcome-errors=1 -->
|
|
214
214
|
``` python hl_lines="7"
|
|
215
215
|
from warnings import warn
|
|
216
216
|
from inline_snapshot import snapshot
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import types
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
from typing import Callable
|
|
4
|
+
from typing import Optional
|
|
5
|
+
|
|
6
|
+
import _pytest.assertion.rewrite
|
|
7
|
+
|
|
8
|
+
fixed = False
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def fix_pytest_cache():
|
|
12
|
+
# keep this fix until https://github.com/pytest-dev/pytest/pull/14551 is merged
|
|
13
|
+
global fixed
|
|
14
|
+
|
|
15
|
+
if fixed:
|
|
16
|
+
return
|
|
17
|
+
|
|
18
|
+
_original_read_pyc = _pytest.assertion.rewrite._read_pyc
|
|
19
|
+
|
|
20
|
+
def _read_pyc(
|
|
21
|
+
source: Path, pyc: Path, trace: Callable[[str], None] = lambda x: None
|
|
22
|
+
) -> Optional[types.CodeType]:
|
|
23
|
+
|
|
24
|
+
co = _original_read_pyc(source, pyc, trace)
|
|
25
|
+
|
|
26
|
+
if co is not None:
|
|
27
|
+
source_str = str(source)
|
|
28
|
+
if co.co_filename != source_str:
|
|
29
|
+
co = _replace_code_filenames(co, source_str)
|
|
30
|
+
return co
|
|
31
|
+
|
|
32
|
+
_pytest.assertion.rewrite._read_pyc = _read_pyc
|
|
33
|
+
fixed = True
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _replace_code_filenames(co: types.CodeType, filename: str) -> types.CodeType:
|
|
37
|
+
return co.replace(
|
|
38
|
+
co_filename=filename,
|
|
39
|
+
co_consts=tuple(
|
|
40
|
+
(
|
|
41
|
+
_replace_code_filenames(const, filename)
|
|
42
|
+
if isinstance(const, types.CodeType)
|
|
43
|
+
else const
|
|
44
|
+
)
|
|
45
|
+
for const in co.co_consts
|
|
46
|
+
),
|
|
47
|
+
)
|
|
@@ -431,8 +431,9 @@ uuid.uuid4=f
|
|
|
431
431
|
)
|
|
432
432
|
|
|
433
433
|
if "fix" in flags:
|
|
434
|
-
|
|
435
|
-
|
|
434
|
+
next_outcomes: Store[Dict[str, int]]
|
|
435
|
+
example.run_pytest(outcomes=(next_outcomes := Store()))
|
|
436
|
+
assert "errors" not in next_outcomes.value
|
|
436
437
|
|
|
437
438
|
print("flags:", flags, repr(block.block_options))
|
|
438
439
|
|
|
@@ -476,7 +477,7 @@ uuid.uuid4=f
|
|
|
476
477
|
if changed_lines:
|
|
477
478
|
block.block_options["hl_lines"] = " ".join(changed_lines)
|
|
478
479
|
else:
|
|
479
|
-
|
|
480
|
+
pass # pragma: no cover
|
|
480
481
|
|
|
481
482
|
if "first_block" not in options:
|
|
482
483
|
new_code = re.sub(r" *# *\(\d+\)\!?", "", new_code)
|
|
@@ -16,29 +16,29 @@ from inline_snapshot import snapshot,Is
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def test_dict_report():
|
|
19
|
-
usd = snapshot({"
|
|
19
|
+
usd = snapshot({"code": "USD", "name": "US Dollar", "symbol": "$"})
|
|
20
20
|
usd2 = Is([1,2])
|
|
21
21
|
|
|
22
22
|
price = {
|
|
23
23
|
"amount": 1,
|
|
24
|
+
"b":[1,2],
|
|
24
25
|
"currency": {
|
|
25
26
|
"code": "USD",
|
|
26
27
|
"name": "US Dollar",
|
|
27
28
|
"symbol": "$",
|
|
28
29
|
},
|
|
29
|
-
"b":[1,2]
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
assert price == snapshot({
|
|
33
33
|
"amount": 2,
|
|
34
|
+
"b":usd2,
|
|
34
35
|
"currency": usd,
|
|
35
|
-
"b":usd2
|
|
36
36
|
})
|
|
37
37
|
""").run_pytest(
|
|
38
38
|
["--inline-snapshot=report", "-vv"],
|
|
39
39
|
error=snapshot("""\
|
|
40
40
|
> assert price == snapshot({
|
|
41
|
-
E AssertionError: assert {'amount': 1, 'currency': {'code': 'USD', 'name': 'US Dollar', 'symbol': '$'}, 'b': [1, 2]
|
|
41
|
+
E AssertionError: assert {'amount': 1, 'b': [1, 2], 'currency': {'code': 'USD', 'name': 'US Dollar', 'symbol': '$'}} == {'amount': 2, 'b': [1, 2], 'currency': {'code': 'USD', 'name': 'US Dollar', 'symbol': '$'}}
|
|
42
42
|
E \n\
|
|
43
43
|
E Common items:
|
|
44
44
|
E {'b': [1, 2], 'currency': {'code': 'USD', 'name': 'US Dollar', 'symbol': '$'}}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import shutil
|
|
2
|
+
import sys
|
|
3
|
+
|
|
4
|
+
from inline_snapshot import snapshot
|
|
5
|
+
from inline_snapshot.testing._example import Example
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def test_run_pytester():
|
|
9
|
+
Example(
|
|
10
|
+
{
|
|
11
|
+
"conftest.py": """\
|
|
12
|
+
pytest_plugins = ["pytester"]
|
|
13
|
+
""",
|
|
14
|
+
"test_things.py": """\
|
|
15
|
+
from inline_snapshot import snapshot
|
|
16
|
+
|
|
17
|
+
def test_not_pytester():
|
|
18
|
+
assert "hey" == snapshot()
|
|
19
|
+
|
|
20
|
+
def test_pytester(pytester):
|
|
21
|
+
pytester.runpytest()
|
|
22
|
+
""",
|
|
23
|
+
}
|
|
24
|
+
).run_pytest(
|
|
25
|
+
["--inline-snapshot=create"],
|
|
26
|
+
changed_files=snapshot({"test_things.py": """\
|
|
27
|
+
from inline_snapshot import snapshot
|
|
28
|
+
|
|
29
|
+
def test_not_pytester():
|
|
30
|
+
assert "hey" == snapshot("hey")
|
|
31
|
+
|
|
32
|
+
def test_pytester(pytester):
|
|
33
|
+
pytester.runpytest()
|
|
34
|
+
"""}),
|
|
35
|
+
returncode=1,
|
|
36
|
+
outcomes={"passed": 2, "errors": 1},
|
|
37
|
+
).run_pytest(
|
|
38
|
+
["--inline-snapshot=disable"], outcomes={"passed": 2}
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def test_pytester_moved_folder_with_stale_pyc(pytester, monkeypatch):
|
|
43
|
+
monkeypatch.delenv("PYTEST_XDIST_WORKER", raising=False)
|
|
44
|
+
|
|
45
|
+
original = pytester.path / "original"
|
|
46
|
+
moved = pytester.path / "moved"
|
|
47
|
+
original.mkdir()
|
|
48
|
+
|
|
49
|
+
(original / "test_snapshot.py").write_text(
|
|
50
|
+
"""\
|
|
51
|
+
from inline_snapshot import snapshot
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def test_snapshot():
|
|
55
|
+
assert "value" == snapshot()
|
|
56
|
+
""",
|
|
57
|
+
encoding="utf-8",
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
result = pytester.run(
|
|
61
|
+
sys.executable,
|
|
62
|
+
"-m",
|
|
63
|
+
"pytest",
|
|
64
|
+
"--inline-snapshot=disable",
|
|
65
|
+
"-q",
|
|
66
|
+
str(original),
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
assert result.ret == 1
|
|
70
|
+
|
|
71
|
+
shutil.move(original, moved)
|
|
72
|
+
|
|
73
|
+
result = pytester.run(
|
|
74
|
+
sys.executable,
|
|
75
|
+
"-m",
|
|
76
|
+
"pytest",
|
|
77
|
+
"--inline-snapshot=create",
|
|
78
|
+
"-q",
|
|
79
|
+
str(moved),
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
assert result.ret == 1
|
|
83
|
+
result.stdout.fnmatch_lines(["*1 passed*"])
|
|
84
|
+
result.stderr.no_fnmatch_line("*AssertionError:*")
|
|
85
|
+
|
|
86
|
+
result = pytester.run(
|
|
87
|
+
sys.executable,
|
|
88
|
+
"-m",
|
|
89
|
+
"pytest",
|
|
90
|
+
"--inline-snapshot=disable",
|
|
91
|
+
"-q",
|
|
92
|
+
str(moved),
|
|
93
|
+
)
|
|
94
|
+
assert result.ret == 0
|
|
@@ -57,7 +57,7 @@ def test_a():
|
|
|
57
57
|
check_value(4)
|
|
58
58
|
check_value(8,8)
|
|
59
59
|
""").run_inline(
|
|
60
|
-
["--inline-snapshot=fix,
|
|
60
|
+
["--inline-snapshot=fix,trim"],
|
|
61
61
|
changed_files=snapshot({"tests/test_something.py": """\
|
|
62
62
|
from inline_snapshot._snapshot_arg import snapshot_arg
|
|
63
63
|
|
|
@@ -84,7 +84,7 @@ def test_a():
|
|
|
84
84
|
check_value(4)
|
|
85
85
|
check_value(8,expected=8)
|
|
86
86
|
""").run_inline(
|
|
87
|
-
["--inline-snapshot=fix,
|
|
87
|
+
["--inline-snapshot=fix,trim"],
|
|
88
88
|
changed_files=snapshot({"tests/test_something.py": """\
|
|
89
89
|
from inline_snapshot._snapshot_arg import snapshot_arg
|
|
90
90
|
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
from inline_snapshot import snapshot
|
|
2
|
-
from inline_snapshot.testing._example import Example
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
def test_run_pytester():
|
|
6
|
-
Example(
|
|
7
|
-
{
|
|
8
|
-
"conftest.py": """\
|
|
9
|
-
pytest_plugins = ["pytester"]
|
|
10
|
-
""",
|
|
11
|
-
"test_things.py": """\
|
|
12
|
-
from inline_snapshot import snapshot
|
|
13
|
-
|
|
14
|
-
def test_not_pytester():
|
|
15
|
-
assert "hey" == snapshot()
|
|
16
|
-
|
|
17
|
-
def test_pytester(pytester):
|
|
18
|
-
pytester.runpytest()
|
|
19
|
-
""",
|
|
20
|
-
}
|
|
21
|
-
).run_pytest(
|
|
22
|
-
["--inline-snapshot=create"],
|
|
23
|
-
changed_files=snapshot({"test_things.py": """\
|
|
24
|
-
from inline_snapshot import snapshot
|
|
25
|
-
|
|
26
|
-
def test_not_pytester():
|
|
27
|
-
assert "hey" == snapshot("hey")
|
|
28
|
-
|
|
29
|
-
def test_pytester(pytester):
|
|
30
|
-
pytester.runpytest()
|
|
31
|
-
"""}),
|
|
32
|
-
returncode=1,
|
|
33
|
-
outcomes={"passed": 2, "errors": 1},
|
|
34
|
-
).run_pytest(
|
|
35
|
-
["--inline-snapshot=disable"], outcomes={"passed": 2}
|
|
36
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{inline_snapshot-0.34.0 → inline_snapshot-0.34.2}/.github/workflows/deploy_development_docs.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|