| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 | from textwrap import dedentimport pytestfrom core.helper.position_helper import get_position_map, is_filtered, pin_position_map, sort_by_position_map@pytest.fixturedef prepare_example_positions_yaml(tmp_path, monkeypatch) -> str:    monkeypatch.chdir(tmp_path)    tmp_path.joinpath("example_positions.yaml").write_text(        dedent(            """\        - first        - second        # - commented        - third        - 9999999999999        - forth        """        )    )    return str(tmp_path)@pytest.fixturedef prepare_empty_commented_positions_yaml(tmp_path, monkeypatch) -> str:    monkeypatch.chdir(tmp_path)    tmp_path.joinpath("example_positions_all_commented.yaml").write_text(        dedent(            """\        # - commented1        # - commented2        -        -        """        )    )    return str(tmp_path)def test_position_helper(prepare_example_positions_yaml):    position_map = get_position_map(folder_path=prepare_example_positions_yaml, file_name="example_positions.yaml")    assert len(position_map) == 4    assert position_map == {        "first": 0,        "second": 1,        "third": 2,        "forth": 3,    }def test_position_helper_with_all_commented(prepare_empty_commented_positions_yaml):    position_map = get_position_map(        folder_path=prepare_empty_commented_positions_yaml, file_name="example_positions_all_commented.yaml"    )    assert position_map == {}def test_excluded_position_data(prepare_example_positions_yaml):    position_map = get_position_map(folder_path=prepare_example_positions_yaml, file_name="example_positions.yaml")    pin_list = ["forth", "first"]    include_set = set()    exclude_set = {"9999999999999"}    position_map = pin_position_map(original_position_map=position_map, pin_list=pin_list)    data = [        "forth",        "first",        "second",        "third",        "9999999999999",        "extra1",        "extra2",    ]    # filter out the data    data = [item for item in data if not is_filtered(include_set, exclude_set, item, lambda x: x)]    # sort data by position map    sorted_data = sort_by_position_map(        position_map=position_map,        data=data,        name_func=lambda x: x,    )    # assert the result in the correct order    assert sorted_data == ["forth", "first", "second", "third", "extra1", "extra2"]def test_included_position_data(prepare_example_positions_yaml):    position_map = get_position_map(folder_path=prepare_example_positions_yaml, file_name="example_positions.yaml")    pin_list = ["forth", "first"]    include_set = {"forth", "first"}    exclude_set = {}    position_map = pin_position_map(original_position_map=position_map, pin_list=pin_list)    data = [        "forth",        "first",        "second",        "third",        "9999999999999",        "extra1",        "extra2",    ]    # filter out the data    data = [item for item in data if not is_filtered(include_set, exclude_set, item, lambda x: x)]    # sort data by position map    sorted_data = sort_by_position_map(        position_map=position_map,        data=data,        name_func=lambda x: x,    )    # assert the result in the correct order    assert sorted_data == ["forth", "first"]
 |