diff --git a/approvaltests/asserts.py b/approvaltests/asserts.py index f0d5dc21..e90c43ca 100644 --- a/approvaltests/asserts.py +++ b/approvaltests/asserts.py @@ -21,7 +21,7 @@ def __init__(self, file_path: str, extension: None = None) -> None: self.file_path = file_path @override - def get_approved_filename(self, base: str | None = None) -> str: + def get_approved_filename(self) -> str: return self.file_path diff --git a/approvaltests/core/namer.py b/approvaltests/core/namer.py index 0988844d..017125d0 100644 --- a/approvaltests/core/namer.py +++ b/approvaltests/core/namer.py @@ -8,9 +8,9 @@ class Namer(ABC): RECEIVED = "." + RECEIVED_WITHOUT_DOT @abstractmethod - def get_received_filename(self, base: str | None = None) -> str: + def get_received_filename(self) -> str: pass @abstractmethod - def get_approved_filename(self, base: str | None = None) -> str: + def get_approved_filename(self) -> str: pass diff --git a/approvaltests/core/scenario_namer.py b/approvaltests/core/scenario_namer.py index 97a9f060..04eb153b 100644 --- a/approvaltests/core/scenario_namer.py +++ b/approvaltests/core/scenario_namer.py @@ -23,14 +23,12 @@ def get_basename(self) -> str: return f"{basename}.{scenarios}" @override - def get_approved_filename(self, base: str | None = None) -> str: - base = base or self.get_basename() - return self.base_namer.get_approved_filename(base) + def get_approved_filename(self) -> str: + return self.get_basename() + Namer.APPROVED + self.base_namer.extension_with_dot @override - def get_received_filename(self, base: str | None = None) -> str: - base = base or self.get_basename() - return self.base_namer.get_received_filename(base) + def get_received_filename(self) -> str: + return self.get_basename() + Namer.RECEIVED + self.base_namer.extension_with_dot def set_extension(self, extension: str) -> None: self.base_namer.set_extension(extension) diff --git a/approvaltests/namer/cli_namer.py b/approvaltests/namer/cli_namer.py index 15c5f879..d3ab89c7 100644 --- a/approvaltests/namer/cli_namer.py +++ b/approvaltests/namer/cli_namer.py @@ -8,11 +8,11 @@ def __init__(self, test_id: str) -> None: self.test_id = test_id @override - def get_received_filename(self, base: str | None = None) -> str: + def get_received_filename(self) -> str: return f"{self.test_id}.received.txt" @override - def get_approved_filename(self, base: str | None = None) -> str: + def get_approved_filename(self) -> str: return f"{self.test_id}.approved.txt" def get_basename(self) -> str: diff --git a/approvaltests/namer/inline_comparator.py b/approvaltests/namer/inline_comparator.py index 97f804d0..f25c1483 100644 --- a/approvaltests/namer/inline_comparator.py +++ b/approvaltests/namer/inline_comparator.py @@ -16,14 +16,14 @@ class InlineComparator(Namer): @override - def get_approved_filename(self, base: str | None = None) -> str: + def get_approved_filename(self) -> str: file = tempfile.NamedTemporaryFile(suffix=".approved.txt", delete=False).name docs = self.get_test_method_doc_string() Path(file).write_text(docs, encoding="utf-8") return file @override - def get_received_filename(self, base: str | None = None) -> str: + def get_received_filename(self) -> str: return tempfile.NamedTemporaryFile(suffix=".received.txt", delete=False).name @staticmethod diff --git a/approvaltests/namer/namer_base.py b/approvaltests/namer/namer_base.py index a2b73187..d3fbff29 100644 --- a/approvaltests/namer/namer_base.py +++ b/approvaltests/namer/namer_base.py @@ -45,13 +45,13 @@ def get_basename(self) -> str: return str(os.path.join(self.get_directory(), subdirectory, file_name)) @override - def get_received_filename(self, base: str | None = None) -> str: - base = base or self.get_basename() + def get_received_filename(self) -> str: + base = self.get_basename() return base + Namer.RECEIVED + self.extension_with_dot @override - def get_approved_filename(self, base: str | None = None) -> str: - base = base or self.get_basename() + def get_approved_filename(self) -> str: + base = self.get_basename() return base + Namer.APPROVED + self.extension_with_dot def set_extension(self, extension: str) -> None: diff --git a/approvaltests/namer/templated_custom_namer.py b/approvaltests/namer/templated_custom_namer.py index 1c4f3a5c..635bf1f0 100644 --- a/approvaltests/namer/templated_custom_namer.py +++ b/approvaltests/namer/templated_custom_namer.py @@ -24,11 +24,11 @@ def set_extension(self, extension_with_dot: str) -> None: self.namer_parts.set_extension(extension_with_dot) @override - def get_received_filename(self, base: str | None = None) -> str: + def get_received_filename(self) -> str: return self.format_filename(self.RECEIVED_WITHOUT_DOT) @override - def get_approved_filename(self, base: str | None = None) -> str: + def get_approved_filename(self) -> str: return self.format_filename(self.APPROVED_WITHOUT_DOT) def format_filename(self, approved_or_received: str) -> str: diff --git a/docs/explanation/namer_architecture.md b/docs/explanation/namer_architecture.md index 418d8dc9..064e284a 100644 --- a/docs/explanation/namer_architecture.md +++ b/docs/explanation/namer_architecture.md @@ -1,8 +1,8 @@ ```mermaid classDiagram class Namer { - +get_received_filename(base: Optional[str]): str - +get_approved_filename(base: Optional[str]): str + +get_received_filename(): str + +get_approved_filename(): str } class NamerBase { @@ -15,8 +15,8 @@ classDiagram +config_directory(): str +get_config(): Dict +get_basename(): str - +get_received_filename(base: Optional[str]): str - +get_approved_filename(base: Optional[str]): str + +get_received_filename(): str + +get_approved_filename(): str +set_extension(extension: str): None } Namer <|-- NamerBase @@ -44,8 +44,8 @@ classDiagram -namer_parts: StackFrameNamer +__init__(template: str): None +set_extension(extension_with_dot: str): None - +get_received_filename(base: Optional[str]): str - +get_approved_filename(base: Optional[str]): str + +get_received_filename(): str + +get_approved_filename(): str +format_filename(approved_or_received: str): str } Namer <|-- TemplatedCustomNamer diff --git a/tests/approved_files/test_scenarios.test_manual_scenarios.approved.txt b/tests/approved_files/test_scenarios.test_manual_scenarios.approved.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/approved_files/test_scenarios.test_manual_scenarios_with_blocking.approved.txt b/tests/approved_files/test_scenarios.test_manual_scenarios_with_blocking.approved.txt new file mode 100644 index 00000000..2e65efe2 --- /dev/null +++ b/tests/approved_files/test_scenarios.test_manual_scenarios_with_blocking.approved.txt @@ -0,0 +1 @@ +a \ No newline at end of file diff --git a/tests/approved_files/test_scenarios.test_scenarios.approved.txt b/tests/approved_files/test_scenarios.test_scenarios.approved.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/approved_files/test_scenarios.test_scenarios_old.approved.txt b/tests/approved_files/test_scenarios.test_scenarios_old.approved.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/test_namer.py b/tests/test_namer.py index 736906e8..1be69f3f 100644 --- a/tests/test_namer.py +++ b/tests/test_namer.py @@ -33,17 +33,17 @@ def test_basename(self) -> None: ) def test_received_name(self) -> None: - filename = StackFrameNamer().get_received_filename("./stuff") - self.assertEqual(filename, "./stuff.received.txt") + filename = StackFrameNamer().get_received_filename() + self.assertTrue(filename.endswith("NamerTests.test_received_name.received.txt"), filename) def test_approved_name(self) -> None: - filename = StackFrameNamer().get_approved_filename("./stuff") - self.assertEqual(filename, "./stuff.approved.txt") + filename = StackFrameNamer().get_approved_filename() + self.assertTrue(filename.endswith("NamerTests.test_approved_name.approved.txt"), filename) def test_alternative_extension(self) -> None: n = StackFrameNamer(extension=".html") - filename = n.get_approved_filename("./stuff") - self.assertEqual(filename, "./stuff.approved.html") + filename = n.get_approved_filename() + self.assertTrue(filename.endswith("NamerTests.test_alternative_extension.approved.html"), filename) def test_additional_information(self) -> None: assert_ends_with(