lms.util.testing

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