approval-utilities 14.3.0__tar.gz → 14.4.0__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.

Potentially problematic release.


This version of approval-utilities might be problematic. Click here for more details.

Files changed (71) hide show
  1. {approval_utilities-14.3.0/approval_utilities.egg-info → approval_utilities-14.4.0}/PKG-INFO +9 -2
  2. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/README.md +1 -1
  3. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utils.py +6 -0
  4. {approval_utilities-14.3.0 → approval_utilities-14.4.0/approval_utilities.egg-info}/PKG-INFO +9 -2
  5. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities.egg-info/SOURCES.txt +1 -0
  6. approval_utilities-14.4.0/tests/test_approvaltests_temp_dir.py +8 -0
  7. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_fileapprover.py +43 -3
  8. approval_utilities-14.4.0/version.py +1 -0
  9. approval_utilities-14.3.0/version.py +0 -1
  10. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/LICENSE +0 -0
  11. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/MANIFEST.in +0 -0
  12. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/__init__.py +0 -0
  13. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/approvaltests/__init__.py +0 -0
  14. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/approvaltests/core/__init__.py +0 -0
  15. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/approvaltests/core/executable_command.py +0 -0
  16. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/approvaltests/core/verifiable.py +0 -0
  17. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/approvaltests/core/verify_parameters.py +0 -0
  18. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/list_utils.py +0 -0
  19. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/py.typed +0 -0
  20. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/__init__.py +0 -0
  21. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/clipboard_utilities.py +0 -0
  22. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/deprecated.py +0 -0
  23. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/exceptions/__init__.py +0 -0
  24. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/exceptions/exception_collector.py +0 -0
  25. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/exceptions/exception_utils.py +0 -0
  26. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/exceptions/multiple_exceptions.py +0 -0
  27. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/logger/__init__.py +0 -0
  28. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/logger/logging_instance.py +0 -0
  29. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/logger/simple_logger.py +0 -0
  30. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/map_reduce.py +0 -0
  31. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/markdown_table.py +0 -0
  32. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/multiline_string_utils.py +0 -0
  33. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/os_utilities.py +0 -0
  34. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/persistence/__init__.py +0 -0
  35. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/persistence/loader.py +0 -0
  36. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/persistence/saver.py +0 -0
  37. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/stack_frame_utilities.py +0 -0
  38. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/string_wrapper.py +0 -0
  39. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/time_utilities.py +0 -0
  40. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities/utilities/wrapper.py +0 -0
  41. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities.egg-info/dependency_links.txt +0 -0
  42. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/approval_utilities.egg-info/top_level.txt +0 -0
  43. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/requirements.prod.extras.txt +0 -0
  44. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/requirements.prod.required.txt +0 -0
  45. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/requirements.prod.txt +0 -0
  46. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/setup.cfg +0 -0
  47. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/setup.py +0 -0
  48. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/setup_utils.py +0 -0
  49. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_asserts.py +0 -0
  50. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_build.py +0 -0
  51. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_combinations.py +0 -0
  52. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_compare_file_lists.py +0 -0
  53. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_custom_printers.py +0 -0
  54. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_example_numpy.py +0 -0
  55. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_exception_utils.py +0 -0
  56. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_find_stale_approved_files.py +0 -0
  57. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_inline_approvals.py +0 -0
  58. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_list.py +0 -0
  59. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_multiline_string_utils.py +0 -0
  60. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_namer.py +0 -0
  61. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_options.py +0 -0
  62. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_pairwise_combinations.py +0 -0
  63. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_parse_inputs.py +0 -0
  64. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_python_patterns.py +0 -0
  65. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_scenarios.py +0 -0
  66. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_simple_logger.py +0 -0
  67. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_split_code.py +0 -0
  68. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_verify.py +0 -0
  69. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_verify_all.py +0 -0
  70. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_verify_argument_parser.py +0 -0
  71. {approval_utilities-14.3.0 → approval_utilities-14.4.0}/tests/test_writer.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: approval_utilities
3
- Version: 14.3.0
3
+ Version: 14.4.0
4
4
  Summary: Utilities for your production code that work well with approvaltests
5
5
  Home-page: https://github.com/approvals/ApprovalTests.Python
6
6
  Author: ApprovalTests Contributors
@@ -21,3 +21,10 @@ Classifier: Topic :: Software Development :: Libraries
21
21
  Classifier: Topic :: Utilities
22
22
  Requires-Python: >=3.8
23
23
  License-File: LICENSE
24
+ Dynamic: author
25
+ Dynamic: author-email
26
+ Dynamic: classifier
27
+ Dynamic: home-page
28
+ Dynamic: license-file
29
+ Dynamic: requires-python
30
+ Dynamic: summary
@@ -307,7 +307,7 @@ mock >= 5.1.0 # For verify_logging
307
307
 
308
308
  ### Weekly Ensemble
309
309
 
310
- The best way to contribute is to [join our weekly mob/ensemble](./docs/Contribute.md)
310
+ The best way to contribute is to [join our weekly mob/ensemble](./docs/Contribute.md).
311
311
 
312
312
  ### Pull Requests
313
313
 
@@ -3,6 +3,7 @@ import json
3
3
  import os
4
4
 
5
5
  from copy import deepcopy
6
+ from pathlib import Path
6
7
 
7
8
  from typing import Callable, Dict, TypeVar
8
9
 
@@ -92,3 +93,8 @@ _K = TypeVar("_K")
92
93
 
93
94
  def filter_values(filter: Callable[[_V], bool], a_dict: Dict[_K, _V]) -> Dict[_K, _V]:
94
95
  return {k: v for k, v in a_dict.items() if filter(v)}
96
+
97
+
98
+ def append_to_file(file: Path, text: str):
99
+ with file.open(mode="a") as f:
100
+ f.write(text)
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: approval_utilities
3
- Version: 14.3.0
3
+ Version: 14.4.0
4
4
  Summary: Utilities for your production code that work well with approvaltests
5
5
  Home-page: https://github.com/approvals/ApprovalTests.Python
6
6
  Author: ApprovalTests Contributors
@@ -21,3 +21,10 @@ Classifier: Topic :: Software Development :: Libraries
21
21
  Classifier: Topic :: Utilities
22
22
  Requires-Python: >=3.8
23
23
  License-File: LICENSE
24
+ Dynamic: author
25
+ Dynamic: author-email
26
+ Dynamic: classifier
27
+ Dynamic: home-page
28
+ Dynamic: license-file
29
+ Dynamic: requires-python
30
+ Dynamic: summary
@@ -42,6 +42,7 @@ approval_utilities/utilities/logger/simple_logger.py
42
42
  approval_utilities/utilities/persistence/__init__.py
43
43
  approval_utilities/utilities/persistence/loader.py
44
44
  approval_utilities/utilities/persistence/saver.py
45
+ tests/test_approvaltests_temp_dir.py
45
46
  tests/test_asserts.py
46
47
  tests/test_build.py
47
48
  tests/test_combinations.py
@@ -0,0 +1,8 @@
1
+ from approvaltests.internals.logs.log_commons import APPROVAL_TESTS_TEMP_DIRECTORY
2
+
3
+
4
+ def test_temp_directory_is_setup_automatically():
5
+ # setup happens automatically
6
+ gitignore_path = APPROVAL_TESTS_TEMP_DIRECTORY / ".gitignore"
7
+ contents = gitignore_path.read_text()
8
+ assert contents == "*"
@@ -6,9 +6,11 @@ from approvaltests.file_approver import FileApprover
6
6
  from approvaltests.reporters.generic_diff_reporter_factory import (
7
7
  GenericDiffReporterFactory,
8
8
  )
9
+ from approvaltests.reporters.report_quietly import ReportQuietly
9
10
  from approvaltests.reporters.testing_reporter import ReporterForTesting
10
11
  from approvaltests.string_writer import StringWriter
11
- from approvaltests.approved_file_log import ApprovedFilesLog
12
+ from approvaltests.internals.logs.approved_file_log import ApprovedFilesLog
13
+ from approvaltests.internals.logs.failed_comparison_log import FailedComparisonLog
12
14
 
13
15
 
14
16
  class FileApproverTests(unittest.TestCase):
@@ -55,11 +57,12 @@ class FileApproverTests(unittest.TestCase):
55
57
 
56
58
  def test_approved_file_is_logged(self):
57
59
  name = approvals.get_default_namer().get_approved_filename()
58
- log = ApprovedFilesLog.get_approved_files_log()
59
- log_lines = log.read_text().split("\n")
60
60
  name1 = name.replace(".txt", ".txt1")
61
61
  name2 = name.replace(".txt", ".txt2")
62
62
 
63
+ log = ApprovedFilesLog.get_approved_files_log()
64
+ log_lines = log.read_text().split("\n")
65
+
63
66
  # check log is cleared
64
67
  self.assertNotIn(name1, log_lines)
65
68
  self.assertNotIn(name2, log_lines)
@@ -72,3 +75,40 @@ class FileApproverTests(unittest.TestCase):
72
75
  log_lines = log.read_text().split("\n")
73
76
  self.assertIn(name1, log_lines)
74
77
  self.assertIn(name2, log_lines)
78
+
79
+ def test_failed_comparison_is_logged(self):
80
+ approved_name = approvals.get_default_namer().get_approved_filename()
81
+ received_name = approvals.get_default_namer().get_received_filename()
82
+ expected_line = f"{received_name} -> {approved_name}"
83
+
84
+ name1 = expected_line.replace(".txt", ".txt1")
85
+ name2 = expected_line.replace(".txt", ".txt2")
86
+
87
+ log = FailedComparisonLog.get_failed_comparison_log()
88
+
89
+ log_lines = log.read_text().split("\n")
90
+
91
+ # check log is cleared
92
+ self.assertNotIn(name1, log_lines)
93
+ self.assertNotIn(name2, log_lines)
94
+
95
+ # fail a verify and log it
96
+ self.run_a_failing_test(".txt1")
97
+ self.run_a_failing_test(".txt2")
98
+
99
+ # assert that the approved file is logged
100
+ log_lines = log.read_text().split("\n")
101
+ self.assertIn(name1, log_lines)
102
+ self.assertIn(name2, log_lines)
103
+
104
+ def run_a_failing_test(self, extension):
105
+ try:
106
+ verify(
107
+ "a",
108
+ options=Options()
109
+ .for_file.with_extension(extension)
110
+ .with_reporter(ReportQuietly()),
111
+ )
112
+ self.fail("expected to fail")
113
+ except:
114
+ pass
@@ -0,0 +1 @@
1
+ version_number = "v14.4.0"
@@ -1 +0,0 @@
1
- version_number = "v14.3.0"