def test_empty_option_items_ignored(): source_line = "urgency::1| 2 || 3" option_line = OptionLine(source_line) assert option_line.key == "urgency" assert option_line.options == set(["1", "2", "3"]) assert option_line.validates() assert option_line.text == "urgency :: 1 | 2 | 3"
def test_valid_option_line(): source_line = "importance :: a | b | c" option_line = OptionLine(source_line) assert option_line.indent == 0 assert option_line.key == "importance" assert option_line.options == set(["a", "b", "c"]) assert option_line.validates() assert option_line.text == source_line assert str(option_line) == source_line assert repr(option_line) == source_line
def test_no_options_ok_to_declare_key(): source_line = "some_input_any_value_ok ::" option_line = OptionLine(source_line) assert option_line.key == "some_input_any_value_ok" assert option_line.options == set() assert option_line.validates()
def test_wrap_options(source_line, max_option_length, expected): opt_line = OptionLine() opts_gen = (opt.strip() for opt in source_line.split("|")) opt_line.options = set(opt for opt in opts_gen if len(opt)) assert opt_line._wrap_options(max_option_length) == expected
def test_not_an_option_line(): source_line = " Continuation line for some task" option_line = OptionLine(source_line) assert option_line.indent == 0 # Options indents are always 0 assert option_line.key is None assert not option_line.validates()