From 6bdb4184fb7224e0baedea2601595c054c99366b Mon Sep 17 00:00:00 2001 From: Emmanuel Ogbizi-Ugbe Date: Tue, 3 Dec 2019 23:54:23 -0500 Subject: [PATCH] cr: move filename length logic into clean method --- src/syrupy/plugins/image/io.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/syrupy/plugins/image/io.py b/src/syrupy/plugins/image/io.py index d6faf24c..18a83ccb 100644 --- a/src/syrupy/plugins/image/io.py +++ b/src/syrupy/plugins/image/io.py @@ -19,9 +19,9 @@ def discover_snapshots(self, filepath: str) -> Set[str]: return {os.path.splitext(os.path.basename(filepath))[0]} def get_file_basename(self, index: int) -> str: - ext = f".{self.extension}" + maybe_extension = f".{self.extension}" if self.extension else "" sanitized_name = self._clean_filename(self.get_snapshot_name(index=index)) - return f"{sanitized_name[:255 - len(ext)]}{ext}" + return f"{sanitized_name}{maybe_extension}" def _get_snapshot_dirname(self): return os.path.splitext(os.path.basename(str(self.test_location.filename)))[0] @@ -48,4 +48,5 @@ def _write_file(self, filepath: str, data: Any): def _clean_filename(self, filename: str) -> str: filename = str(filename).strip().replace(" ", "_") - return re.sub(r"(?u)[^-\w.]", "", filename) + max_filename_length = 255 - (len(self.extension) if self.extension else 0) + return re.sub(r"(?u)[^-\w.]", "", filename)[:max_filename_length]