lms.util.testing

 1import re
 2import typing
 3
 4import edq.testing.asserts
 5import edq.testing.unittest
 6
 7ID_SUBS: typing.List[typing.Tuple[re.Pattern, str]] = [
 8    (re.compile(r'^id: \d+'), 'id: <ID>'),  # Text
 9    (re.compile(r'^\d+\t'), "<ID>\t"),  # Table
10    (re.compile(r'"id": "\d+"'), '"id": "<ID>"'),  # JSON
11    (re.compile(r' \(\d{1,2}\)'), ' (<ID>)'),  # Labels with Small IDs
12]
13
14def cli_assert_normalize_ids(test: edq.testing.unittest.BaseTest, expected: str, actual: str, **kwargs: typing.Any) -> None:
15    """
16    Normalize IDs (as output from a standard CLI,
17    and then use edq.testing.asserts.content_equals_normalize().
18    """
19
20    for (pattern, replacement) in ID_SUBS:
21        expected = re.sub(pattern, replacement, expected)
22        actual = re.sub(pattern, replacement, actual)
23
24    edq.testing.asserts.content_equals_normalize(test, expected, actual)
ID_SUBS: List[Tuple[re.Pattern, str]] = [(re.compile('^id: \\d+'), 'id: <ID>'), (re.compile('^\\d+\\t'), '<ID>\t'), (re.compile('"id": "\\d+"'), '"id": "<ID>"'), (re.compile(' \\(\\d{1,2}\\)'), ' (<ID>)')]
def cli_assert_normalize_ids( test: edq.testing.unittest.BaseTest, expected: str, actual: str, **kwargs: Any) -> None:
15def cli_assert_normalize_ids(test: edq.testing.unittest.BaseTest, expected: str, actual: str, **kwargs: typing.Any) -> None:
16    """
17    Normalize IDs (as output from a standard CLI,
18    and then use edq.testing.asserts.content_equals_normalize().
19    """
20
21    for (pattern, replacement) in ID_SUBS:
22        expected = re.sub(pattern, replacement, expected)
23        actual = re.sub(pattern, replacement, actual)
24
25    edq.testing.asserts.content_equals_normalize(test, expected, actual)

Normalize IDs (as output from a standard CLI, and then use edq.testing.asserts.content_equals_normalize().