From 64b42653d1c3af5b56347ccd9afd24e87b29aa18 Mon Sep 17 00:00:00 2001 From: Emmanuel Ogbizi Date: Thu, 20 Jul 2023 17:35:51 -0400 Subject: [PATCH] fix: diffing excessively large snapshot lines (#778) * test: fix invalid testcase * fix: diffing excessively large snapshot lines * test: snapshot diff for better test representation * refactor: include first character change in generated diff --- src/syrupy/constants.py | 1 + src/syrupy/utils.py | 65 ++- .../extensions/__snapshots__/test_base.ambr | 430 ++++++++++++++++++ .../test_unicode[greek u1ff4].raw | 2 +- tests/syrupy/extensions/test_base.py | 21 +- tests/syrupy/extensions/test_single_file.py | 2 +- 6 files changed, 498 insertions(+), 23 deletions(-) diff --git a/src/syrupy/constants.py b/src/syrupy/constants.py index 24f4b089..3f49b80c 100644 --- a/src/syrupy/constants.py +++ b/src/syrupy/constants.py @@ -9,6 +9,7 @@ SYMBOL_CARRIAGE = "␍" # U+240D DIFF_LINE_COUNT_LIMIT = 100 +DIFF_LINE_WIDTH_LIMIT = 1000 DISABLE_COLOR_ENV_VAR = "ANSI_COLORS_DISABLED" DISABLE_COLOR_ENV_VARS = {DISABLE_COLOR_ENV_VAR, "NO_COLOR"} diff --git a/src/syrupy/utils.py b/src/syrupy/utils.py index b52d6bd8..6d5f5444 100644 --- a/src/syrupy/utils.py +++ b/src/syrupy/utils.py @@ -9,12 +9,14 @@ Any, Dict, Iterator, - List, + Sequence, ) from .constants import ( DIFF_LINE_COUNT_LIMIT, + DIFF_LINE_WIDTH_LIMIT, SNAPSHOT_DIRNAME, + SYMBOL_ELLIPSIS, ) from .exceptions import FailedToLoadModuleMember @@ -102,22 +104,67 @@ def obj_attrs(obj: Any, attrs: Dict[str, Any]) -> Iterator[None]: def qdiff( - lines_a: "List[str]", - lines_b: "List[str]", + lines_a: "Sequence[str]", + lines_b: "Sequence[str]", *, line_diff_limit: int = DIFF_LINE_COUNT_LIMIT, + line_size_limit: int = DIFF_LINE_WIDTH_LIMIT, ) -> "Iterator[str]": """ Wrapper around difflib ndiff to bail early https://github.com/python/cpython/issues/65452 """ - first_diff_idx = 0 + first_diff_line_idx = 0 + first_diff_char_idx = 0 for i in range(max(len(lines_a), len(lines_b))): - if lines_a[i : i + 1] != lines_b[i : i + 1]: # noqa E203 - first_diff_idx = i + line_a = "".join(lines_a[i : i + 1]) # noqa E203 + line_b = "".join(lines_b[i : i + 1]) # noqa E203 + if line_a != line_b: + first_diff_line_idx = i + for j in range(max(len(line_a), len(line_b))): + char_a = line_a[j : j + 1] # noqa E203 + char_b = line_b[j : j + 1] # noqa E203 + if char_a != char_b: + first_diff_char_idx = j + break break - from_idx = max(first_diff_idx - line_diff_limit, 0) - to_idx = first_diff_idx + line_diff_limit - return ndiff(lines_a[from_idx:to_idx], lines_b[from_idx:to_idx]) + def adjust_lines(lines: "Sequence[str]") -> "Sequence[str]": + line_idx_from = max(first_diff_line_idx - line_diff_limit, 0) + line_idx_to = first_diff_line_idx + line_diff_limit + + symbol_hidden_line = SYMBOL_ELLIPSIS + SYMBOL_ELLIPSIS + return ( + # include an indicator in the diff if this was not the first line + ([symbol_hidden_line] if line_idx_from > 0 else []) + # show included lines with the ends truncated off + + [ + adj_line + for n, line in enumerate(lines[line_idx_from:line_idx_to]) + # adjust the first line shown to be from the first different spotted + for line_start, line_end in [ + ( + ( + max(first_diff_char_idx - line_size_limit, 0) + if n == line_idx_from + else 0 + ), + ( + first_diff_char_idx + line_size_limit + if n == line_idx_from + else line_size_limit + ), + ), + ] + for adj_line in [ + (SYMBOL_ELLIPSIS if line_start > 0 else "") + + line[line_start:line_end] + + (SYMBOL_ELLIPSIS if line_end < len(line) else "") + ] + ] + # include an indicator in the diff if this was not the last line + + ([symbol_hidden_line] if line_idx_to < len(lines) else []) + ) + + return ndiff(adjust_lines(lines_a), adjust_lines(lines_b)) diff --git a/tests/syrupy/extensions/__snapshots__/test_base.ambr b/tests/syrupy/extensions/__snapshots__/test_base.ambr index 6326362b..9f80f6cc 100644 --- a/tests/syrupy/extensions/__snapshots__/test_base.ambr +++ b/tests/syrupy/extensions/__snapshots__/test_base.ambr @@ -1,4 +1,434 @@ # serializer version: 1 +# name: TestSnapshotReporter.test_diff_large[SnapshotReporterNoContext] + ''' + ... + - 101aaaaaaaaaaaaaaaaaaaab + + 101aaaaaaaaaaaaaaaaaaaa + - 102aaaaaaaaaaaaaaaaaaaab + + 102aaaaaaaaaaaaaaaaaaaa + - 103aaaaaaaaaaaaaaaaaaaab + + 103aaaaaaaaaaaaaaaaaaaa + - 104aaaaaaaaaaaaaaaaaaaab + + 104aaaaaaaaaaaaaaaaaaaa + - 105aaaaaaaaaaaaaaaaaaaab + + 105aaaaaaaaaaaaaaaaaaaa + - 106aaaaaaaaaaaaaaaaaaaab + + 106aaaaaaaaaaaaaaaaaaaa + - 107aaaaaaaaaaaaaaaaaaaab + + 107aaaaaaaaaaaaaaaaaaaa + - 108aaaaaaaaaaaaaaaaaaaab + + 108aaaaaaaaaaaaaaaaaaaa + - 109aaaaaaaaaaaaaaaaaaaab + + 109aaaaaaaaaaaaaaaaaaaa + - 110aaaaaaaaaaaaaaaaaaaab + + 110aaaaaaaaaaaaaaaaaaaa + - 111aaaaaaaaaaaaaaaaaaaab + + 111aaaaaaaaaaaaaaaaaaaa + - 112aaaaaaaaaaaaaaaaaaaab + + 112aaaaaaaaaaaaaaaaaaaa + - 113aaaaaaaaaaaaaaaaaaaab + + 113aaaaaaaaaaaaaaaaaaaa + - 114aaaaaaaaaaaaaaaaaaaab + + 114aaaaaaaaaaaaaaaaaaaa + - 115aaaaaaaaaaaaaaaaaaaab + + 115aaaaaaaaaaaaaaaaaaaa + - 116aaaaaaaaaaaaaaaaaaaab + + 116aaaaaaaaaaaaaaaaaaaa + - 117aaaaaaaaaaaaaaaaaaaab + + 117aaaaaaaaaaaaaaaaaaaa + - 118aaaaaaaaaaaaaaaaaaaab + + 118aaaaaaaaaaaaaaaaaaaa + - 119aaaaaaaaaaaaaaaaaaaab + + 119aaaaaaaaaaaaaaaaaaaa + - 120aaaaaaaaaaaaaaaaaaaab + + 120aaaaaaaaaaaaaaaaaaaa + - 121aaaaaaaaaaaaaaaaaaaab + + 121aaaaaaaaaaaaaaaaaaaa + - 122aaaaaaaaaaaaaaaaaaaab + + 122aaaaaaaaaaaaaaaaaaaa + - 123aaaaaaaaaaaaaaaaaaaab + + 123aaaaaaaaaaaaaaaaaaaa + - 124aaaaaaaaaaaaaaaaaaaab + + 124aaaaaaaaaaaaaaaaaaaa + - 125aaaaaaaaaaaaaaaaaaaab + + 125aaaaaaaaaaaaaaaaaaaa + - 126aaaaaaaaaaaaaaaaaaaab + + 126aaaaaaaaaaaaaaaaaaaa + - 127aaaaaaaaaaaaaaaaaaaab + + 127aaaaaaaaaaaaaaaaaaaa + - 128aaaaaaaaaaaaaaaaaaaab + + 128aaaaaaaaaaaaaaaaaaaa + - 129aaaaaaaaaaaaaaaaaaaab + + 129aaaaaaaaaaaaaaaaaaaa + - 130aaaaaaaaaaaaaaaaaaaab + + 130aaaaaaaaaaaaaaaaaaaa + - 131aaaaaaaaaaaaaaaaaaaab + + 131aaaaaaaaaaaaaaaaaaaa + - 132aaaaaaaaaaaaaaaaaaaab + + 132aaaaaaaaaaaaaaaaaaaa + - 133aaaaaaaaaaaaaaaaaaaab + + 133aaaaaaaaaaaaaaaaaaaa + - 134aaaaaaaaaaaaaaaaaaaab + + 134aaaaaaaaaaaaaaaaaaaa + - 135aaaaaaaaaaaaaaaaaaaab + + 135aaaaaaaaaaaaaaaaaaaa + - 136aaaaaaaaaaaaaaaaaaaab + + 136aaaaaaaaaaaaaaaaaaaa + - 137aaaaaaaaaaaaaaaaaaaab + + 137aaaaaaaaaaaaaaaaaaaa + - 138aaaaaaaaaaaaaaaaaaaab + + 138aaaaaaaaaaaaaaaaaaaa + - 139aaaaaaaaaaaaaaaaaaaab + + 139aaaaaaaaaaaaaaaaaaaa + - 140aaaaaaaaaaaaaaaaaaaab + + 140aaaaaaaaaaaaaaaaaaaa + - 141aaaaaaaaaaaaaaaaaaaab + + 141aaaaaaaaaaaaaaaaaaaa + - 142aaaaaaaaaaaaaaaaaaaab + + 142aaaaaaaaaaaaaaaaaaaa + - 143aaaaaaaaaaaaaaaaaaaab + + 143aaaaaaaaaaaaaaaaaaaa + - 144aaaaaaaaaaaaaaaaaaaab + + 144aaaaaaaaaaaaaaaaaaaa + - 145aaaaaaaaaaaaaaaaaaaab + + 145aaaaaaaaaaaaaaaaaaaa + - 146aaaaaaaaaaaaaaaaaaaab + + 146aaaaaaaaaaaaaaaaaaaa + - 147aaaaaaaaaaaaaaaaaaaab + + 147aaaaaaaaaaaaaaaaaaaa + - 148aaaaaaaaaaaaaaaaaaaab + + 148aaaaaaaaaaaaaaaaaaaa + - 149aaaaaaaaaaaaaaaaaaaab + + 149aaaaaaaaaaaaaaaaaaaa + - 150aaaaaaaaaaaaaaaaaaaab + + 150aaaaaaaaaaaaaaaaaaaa + - 151aaaaaaaaaaaaaaaaaaaab + + 151aaaaaaaaaaaaaaaaaaaa + - 152aaaaaaaaaaaaaaaaaaaab + + 152aaaaaaaaaaaaaaaaaaaa + - 153aaaaaaaaaaaaaaaaaaaab + + 153aaaaaaaaaaaaaaaaaaaa + - 154aaaaaaaaaaaaaaaaaaaab + + 154aaaaaaaaaaaaaaaaaaaa + - 155aaaaaaaaaaaaaaaaaaaab + + 155aaaaaaaaaaaaaaaaaaaa + - 156aaaaaaaaaaaaaaaaaaaab + + 156aaaaaaaaaaaaaaaaaaaa + - 157aaaaaaaaaaaaaaaaaaaab + + 157aaaaaaaaaaaaaaaaaaaa + - 158aaaaaaaaaaaaaaaaaaaab + + 158aaaaaaaaaaaaaaaaaaaa + - 159aaaaaaaaaaaaaaaaaaaab + + 159aaaaaaaaaaaaaaaaaaaa + - 160aaaaaaaaaaaaaaaaaaaab + + 160aaaaaaaaaaaaaaaaaaaa + - 161aaaaaaaaaaaaaaaaaaaab + + 161aaaaaaaaaaaaaaaaaaaa + - 162aaaaaaaaaaaaaaaaaaaab + + 162aaaaaaaaaaaaaaaaaaaa + - 163aaaaaaaaaaaaaaaaaaaab + + 163aaaaaaaaaaaaaaaaaaaa + - 164aaaaaaaaaaaaaaaaaaaab + + 164aaaaaaaaaaaaaaaaaaaa + - 165aaaaaaaaaaaaaaaaaaaab + + 165aaaaaaaaaaaaaaaaaaaa + - 166aaaaaaaaaaaaaaaaaaaab + + 166aaaaaaaaaaaaaaaaaaaa + - 167aaaaaaaaaaaaaaaaaaaab + + 167aaaaaaaaaaaaaaaaaaaa + - 168aaaaaaaaaaaaaaaaaaaab + + 168aaaaaaaaaaaaaaaaaaaa + - 169aaaaaaaaaaaaaaaaaaaab + + 169aaaaaaaaaaaaaaaaaaaa + - 170aaaaaaaaaaaaaaaaaaaab + + 170aaaaaaaaaaaaaaaaaaaa + - 171aaaaaaaaaaaaaaaaaaaab + + 171aaaaaaaaaaaaaaaaaaaa + - 172aaaaaaaaaaaaaaaaaaaab + + 172aaaaaaaaaaaaaaaaaaaa + - 173aaaaaaaaaaaaaaaaaaaab + + 173aaaaaaaaaaaaaaaaaaaa + - 174aaaaaaaaaaaaaaaaaaaab + + 174aaaaaaaaaaaaaaaaaaaa + - 175aaaaaaaaaaaaaaaaaaaab + + 175aaaaaaaaaaaaaaaaaaaa + - 176aaaaaaaaaaaaaaaaaaaab + + 176aaaaaaaaaaaaaaaaaaaa + - 177aaaaaaaaaaaaaaaaaaaab + + 177aaaaaaaaaaaaaaaaaaaa + - 178aaaaaaaaaaaaaaaaaaaab + + 178aaaaaaaaaaaaaaaaaaaa + - 179aaaaaaaaaaaaaaaaaaaab + + 179aaaaaaaaaaaaaaaaaaaa + - 180aaaaaaaaaaaaaaaaaaaab + + 180aaaaaaaaaaaaaaaaaaaa + - 181aaaaaaaaaaaaaaaaaaaab + + 181aaaaaaaaaaaaaaaaaaaa + - 182aaaaaaaaaaaaaaaaaaaab + + 182aaaaaaaaaaaaaaaaaaaa + - 183aaaaaaaaaaaaaaaaaaaab + + 183aaaaaaaaaaaaaaaaaaaa + - 184aaaaaaaaaaaaaaaaaaaab + + 184aaaaaaaaaaaaaaaaaaaa + - 185aaaaaaaaaaaaaaaaaaaab + + 185aaaaaaaaaaaaaaaaaaaa + - 186aaaaaaaaaaaaaaaaaaaab + + 186aaaaaaaaaaaaaaaaaaaa + - 187aaaaaaaaaaaaaaaaaaaab + + 187aaaaaaaaaaaaaaaaaaaa + - 188aaaaaaaaaaaaaaaaaaaab + + 188aaaaaaaaaaaaaaaaaaaa + - 189aaaaaaaaaaaaaaaaaaaab + + 189aaaaaaaaaaaaaaaaaaaa + - 190aaaaaaaaaaaaaaaaaaaab + + 190aaaaaaaaaaaaaaaaaaaa + - 191aaaaaaaaaaaaaaaaaaaab + + 191aaaaaaaaaaaaaaaaaaaa + - 192aaaaaaaaaaaaaaaaaaaab + + 192aaaaaaaaaaaaaaaaaaaa + - 193aaaaaaaaaaaaaaaaaaaab + + 193aaaaaaaaaaaaaaaaaaaa + - 194aaaaaaaaaaaaaaaaaaaab + + 194aaaaaaaaaaaaaaaaaaaa + - 195aaaaaaaaaaaaaaaaaaaab + + 195aaaaaaaaaaaaaaaaaaaa + - 196aaaaaaaaaaaaaaaaaaaab + + 196aaaaaaaaaaaaaaaaaaaa + - 197aaaaaaaaaaaaaaaaaaaab + + 197aaaaaaaaaaaaaaaaaaaa + - 198aaaaaaaaaaaaaaaaaaaab + + 198aaaaaaaaaaaaaaaaaaaa + - 199aaaaaaaaaaaaaaaaaaaab + + 199aaaaaaaaaaaaaaaaaaaa + - 200aaaaaaaaaaaaaaaaaaaab + + 200aaaaaaaaaaaaaaaaaaaa + ... + ''' +# --- +# name: TestSnapshotReporter.test_diff_large[SnapshotReporter] + ''' + ...... + ... + 100aaaaaaaaaaaaaaaaaaaa + - 101aaaaaaaaaaaaaaaaaaaab + + 101aaaaaaaaaaaaaaaaaaaa + - 102aaaaaaaaaaaaaaaaaaaab + + 102aaaaaaaaaaaaaaaaaaaa + - 103aaaaaaaaaaaaaaaaaaaab + + 103aaaaaaaaaaaaaaaaaaaa + - 104aaaaaaaaaaaaaaaaaaaab + + 104aaaaaaaaaaaaaaaaaaaa + - 105aaaaaaaaaaaaaaaaaaaab + + 105aaaaaaaaaaaaaaaaaaaa + - 106aaaaaaaaaaaaaaaaaaaab + + 106aaaaaaaaaaaaaaaaaaaa + - 107aaaaaaaaaaaaaaaaaaaab + + 107aaaaaaaaaaaaaaaaaaaa + - 108aaaaaaaaaaaaaaaaaaaab + + 108aaaaaaaaaaaaaaaaaaaa + - 109aaaaaaaaaaaaaaaaaaaab + + 109aaaaaaaaaaaaaaaaaaaa + - 110aaaaaaaaaaaaaaaaaaaab + + 110aaaaaaaaaaaaaaaaaaaa + - 111aaaaaaaaaaaaaaaaaaaab + + 111aaaaaaaaaaaaaaaaaaaa + - 112aaaaaaaaaaaaaaaaaaaab + + 112aaaaaaaaaaaaaaaaaaaa + - 113aaaaaaaaaaaaaaaaaaaab + + 113aaaaaaaaaaaaaaaaaaaa + - 114aaaaaaaaaaaaaaaaaaaab + + 114aaaaaaaaaaaaaaaaaaaa + - 115aaaaaaaaaaaaaaaaaaaab + + 115aaaaaaaaaaaaaaaaaaaa + - 116aaaaaaaaaaaaaaaaaaaab + + 116aaaaaaaaaaaaaaaaaaaa + - 117aaaaaaaaaaaaaaaaaaaab + + 117aaaaaaaaaaaaaaaaaaaa + - 118aaaaaaaaaaaaaaaaaaaab + + 118aaaaaaaaaaaaaaaaaaaa + - 119aaaaaaaaaaaaaaaaaaaab + + 119aaaaaaaaaaaaaaaaaaaa + - 120aaaaaaaaaaaaaaaaaaaab + + 120aaaaaaaaaaaaaaaaaaaa + - 121aaaaaaaaaaaaaaaaaaaab + + 121aaaaaaaaaaaaaaaaaaaa + - 122aaaaaaaaaaaaaaaaaaaab + + 122aaaaaaaaaaaaaaaaaaaa + - 123aaaaaaaaaaaaaaaaaaaab + + 123aaaaaaaaaaaaaaaaaaaa + - 124aaaaaaaaaaaaaaaaaaaab + + 124aaaaaaaaaaaaaaaaaaaa + - 125aaaaaaaaaaaaaaaaaaaab + + 125aaaaaaaaaaaaaaaaaaaa + - 126aaaaaaaaaaaaaaaaaaaab + + 126aaaaaaaaaaaaaaaaaaaa + - 127aaaaaaaaaaaaaaaaaaaab + + 127aaaaaaaaaaaaaaaaaaaa + - 128aaaaaaaaaaaaaaaaaaaab + + 128aaaaaaaaaaaaaaaaaaaa + - 129aaaaaaaaaaaaaaaaaaaab + + 129aaaaaaaaaaaaaaaaaaaa + - 130aaaaaaaaaaaaaaaaaaaab + + 130aaaaaaaaaaaaaaaaaaaa + - 131aaaaaaaaaaaaaaaaaaaab + + 131aaaaaaaaaaaaaaaaaaaa + - 132aaaaaaaaaaaaaaaaaaaab + + 132aaaaaaaaaaaaaaaaaaaa + - 133aaaaaaaaaaaaaaaaaaaab + + 133aaaaaaaaaaaaaaaaaaaa + - 134aaaaaaaaaaaaaaaaaaaab + + 134aaaaaaaaaaaaaaaaaaaa + - 135aaaaaaaaaaaaaaaaaaaab + + 135aaaaaaaaaaaaaaaaaaaa + - 136aaaaaaaaaaaaaaaaaaaab + + 136aaaaaaaaaaaaaaaaaaaa + - 137aaaaaaaaaaaaaaaaaaaab + + 137aaaaaaaaaaaaaaaaaaaa + - 138aaaaaaaaaaaaaaaaaaaab + + 138aaaaaaaaaaaaaaaaaaaa + - 139aaaaaaaaaaaaaaaaaaaab + + 139aaaaaaaaaaaaaaaaaaaa + - 140aaaaaaaaaaaaaaaaaaaab + + 140aaaaaaaaaaaaaaaaaaaa + - 141aaaaaaaaaaaaaaaaaaaab + + 141aaaaaaaaaaaaaaaaaaaa + - 142aaaaaaaaaaaaaaaaaaaab + + 142aaaaaaaaaaaaaaaaaaaa + - 143aaaaaaaaaaaaaaaaaaaab + + 143aaaaaaaaaaaaaaaaaaaa + - 144aaaaaaaaaaaaaaaaaaaab + + 144aaaaaaaaaaaaaaaaaaaa + - 145aaaaaaaaaaaaaaaaaaaab + + 145aaaaaaaaaaaaaaaaaaaa + - 146aaaaaaaaaaaaaaaaaaaab + + 146aaaaaaaaaaaaaaaaaaaa + - 147aaaaaaaaaaaaaaaaaaaab + + 147aaaaaaaaaaaaaaaaaaaa + - 148aaaaaaaaaaaaaaaaaaaab + + 148aaaaaaaaaaaaaaaaaaaa + - 149aaaaaaaaaaaaaaaaaaaab + + 149aaaaaaaaaaaaaaaaaaaa + - 150aaaaaaaaaaaaaaaaaaaab + + 150aaaaaaaaaaaaaaaaaaaa + - 151aaaaaaaaaaaaaaaaaaaab + + 151aaaaaaaaaaaaaaaaaaaa + - 152aaaaaaaaaaaaaaaaaaaab + + 152aaaaaaaaaaaaaaaaaaaa + - 153aaaaaaaaaaaaaaaaaaaab + + 153aaaaaaaaaaaaaaaaaaaa + - 154aaaaaaaaaaaaaaaaaaaab + + 154aaaaaaaaaaaaaaaaaaaa + - 155aaaaaaaaaaaaaaaaaaaab + + 155aaaaaaaaaaaaaaaaaaaa + - 156aaaaaaaaaaaaaaaaaaaab + + 156aaaaaaaaaaaaaaaaaaaa + - 157aaaaaaaaaaaaaaaaaaaab + + 157aaaaaaaaaaaaaaaaaaaa + - 158aaaaaaaaaaaaaaaaaaaab + + 158aaaaaaaaaaaaaaaaaaaa + - 159aaaaaaaaaaaaaaaaaaaab + + 159aaaaaaaaaaaaaaaaaaaa + - 160aaaaaaaaaaaaaaaaaaaab + + 160aaaaaaaaaaaaaaaaaaaa + - 161aaaaaaaaaaaaaaaaaaaab + + 161aaaaaaaaaaaaaaaaaaaa + - 162aaaaaaaaaaaaaaaaaaaab + + 162aaaaaaaaaaaaaaaaaaaa + - 163aaaaaaaaaaaaaaaaaaaab + + 163aaaaaaaaaaaaaaaaaaaa + - 164aaaaaaaaaaaaaaaaaaaab + + 164aaaaaaaaaaaaaaaaaaaa + - 165aaaaaaaaaaaaaaaaaaaab + + 165aaaaaaaaaaaaaaaaaaaa + - 166aaaaaaaaaaaaaaaaaaaab + + 166aaaaaaaaaaaaaaaaaaaa + - 167aaaaaaaaaaaaaaaaaaaab + + 167aaaaaaaaaaaaaaaaaaaa + - 168aaaaaaaaaaaaaaaaaaaab + + 168aaaaaaaaaaaaaaaaaaaa + - 169aaaaaaaaaaaaaaaaaaaab + + 169aaaaaaaaaaaaaaaaaaaa + - 170aaaaaaaaaaaaaaaaaaaab + + 170aaaaaaaaaaaaaaaaaaaa + - 171aaaaaaaaaaaaaaaaaaaab + + 171aaaaaaaaaaaaaaaaaaaa + - 172aaaaaaaaaaaaaaaaaaaab + + 172aaaaaaaaaaaaaaaaaaaa + - 173aaaaaaaaaaaaaaaaaaaab + + 173aaaaaaaaaaaaaaaaaaaa + - 174aaaaaaaaaaaaaaaaaaaab + + 174aaaaaaaaaaaaaaaaaaaa + - 175aaaaaaaaaaaaaaaaaaaab + + 175aaaaaaaaaaaaaaaaaaaa + - 176aaaaaaaaaaaaaaaaaaaab + + 176aaaaaaaaaaaaaaaaaaaa + - 177aaaaaaaaaaaaaaaaaaaab + + 177aaaaaaaaaaaaaaaaaaaa + - 178aaaaaaaaaaaaaaaaaaaab + + 178aaaaaaaaaaaaaaaaaaaa + - 179aaaaaaaaaaaaaaaaaaaab + + 179aaaaaaaaaaaaaaaaaaaa + - 180aaaaaaaaaaaaaaaaaaaab + + 180aaaaaaaaaaaaaaaaaaaa + - 181aaaaaaaaaaaaaaaaaaaab + + 181aaaaaaaaaaaaaaaaaaaa + - 182aaaaaaaaaaaaaaaaaaaab + + 182aaaaaaaaaaaaaaaaaaaa + - 183aaaaaaaaaaaaaaaaaaaab + + 183aaaaaaaaaaaaaaaaaaaa + - 184aaaaaaaaaaaaaaaaaaaab + + 184aaaaaaaaaaaaaaaaaaaa + - 185aaaaaaaaaaaaaaaaaaaab + + 185aaaaaaaaaaaaaaaaaaaa + - 186aaaaaaaaaaaaaaaaaaaab + + 186aaaaaaaaaaaaaaaaaaaa + - 187aaaaaaaaaaaaaaaaaaaab + + 187aaaaaaaaaaaaaaaaaaaa + - 188aaaaaaaaaaaaaaaaaaaab + + 188aaaaaaaaaaaaaaaaaaaa + - 189aaaaaaaaaaaaaaaaaaaab + + 189aaaaaaaaaaaaaaaaaaaa + - 190aaaaaaaaaaaaaaaaaaaab + + 190aaaaaaaaaaaaaaaaaaaa + - 191aaaaaaaaaaaaaaaaaaaab + + 191aaaaaaaaaaaaaaaaaaaa + - 192aaaaaaaaaaaaaaaaaaaab + + 192aaaaaaaaaaaaaaaaaaaa + - 193aaaaaaaaaaaaaaaaaaaab + + 193aaaaaaaaaaaaaaaaaaaa + - 194aaaaaaaaaaaaaaaaaaaab + + 194aaaaaaaaaaaaaaaaaaaa + - 195aaaaaaaaaaaaaaaaaaaab + + 195aaaaaaaaaaaaaaaaaaaa + - 196aaaaaaaaaaaaaaaaaaaab + + 196aaaaaaaaaaaaaaaaaaaa + - 197aaaaaaaaaaaaaaaaaaaab + + 197aaaaaaaaaaaaaaaaaaaa + - 198aaaaaaaaaaaaaaaaaaaab + + 198aaaaaaaaaaaaaaaaaaaa + - 199aaaaaaaaaaaaaaaaaaaab + + 199aaaaaaaaaaaaaaaaaaaa + - 200aaaaaaaaaaaaaaaaaaaab + + 200aaaaaaaaaaaaaaaaaaaa + ...... + ''' +# --- +# name: TestSnapshotReporter.test_diff_large_lines[SnapshotReporterNoContext] + ''' + - ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb... + + ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... + ... + ''' +# --- +# name: TestSnapshotReporter.test_diff_large_lines[SnapshotReporter] + ''' + - ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb... + + ...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... + 1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... + ... + 19aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa... + ''' +# --- # name: TestSnapshotReporter.test_diff_lines[-0-SnapshotReporterNoContext] ''' ... diff --git a/tests/syrupy/extensions/__snapshots__/test_single_file/test_unicode[greek u1ff4].raw b/tests/syrupy/extensions/__snapshots__/test_single_file/test_unicode[greek u1ff4].raw index 0e37c889..b5864bd9 100644 --- a/tests/syrupy/extensions/__snapshots__/test_single_file/test_unicode[greek u1ff4].raw +++ b/tests/syrupy/extensions/__snapshots__/test_single_file/test_unicode[greek u1ff4].raw @@ -1 +1 @@ -apple \ No newline at end of file +greek ῴ \ No newline at end of file diff --git a/tests/syrupy/extensions/test_base.py b/tests/syrupy/extensions/test_base.py index f13ca816..e499d4ee 100644 --- a/tests/syrupy/extensions/test_base.py +++ b/tests/syrupy/extensions/test_base.py @@ -34,26 +34,23 @@ def test_diff_lines(self, a, b, Reporter, snapshot, osenv): with osenv(NO_COLOR="true"): assert "\n".join(Reporter().diff_lines(a, b)) == snapshot - def test_diff_large(self, Reporter, osenv): + def test_diff_large(self, Reporter, snapshot, osenv): n_count = 3000 + DIFF_LINE_COUNT_LIMIT * 2 obj_a = [str(x) + ("a" * 20) for x in range(n_count)] - obj_b = [line_a + "b" for line_a in obj_a] + obj_b = [ + line_a + ("b" if n > DIFF_LINE_COUNT_LIMIT else "") + for n, line_a in enumerate(obj_a) + ] str_a = "\n".join(obj_a) str_b = "\n".join(obj_b) with osenv(NO_COLOR="true"): - assert ( - len(list(Reporter().diff_lines(str_a, str_b))) - <= DIFF_LINE_COUNT_LIMIT * 2 - ) + assert "\n".join(Reporter().diff_lines(str_a, str_b)) == snapshot - def test_diff_large_lines(self, Reporter, osenv): - n_count = 5000 + def test_diff_large_lines(self, Reporter, snapshot, osenv): + n_count = 1000000 obj_a = [str(x) + ("a" * n_count) for x in range(20)] obj_b = [line_a[: n_count // 2] + "b" * n_count for line_a in obj_a] str_a = "\n".join(obj_a) str_b = "\n".join(obj_b) with osenv(NO_COLOR="true"): - assert ( - len(list(Reporter().diff_lines(str_a, str_b))) - <= DIFF_LINE_COUNT_LIMIT * 2 - ) + assert "\n".join(Reporter().diff_lines(str_a, str_b)) == snapshot diff --git a/tests/syrupy/extensions/test_single_file.py b/tests/syrupy/extensions/test_single_file.py index 6adcda72..11c45d5f 100644 --- a/tests/syrupy/extensions/test_single_file.py +++ b/tests/syrupy/extensions/test_single_file.py @@ -68,4 +68,4 @@ def test_special_characters(snapshot_single, content): @pytest.mark.parametrize("content", ["greek ῴ"]) def test_unicode(snapshot_utf8, content): - assert snapshot_utf8 == "apple" + assert snapshot_utf8 == content