File: helpers.py

package info (click to toggle)
jsonpath-ng 1.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 372 kB
  • sloc: python: 2,172; makefile: 4
file content (35 lines) | stat: -rw-r--r-- 1,499 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def assert_value_equality(results, expected_values):
    """Assert equality between two objects.

    *results* must be a list of results as returned by `.find()` methods.

    If *expected_values* is a list, then value equality and ordering will be checked.
    If *expected_values* is a set, value equality and container length will be checked.
    Otherwise, the value of the results will be compared to the expected values.
    """

    left_values = [result.value for result in results]
    if isinstance(expected_values, list):
        assert left_values == expected_values
    elif isinstance(expected_values, set):
        assert len(left_values) == len(expected_values)
        assert set(left_values) == expected_values
    else:
        assert results[0].value == expected_values


def assert_full_path_equality(results, expected_full_paths):
    """Assert equality between two objects.

    *results* must be a list or set of results as returned by `.find()` methods.

    If *expected_full_paths* is a list, then path equality and ordering will be checked.
    If *expected_full_paths* is a set, then path equality and length will be checked.
    """

    full_paths = [str(result.full_path) for result in results]
    if isinstance(expected_full_paths, list):
        assert full_paths == expected_full_paths, full_paths
    else:  # isinstance(expected_full_paths, set):
        assert len(full_paths) == len(expected_full_paths)
        assert set(full_paths) == expected_full_paths