def test_case_visibility_shortcut_should_be_ok(): source = """ - c1: run: echo 1 v: true """ runner = parse_spec(source) assert runner["c1"].visible
def test_case_fractional_points_value_should_be_ok(): source = """ - c1: run: echo 1 points: 1.5 """ runner = parse_spec(source) assert runner["c1"].points == 1.5
def test_case_return_keyword_should_be_ok_for_exit_status(): source = """ - c1: run: "false" return: 1 """ runner = parse_spec(source) assert runner["c1"].exits == 1
def test_case_exit_shortcut_should_be_ok(): source = """ - c1: r: echo 1 x: 2 """ runner = parse_spec(source) assert runner["c1"].exits == 2
def test_case_integer_points_value_should_be_ok(): source = """ - c1: run: echo 1 points: 10 """ runner = parse_spec(source) assert runner["c1"].points == 10
def test_case_points_shortcut_should_be_ok(): source = """ - c1: run: echo 1 p: 10 """ runner = parse_spec(source) assert runner["c1"].points == 10
def test_case_integer_exit_status_should_be_ok(): source = """ - c1: run: echo 1 exit: 2 """ runner = parse_spec(source) assert runner["c1"].exits == 2
def test_case_define_variable_should_be_ok(): source = """ - _define: vars: foo: bar """ runner = parse_spec(source) assert runner["_define_vars"]["foo"] == "bar"
def test_case_visible_set_to_false_should_be_ok(): source = """ - c1: run: echo 1 visible: false """ runner = parse_spec(source) assert not runner["c1"].visible
def test_case_blocker_set_to_true_should_be_ok(): source = """ - c1: run: echo 1 blocker: true """ runner = parse_spec(source) assert runner["c1"].blocker
def test_case_script_with_string_action_data_should_be_ok(): source = """ - c1: run: echo 1 script: - expect: "1" """ runner = parse_spec(source) assert [tuple(s) for s in runner["c1"].script] == [("e", "1", -1)]
def test_case_script_with_send_shortcut_should_be_ok(): source = """ - c1: run: echo 1 script: - s: "1" """ runner = parse_spec(source) assert [tuple(s) for s in runner["c1"].script] == [("s", "1", None)]
def test_no_total_points_given_should_sum_zero(): source = """ - c1: run: echo 1 - c2: run: echo 2 """ runner = parse_spec(source) assert runner.points == 0
def test_case_script_action_with_integer_timeout_value_should_be_ok(): source = """ - c1: run: echo 1 script: - expect: "foo" # timeout: 5 """ runner = parse_spec(source) assert [tuple(s) for s in runner["c1"].script] == [("e", "foo", 5)]
def test_case_script_with_action_data_eof_should_be_ok(): source = """ - c1: run: echo 1 script: - expect: _EOF_ """ runner = parse_spec(source) assert [tuple(s) for s in runner["c1"].script] == [("e", "_EOF_", None)]
def test_case_script_with_expect_shortcut_should_be_ok(): source = """ - c1: run: echo 1 script: - e: "1" """ runner = parse_spec(source) assert [tuple(s) for s in runner["c1"].script] == [("e", "1", -1)]
def test_case_order_should_be_preserved(): source = """ - c2: run: echo 2 - c3: run: echo 3 - c1: run: echo 1 """ runner = parse_spec(source) assert list(runner.keys()) == ["c2", "c3", "c1"]
def test_total_fractional_points_should_be_sum_of_points(): source = """ - c1: run: echo 1 points: 1.5 - c2: run: echo 2 - c3: run: echo 3 points: 2.25 """ runner = parse_spec(source) assert runner.points == 3.75
def test_case_script_order_should_be_preserved(): source = """ - c1: run: echo 1 script: - expect: "foo" - send: "1" - expect: _EOF_ """ runner = parse_spec(source) assert [tuple(s) for s in runner["c1"].script] == [ ("e", "foo", None), ("s", "1", None), ("e", "_EOF_", None), ]
def test_empty_spec_should_raise_error(): with raises(AssertionError) as e: parse_spec("") assert "No test specification" in str(e)
def test_invalid_spec_format_should_raise_error(): with raises(AssertionError) as e: parse_spec("!dummy") assert "Invalid test specification" in str(e)