def test_attp_prompts_projects(attp_dp, tasks, out): tasks.add_task(Task("unassigned_task")) tasks.add_task(Task("@@@project prj:fakeproj1")) tasks.add_task(Task("an assigned task prj:fakeproj2")) with pytest.raises(IOError): next(attp_dp) o = out() print(o) assert 'auto create' in o assert 'new project' in o assert '0. fakeproj1' in o
def test_phase_can_skip_cycle(dp, out, tasks: Tasks, capsys): tasks.add_task(Task("")) dp.dummy_input = ['skip'] next(dp) o = out() assert o.count("What do") == 1 assert o.count("Skipping") == 1
def test_can_retry_response(dp, out, tasks): tasks.add_task(Task("")) dp.dummy_input = ['d', 'skip'] next(dp) assert out().count("Skipping") == 1
def test_displays_options_command(dp, out, tasks): tasks.add_task(Task("")) with pytest.raises(IOError): next(dp) assert out().count('skip') == 1
def test_attp_can_assign_to_existing_prj(attp_dp, tasks, out): attp_dp.dummy_input = ['p', '0'] tasks.add_task(t := Task("buy paint")) tasks.add_task(Task("@@@project prj:guitar")) next(attp_dp) assert t.persist == "buy paint prj:guitar"
def test_attp_new_test_makes_new_and_assigns(attp_dp, tasks, out): attp_dp.dummy_input = ['n', 'new'] tasks.add_task(t := Task("make thing")) next(attp_dp) assert t.persist == 'make thing prj:new' assert Task('prj:new @@@project') in tasks
def test_attp_auto_has_correct_effect(attp_dp, tasks, out): attp_dp.dummy_input = ['a'] tasks.add_task(t := Task("make thing")) next(attp_dp) assert t.persist == 'prj:make_thing @@@project' print(out())
def test_flp_manual_has_correct_effect(flp_dp, tasks: Tasks, out): flp_dp.dummy_input = ['m', 'mars_attacks'] tasks.add_task(t := Task("@@@project test")) next(flp_dp) assert t.persist == '@@@project test prj:mars_attacks'
def test_flp_auto_has_correct_effect(flp_dp, tasks, out): flp_dp.dummy_input = ['a'] tasks.add_task(t := Task("@@@project test")) next(flp_dp) assert t.persist == '@@@project prj:test'
def test_flp_filters_to_correct_tasks(flp_dp, tasks): tasks.add_tasks_from_list( ["@@@project test", "@@@project prj:test", "test"]) assert list(flp_dp.relevant_tasks) == [ Task("@@@project test"), ]
def test_partial_matcher_handle_non_unique_matches(dp, out, tasks): tasks.add_task(Task("")) dp._option_classes = [DummyOption('kite'), DummyOption('kitten')] dp.dummy_input = ['kit'] with pytest.raises(IOError): next(dp)
def test_can_match_unique_partial_command(dp, out, tasks): tasks.add_task(Task("")) dp.dummy_input = ['s'] next(dp) assert out().count("Skipping") == 1