def test_select_goal_by_full_id_with_non_empty_cache(goal_chain_11): e = Enumeration(goal_chain_11) assert e.q(keys="name,select") == { 11: {"name": "a", "select": "select"}, 12: {"name": "b", "select": None}, 13: {"name": "c", "select": None}, 14: {"name": "d", "select": None}, 15: {"name": "e", "select": None}, 16: {"name": "f", "select": None}, 17: {"name": "g", "select": None}, 18: {"name": "h", "select": None}, 19: {"name": "i", "select": None}, 10: {"name": "j", "select": None}, 21: {"name": "k", "select": None}, } e.accept_all(Select(2), Select(13)) assert e.q(keys="name,select") == { 11: {"name": "a", "select": "prev"}, 12: {"name": "b", "select": None}, 13: {"name": "c", "select": "select"}, 14: {"name": "d", "select": None}, 15: {"name": "e", "select": None}, 16: {"name": "f", "select": None}, 17: {"name": "g", "select": None}, 18: {"name": "h", "select": None}, 19: {"name": "i", "select": None}, 10: {"name": "j", "select": None}, 21: {"name": "k", "select": None}, }
def test_select_goal_by_id_parts(goal_chain_11): e = Enumeration(goal_chain_11) e.accept_all(Select(1), Select(6)) assert e.q(keys="name,select") == { 11: {"name": "a", "select": "prev"}, 12: {"name": "b", "select": None}, 13: {"name": "c", "select": None}, 14: {"name": "d", "select": None}, 15: {"name": "e", "select": None}, 16: {"name": "f", "select": "select"}, 17: {"name": "g", "select": None}, 18: {"name": "h", "select": None}, 19: {"name": "i", "select": None}, 10: {"name": "j", "select": None}, 21: {"name": "k", "select": None}, }
def test_do_not_select_goal_by_partial_id(goal_chain_11): e = Enumeration(goal_chain_11) # Select(1) is kept in cache, and selection is not changed yet e.accept_all(Select(1)) assert e.q(keys="name,select") == { 11: {"name": "a", "select": "select"}, 12: {"name": "b", "select": None}, 13: {"name": "c", "select": None}, 14: {"name": "d", "select": None}, 15: {"name": "e", "select": None}, 16: {"name": "f", "select": None}, 17: {"name": "g", "select": None}, 18: {"name": "h", "select": None}, 19: {"name": "i", "select": None}, 10: {"name": "j", "select": None}, 21: {"name": "k", "select": None}, }
def test_selection_cache_should_be_reset_after_view_switch(goal_chain_11): e = Enumeration(SwitchableView(goal_chain_11)) e.accept_all(Add("Also top")) e.accept(Select(1)) # Select(1) is kept in a cache and not applied yet e.accept(ToggleSwitchableView()) assert e.q("name,select") == { 1: {"name": "a", "select": "select"}, 2: {"name": "k", "select": None}, 3: {"name": "Also top", "select": None}, } # Select(2) is being applied without any effect from the previous selection # This happens because selection cache was reset e.accept(Select(2)) assert e.q("name,select") == { 1: {"name": "a", "select": "prev"}, 2: {"name": "k", "select": "select"}, 3: {"name": "Also top", "select": None}, }
def test_save_and_load(): file_name = NamedTemporaryFile().name goals = Enumeration(all_layers(Goals("Root"))) goals.accept_all( Add("Top"), Add("Middle"), Select(3), HoldSelect(), Select(2), ToggleLink(), Add("Closed"), Select(4), ToggleClose(), Select(2), ToggleZoom(), ) save(goals, file_name) new_goals = load(file_name) goals.accept_all(ToggleOpenView()) new_goals.accept_all(ToggleOpenView()) assert goals.q(keys="open,name,edge,select,switchable") == new_goals.q( keys="open,name,edge,select,switchable")