def test_script_show_good_script(capsys): script.script("nixconfig", ["show", "script1"]) _out, _err = capsys.readouterr() assert "print('This is code 1')" in _out, "'This is code 1' should be in output" assert "tag1" in _out, "'tag1' should be in output" assert "tag2" in _out, "'tag2' should be in output" assert len(_err) is 0, "StdErr should be empty, contains: {}".format(_err)
def test_script_list_good_tag(capsys): script.script("nixconfig", ["list", "tag1"]) _out, _err = capsys.readouterr() assert "script1" in _out, "'script1' should be in output" assert "script2" in _out, "'script2' should be in output" assert "script3" not in _out, "'script3' should be in output" assert len(_err) is 0, "StdErr should be empty, contains: {}".format(_err)
def test_script_delete_bad_script(capsys): with pytest.raises(NixError) as _excinfo: script.script("nixconfig", ["delete", "badscript"]) _out, _err = capsys.readouterr() assert "Unable to find script: badscript" in str(_excinfo.value) assert len(_out) is 0, "StdOut should be empty, contains: {}".format(_out) assert len(_err) is 0, "StdErr should be empty, contains: {}".format(_err)
def test_script_rename_to_exist_script(capsys): with pytest.raises(NixError) as _excinfo: script.script("nixconfig", ["rename", "badscript", "script1"]) _out, _err = capsys.readouterr() assert "New script name is already used: script1" in str(_excinfo.value) assert len(_out) is 0, "StdOut should be empty, contains: {}".format(_out) assert len(_err) is 0, "StdErr should be empty, contains: {}".format(_err)
def test_script_list_bad_tag(capsys): with pytest.raises(NixError) as _excinfo: script.script("nixconfig", ["list", "badtag"]) _out, _err = capsys.readouterr() assert "Unknown tags" in str(_excinfo.value) assert len(_out) is 0, "StdOut should be empty, contains: {}".format(_out) assert len(_err) is 0, "StdErr should be empty, contains: {}".format(_err)
def test_script_no_command(capsys): with pytest.raises(NixError) as _excinfo: script.script("nixconfig", []) _out, _err = capsys.readouterr() assert "Missing script command" in str( _excinfo.value), "exception doesn't contain expected string" assert "usage: nixconfig script" in _out, "StdOut doesn't contain expected string" assert len(_err) is 0, "StdErr should be empty, contains: {}".format(_err)
def test_script_create_existing_script(capsys): with pytest.raises(NixError) as _excinfo: script.script("nixconfig", ["create", "script1", "new script", "tag3"]) _out, _err = capsys.readouterr() assert "Script already exists: script1" in str(_excinfo.value) assert len(_out) is 0, "StdOut should be empty, contains: {}".format(_out) assert len(_err) is 0, "StdErr should be empty, contains: {}".format(_err)
def test_script_delete_no_script(capsys): with pytest.raises(SystemExit) as _excinfo: script.script("nixconfig", ["delete"]) _out, _err = capsys.readouterr() assert "2" in str( _excinfo.value), "Exception doesn't contain expected string" assert len(_out) == 0, "StdOut should be empty, contains: {}".format(_out) assert "the following arguments are required: name" in _err, "StdErr doesn't contain expected string"
def test_script_rename_no_script(capsys): with pytest.raises(SystemExit) as _excinfo: script.script("nixconfig", ["rename"]) _out, _err = capsys.readouterr() assert _excinfo.value.code is 2, "Incorrect exit code. Should be 2, received {}".format( _excinfo.value.code) assert len(_out) == 0, "StdOut should be empty, contains: {}".format(_out) assert "the following arguments are required: name, name_new" in _err, "StdErr doesn't contain expected string"
def test_script_rename_same(capsys): with pytest.raises(NixError) as _excinfo: script.script("nixconfig", ["rename", "script1", "script1"]) _out, _err = capsys.readouterr() assert "Old and new script names are the same: script1" in str( _excinfo.value) assert len(_out) is 0, "StdOut should be empty, contains: {}".format(_out) assert len(_err) is 0, "StdErr should be empty, contains: {}".format(_err)
def test_script_bad_command(capsys): with pytest.raises(SystemExit) as _excinfo: script.script("nixconfig", ["asdf"]) _out, _err = capsys.readouterr() assert "2" in str( _excinfo.value), "Exception doesn't contain expected string" assert len(_out) == 0, "StdOut should be empty, contains: {}".format(_out) assert "invalid choice" in _err, "StdErr doesn't contain expected string"
def test_script_rename_good_script(capsys): script.script("nixconfig", ["rename", "script1", "newscript"]) _out, _err = capsys.readouterr() assert len(_out) is 0, "StdOut should be empty, contains: {}".format(_out) assert len(_err) is 0, "StdErr should be empty, contains: {}".format(_err) script.script("nixconfig", ["rename", "newscript", "script1"]) _out, _err = capsys.readouterr() assert len(_out) is 0, "StdOut should be empty, contains: {}".format(_out) assert len(_err) is 0, "StdErr should be empty, contains: {}".format(_err)
def make_parser(sys_argv): """ Command line argument parser for the Nixconfig program. """ LOG.debug("Call parser") parser = argparse.ArgumentParser( description='Configure Nix', usage='''nixconfig {script,script-tag,tag} [<args>] Commands: script create, delete, update... scripts script-tag add, remove, list... tags from scripts tag create, delete, list... tags ''') parser.add_argument('command', nargs="?", default="", help='Subcommand to run') args = parser.parse_args(sys_argv[1:2]) _prog = sys.argv[0].rsplit("/", 1)[-1] if args.command == "script": script.script(_prog, sys_argv[2:]) elif args.command == "script-tag": script_tag.script_tag(_prog, sys_argv[2:]) elif args.command == "tag": tag.tag(_prog, sys_argv[2:]) else: print('Unrecognized command') parser.print_help() exit(1)
def test_script_run_good_script(capsys): script.script("nixconfig", ["run", "script1"]) _out, _err = capsys.readouterr() assert "This is code 1" in _out, "'This is code 1' should be in output" assert len(_err) is 0, "StdErr should be empty, contains: {}".format(_err)