def test_match_command_trailing_files_star_allowed_none_provided(): _cmdline_match_command(State(), ['a', 'b', '*'], ['a', '-b'])
def test_constraint_regexp_match(): _cmdline_match_command(ps(), ['a', 'n:', None, {'-n' : re.compile(r'^aaa$')}], ['a', '-n', 'aaa'])
def test_constraint_callable_match(): _cmdline_match_command(ps(), ['a', 'n:', None, {'-n' : lambda x: len(x) == 1}], ['a', '-n', 'X'])
def test_match_command_filename_set_match_wrong_order(): _cmdline_match_command(ps(), ['a', '', {'first.txt', 'second.txt'}], ['a', 'second.txt', 'first.txt'])
def test_constraint_text_match(): _cmdline_match_command(ps(), ['a', 'n:', None, {'-n' : '3'}], ['a', '-n', '3'])
def test_match_command_filename_list_too_long(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a', '', ['first.txt', 'second.txt']], ['a', 'first.txt'])
def test_match_command_filename_re_match_pattern(): _cmdline_match_command(ps(), ['a', '', [re.compile(r'.+\.txt')]], ['a', 'first.txt'])
def test_match_command_commands_mismatch(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a'], ['b'])
def test_match_command_unexpected_actual_parameters(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a'], ['b', 'c'])
def test_match_command_actual_is_nonempty(): with pytest.raises(AssertionError): _cmdline_match_command(ps(), ['a'], [])
def test_match_command_commands_match(): _cmdline_match_command(ps(), ['a'], ['a'])
def test_constraint_text_mismatch(): with pytest.raises(Exception): _cmdline_match_command(State(), ['a', 'n:', None, {'-n' : '3'}], ['a', '-n', 'X'])
def test_match_command_filename_set_too_long(): with pytest.raises(Exception): _cmdline_match_command(State(), ['a', '', {'first.txt', 'second.txt'}], ['a', 'first.txt'])
def test_match_command_filename_list_wrong_names(): with pytest.raises(Exception): _cmdline_match_command(State(), ['a', '', ['first.txt', 'second.txt']], ['a', 'first.txt', 'third.txt'])
def test_match_command_trailing_files_plus_allowed_none_provided(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a', 'b', '+'], ['a', '-b'])
def test_match_command_no_flags_and_non_provided(): _cmdline_match_command(ps(), ['a', ''], ['a'])
def test_match_command_filename_list_match(): _cmdline_match_command(ps(), ['a', '', ['first.txt', 'second.txt']], ['a', 'first.txt', 'second.txt'])
def test_match_command_no_flags_and_some_provided(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a', ''], ['a', '-b'])
def test_match_command_filename_re_match_simple(): _cmdline_match_command(ps(), ['a', '', [re.compile(r'first\.txt')]], ['a', 'first.txt'])
def test_match_command_no_flags_and_filenames_provided(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a', ''], ['a', 'filename'])
def test_match_command_filename_re_match_trailing(): _cmdline_match_command(ps(), ['cp', '', ['first.txt', re.compile(r'dir/?')]], ['cp', 'first.txt', 'dir/'])
def test_match_command_single_flag_no_argument_match(): _cmdline_match_command(ps(), ['a', 'b'], ['a', '-b'])
def test_match_command_filename_set_wrong_names(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a', '', {'first.txt', 'second.txt'}], ['a', 'first.txt', 'third.txt'])
def test_match_command_single_flag_no_argument_mismatch(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a', 'b'], ['a', '-X'])
def test_constraint_text_mismatch(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a', 'n:', None, {'-n' : '3'}], ['a', '-n', 'X'])
def test_match_command_trailing_files_not_expected(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a', 'b'], ['a', '-b', 'filename'])
def test_constraint_regexp_mismatch(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a', 'n:', None, {'-n' : re.compile(r'^aaa$')}], ['a', '-n', 'bbb'])
def test_match_command_trailing_files_star_allowed_two_provided(): _cmdline_match_command(ps(), ['a', 'b', '*'], ['a', '-b', 'file1', 'file2'])
def test_constraint_callable_mismatch(): with pytest.raises(TF): _cmdline_match_command(ps(), ['a', 'n:', None, {'-n' : lambda x: len(x) == 1}], ['a', '-n', 'XYZ'])
def test_match_command_trailing_files_not_expected(): with pytest.raises(Exception): _cmdline_match_command(State(), ['a', 'b'], ['a', '-b', 'filename'])