All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
From v1.0.0 onwards, this project adheres to Semantic Versioning. Pre-v1, breaking changes are indicated via a minor release, while all other changes fall under patches. At any time, you can see what's in progress for a version by filtering GitHub issues by milestone.
4.8.0 (2024-11-23)
4.7.2 (2024-10-06)
4.7.1 (2024-08-23)
4.7.0 (2024-08-23)
- Added a new CLI flag: --snapshot-patch-pycharm-diff (a4dfcf5)
4.6.4 (2024-08-21)
4.6.3 (2024-08-21)
4.6.2 (2024-08-21)
4.6.2 (2024-08-21)
4.6.1 (2024-02-07)
4.6.0 (2023-10-24)
4.5.0 (2023-09-01)
4.4.0 (2023-08-29)
4.3.0 (2023-08-28)
4.2.2 (2023-08-28)
4.2.1 (2023-08-21)
4.2.0 (2023-08-21)
4.1.1 (2023-08-17)
4.1.0 (2023-08-16)
4.0.8 (2023-07-20)
4.0.7 (2023-07-20)
4.0.6 (2023-07-11)
4.0.5 (2023-07-04)
4.0.4 (2023-06-19)
4.0.3 (2023-06-19)
4.0.2 (2023-04-25)
4.0.1 (2023-02-21)
4.0.0 (2023-02-02)
- defer snapshot writes until end of session (#606) (68f1d5f)
- ensure all pytest options are serializable (#667) (e8ed9f2)
- improve pytest-xdist compatibility (9b9090f)
- lru_cache on snapshot reads (#629) (c1a675f)
- remove legacy path usage to support no:legacypath, closes #677 (#684) (6385979)
- simplify data serializer for ambr (#676) (3d296e1)
- write performance improvements, api clarity (#645) (2c31c39)
- json: serialize None as null, close #622 (c330680)
- numerically sort snapshots if possible, close #657 (4ca0716)
- serializer: preserve key ordering of OrderedDict (0a2289a)
- support overriding the amber serializer class (#683) (662c93f)
- update python version, pytest version (#658) (c360b95)
-
Serializers may now throw a TaintedSnapshotError which will tell the user to regenerate the snapshot even if the underlying data has not changed. This is to support rolling out more subtle changes to the serializers, such as the introduction of serializer metadata.
-
Renamed DataSerializer to AmberDataSerializer.
-
serializer: Key order is now preserved if using OrderedDict in both the Amber serializer and JSON serializer.
-
json: The JSONSnapshotExtension now serializes Python's None as "null" rather than "None".
-
Raise minimum python version to 3.8.1 and min. pytest version to v7.
-
PyTestLocation.filename has been renamed to .basename
-
refactor: add test_location kwarg to get_snapshot_name
-
refactor: get_snapshot_name is now static as a classmethod
-
refactor: remove pre and post read/write hooks
-
Pre and post read/write hooks have been removed without replacement to make internal refactor simpler. Please open a GitHub issue if you have a use case for these hooks.
-
refactor: rename Fossil to Collection
-
The term 'fossil' has been replaced by the clearer term 'collection'.
-
refactor: pass test_location to read_snapshot
-
refactor: remove singular write_snapshot method
-
refactor: dirname property to method
-
refactor: pass test_location to discover_snapshots
-
refactor: remove usage of self.test_location
-
refactor: make write_snapshot a classmethod
-
refactor: do not instantiate extension with test_location
-
Numerous instance methods have been refactored as classmethods.
3.0.6 (2022-12-30)
- ensure all pytest options are serializable (#667) (e320d7b)
- improve pytest-xdist compatibility (8739194)
3.0.5 (2022-11-08)
3.0.4 (2022-11-03)
3.0.3 (2022-11-03)
3.0.2 (2022-09-23)
- update classifiers (no material change) (43d78ec)
3.0.1 (2022-09-23)
3.0.0 (2022-08-11)
- Drop Python 3.6 support due to end of life.
2.3.1 (2022-07-07)
2.3.0 (2022-05-12)
2.2.0 (2022-05-12)
2.1.0 (2022-05-11)
2.0.0 (2022-04-10)
- amber: change serialization to be py syntax like (#505) (b64b965)
- release syrupy v2 (#575) (bc8b3a9)
- amber: update to serialization requires regeneration of snapshots
Migration Guide
pytest --snapshot-update
to regenerate amber snapshots
1.7.4 (2022-02-16)
1.7.3 (2022-01-25)
1.7.2 (2022-01-25)
1.7.1 (2022-01-25)
1.7.0 (2022-01-14)
- ignore, this commit is to force a release (effeadb)
- add JSON extension as alternative to amber (b366082)
1.6.0 (2022-01-14)
1.5.0 (2021-11-03)
1.4.7 (2021-10-13)
1.4.6 (2021-10-06)
1.4.5 (2021-08-29)
1.4.4 (2021-08-20)
1.4.3 (2021-08-20)
1.4.2 (2021-08-18)
1.4.1 (2021-08-18)
1.4.0 (2021-08-02)
1.3.1 (2021-06-20)
1.3.0 (2021-06-05)
1.2.4 (2021-06-01)
1.2.3 (2021-05-12)
1.2.2 (2021-03-18)
1.1.0 (2020-12-01)
1.0.0 (2020-11-13)
- Release v1.0.0
0.9.0 (2020-11-13)
0.8.4 (2020-10-30)
0.8.3 (2020-10-30)
- assertion exception shows error at correct location (#402) (d46bba4)
- only perform session finish on test items ran (#401) (61a670f)
0.8.2 (2020-10-30)
0.8.1 (2020-10-29)
0.8.0 (2020-10-27)
- Line control characters are normalised when snapshots are generated i.e.
\r
and\n
characters are all written as\n
. This is to allow interoperability of snapshots between operating systems that use disparate line control characters.
0.7.2 (2020-09-20)
0.7.1 (2020-09-05)
0.7.0 (2020-08-24)
0.6.1 (2020-07-29)
0.6.0 (2020-07-12)
0.5.2 (2020-07-09)
0.5.1 (2020-06-12)
0.5.0 (2020-06-09)
0.4.4 (2020-06-02)
0.4.3 (2020-05-27)
- Update setup.py, so that it allows for any Python 3.6+ version to be used (25c2688)
0.4.2 (2020-04-22)
0.4.1 (2020-04-19)
0.4.0 (2020-04-19)
- remove added trailing whitespace from multiline string (24f3d57)
0.3.12 (2020-04-19)
0.3.11 (2020-04-17)
0.3.10 (2020-04-15)
0.3.9 (2020-04-08)
0.3.8 (2020-04-03)
0.3.7 (2020-03-24)
0.3.6 (2020-03-10)
0.3.5 (2020-03-08)
0.3.4 (2020-03-08)
- Conversion of all
os.path
andos.walk
calls to usepathlib
instead, settingpathlib
as the new preferred way of doing path operations (#130) - Add
--snapshot-default-extension
option to specify extension class via pytest cli (#132) - Fix bug where snapshot diffs were erroneously printed (#135)
- Fix bug where snapshot names were incorrectly matching tests (#136)
- Fix bug where deleted snapshots where incorrectly colored (#136)
- Fix bug where targeting specific test nodes did not filter out unused snapshots (#139)
- Fix bug where snapshot report was printed out before the pytest report (#144)
- Fix bug where untargeted snapshots would be deleted when using pytest in targeted mode (#123)
- Fix bug where snapshot files were not cleaned up when running specific test files (#127)
- Fix bug where targeting specific test nodes in a test file was not supported (#127)
- Fix bug where targeting specific test modules using pyargs was not supported (#127)
- Fix bug where newline control characters were being translated based on platform (#113)
- Adds support for named tuple fields (#108)
- Add trailing commas to class fields (#108)
- Specify explicit version range for pytest peer dependency (#111)
- Fix issue with using hashables as dict keys or in sets (#103)
- Add support for custom objects repr (#101)
- Add support for nested test classes (#99)
- Remove
_snapshot_subdirectory_name
fromSnapshotFossilizer
(#99)
- Initial release respecting Keep a Changelog.