def test_json(self, request, monkeypatch, cmd): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = [cmd, "saved-query", "get"] result1 = runner.invoke(cli.cli, args=args1) exit_code1 = result1.exit_code stdout1 = result1.stdout stderr1 = result1.stderr assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, tools.LIST) name = json1[0]["name"] args2 = [cmd, "count-by-saved-query", "--name", name] result2 = runner.invoke(cli=cli.cli, args=args2) exit_code2 = result2.exit_code stdout2 = result2.stdout stderr2 = result2.stderr assert stdout2 assert stderr2 assert exit_code2 == 0 json2 = tools.json_load(stdout2) assert isinstance(json2, tools.INT)
def test_get_json(self, request, monkeypatch): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = ["adapters", "get"] result1 = runner.invoke(cli=cli.cli, args=args1) stderr1 = result1.stderr stdout1 = result1.stdout exit_code1 = result1.exit_code assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, tools.LIST) args2 = [ "adapters", "cnx", "get", "--rows", "-", "--export-format", "json" ] result2 = runner.invoke(cli=cli.cli, args=args2, input=stdout1) stderr2 = result2.stderr stdout2 = result2.stdout exit_code2 = result2.exit_code assert stdout2 assert stderr2 assert exit_code2 == 0 json2 = tools.json_load(stdout2) assert isinstance(json2, tools.LIST)
def test_json(self, request, monkeypatch, cmd): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = [ cmd, "get", "--query", "(adapters > size(0))", "--max-rows", "1" ] result1 = runner.invoke(cli=cli.cli, args=args1) exit_code1 = result1.exit_code stdout1 = result1.stdout stderr1 = result1.stderr assert stdout1 assert stderr1 assert exit_code1 == 0 args2 = [ cmd, "labels", "add", "--label", "badwolf1", "--label", "badwolf2" ] result2 = runner.invoke(cli=cli.cli, args=args2, input=result1.stdout) stderr2 = result2.stderr stdout2 = result2.stdout exit_code2 = result2.exit_code assert stdout2 assert stderr2 assert exit_code2 == 0 json2 = tools.json_load(stdout2) assert isinstance(json2, tools.INT) assert json2 == 1 args3 = [ cmd, "labels", "remove", "--label", "badwolf1", "--label", "badwolf2" ] result3 = runner.invoke(cli=cli.cli, args=args3, input=result1.stdout) stderr3 = result3.stderr stdout3 = result3.stdout exit_code3 = result3.exit_code assert stdout3 assert stderr3 assert exit_code3 == 0 json3 = tools.json_load(stdout3) assert isinstance(json3, tools.INT) assert json3 == 1
def test_query_file(self, request, monkeypatch, cmd): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) qf_contents = '(adapters == "aws_adapter")' qf_file = "qf.txt" args1 = [ cmd, "get", "--query-file", qf_file, "--export-format", "json", "--max-rows", "1", ] with runner.isolated_filesystem(): with open(qf_file, "w") as f: f.write(qf_contents) result1 = runner.invoke(cli=cli.cli, args=args1) exit_code1 = result1.exit_code stdout1 = result1.stdout stderr1 = result1.stderr assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, tools.LIST)
def test_get_csv(self, request, monkeypatch): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = ["adapters", "get"] result1 = runner.invoke(cli=cli.cli, args=args1) stderr1 = result1.stderr stdout1 = result1.stdout exit_code1 = result1.exit_code assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, tools.LIST) args2 = [ "adapters", "cnx", "get", "--rows", "-", "--export-format", "csv" ] result2 = runner.invoke(cli=cli.cli, args=args2, input=stdout1) stderr2 = result2.stderr stdout2 = result2.stdout exit_code2 = result2.exit_code assert stdout2 assert stderr2 assert exit_code2 == 0 csv_cols2 = [ "adapter_name", "node_name", "id", "uuid", "status_raw", "error" ] utils.check_csv_cols(stdout2, csv_cols2)
def test_check_csv(self, request, monkeypatch): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = ["adapters", "get", "-n", "active_directory"] result1 = runner.invoke(cli=cli.cli, args=args1) stderr1 = result1.stderr exit_code1 = result1.exit_code assert result1.stdout assert stderr1 assert exit_code1 == 0 assert isinstance(tools.json_load(result1.stdout), tools.LIST) args3 = [ "-nw", "adapters", "cnx", "check", "-r", "-", "-ne", "-xt", "csv" ] result3 = runner.invoke(cli=cli.cli, args=args3, input=result1.stdout) stderr3 = result3.stderr stdout3 = result3.stdout # exit_code3 = result3.exit_code assert stdout3 assert stderr3 csv_cols3 = [ "adapter_name", "node_name", "id", "uuid", "status_raw", "error" ] utils.check_csv_cols(stdout3, csv_cols3)
def test_json(self, request, monkeypatch, get_by): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = [ "users", get_by, "--value", ".*", "--value-regex", "--export-format", "json", "--max-rows", "1", ] result1 = runner.invoke(cli=cli.cli, args=args1) exit_code1 = result1.exit_code stdout1 = result1.stdout stderr1 = result1.stderr assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, tools.LIST)
def test_delete_error(self, request, monkeypatch): """Pass.""" delete_me = { "adapter_name": "badwolf", "adapter_name_raw": "badwolf", "config_raw": {}, "node_id": "badwolf", "node_name": "badwolf", "id": "badwolf", "uuid": "badwolf", "status": "badwolf", "error": "badwolf", } runner = utils.load_clirunner(request, monkeypatch) args1 = [ "adapters", "cnx", "delete", "--rows", "-", "--force", "--wait", "0" ] result1 = runner.invoke(cli=cli.cli, args=args1, input=tools.json_dump(delete_me)) stderr1 = result1.stderr stdout1 = result1.stdout exit_code1 = result1.exit_code assert stdout1 assert stderr1 assert exit_code1 == 1 json1 = tools.json_load(stdout1) assert isinstance(json1, tools.LIST)
def test_json(self, request, monkeypatch, cmd): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = [ cmd, "get", "--query", "(adapters > size(0))", "--export-format", "json", "--max-rows", "1", ] result1 = runner.invoke(cli=cli.cli, args=args1) exit_code1 = result1.exit_code stdout1 = result1.stdout stderr1 = result1.stderr assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, tools.LIST)
def test_json(self, request, monkeypatch, cmd): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = [cmd, "fields", "--export-format", "json"] result1 = runner.invoke(cli=cli.cli, args=args1) exit_code1 = result1.exit_code stdout1 = result1.stdout stderr1 = result1.stderr assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, dict)
def test_json(self, request, monkeypatch, cmd): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = [cmd, "labels", "get"] result1 = runner.invoke(cli=cli.cli, args=args1) stderr1 = result1.stderr stdout1 = result1.stdout exit_code1 = result1.exit_code assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, tools.LIST)
def test_adapter_re(self, request, monkeypatch, cmd): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = [cmd, "fields", "--adapter-re", "generic"] result1 = runner.invoke(cli=cli.cli, args=args1) exit_code1 = result1.exit_code stdout1 = result1.stdout stderr1 = result1.stderr assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, dict) assert list(json1) == ["generic"]
def test_json(self, request, monkeypatch, cmd): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = [cmd, "count", "--query", "(adapters > size(0))"] result1 = runner.invoke(cli=cli.cli, args=args1) exit_code1 = result1.exit_code stdout1 = result1.stdout stderr1 = result1.stderr assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(result1.stdout) assert isinstance(json1, tools.INT)
def test_adapter_fields_re(self, request, monkeypatch, cmd): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) args1 = [cmd, "fields", "--adapter-re", "generic", "--field-re", "name"] result1 = runner.invoke(cli=cli.cli, args=args1) exit_code1 = result1.exit_code stdout1 = result1.stdout stderr1 = result1.stderr assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, dict) for k, v in json1.items(): assert k == "generic" for i in v: assert "name" in i
def test_load_error_true(self): """Simple test.""" x = "xxx" with pytest.raises(Exception): json_load(obj=x, error=True)
def test_load(self): """Simple test.""" x = "{}" y = json_load(obj=x) assert y == {}
def test_load_error_false(self): """Simple test.""" x = "xxx" y = json_load(obj=x, error=False) assert y == "xxx"
def test_json_cf(self, request, monkeypatch, cmd): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) name = "badwolf" query = "(adapters > size(0))" field = "labels" cfilter = "generic:{}=a".format(field) args1 = [ cmd, "saved-query", "add", "--name", name, "--query", query, "--sort-field", field, "--column-filter", cfilter, ] result1 = runner.invoke(cli=cli.cli, args=args1) exit_code1 = result1.exit_code stdout1 = result1.stdout stderr1 = result1.stderr assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, dict) assert json1["name"] == name args2 = [cmd, "saved-query", "get-by-name", "--value", name] result2 = runner.invoke(cli=cli.cli, args=args2) exit_code2 = result2.exit_code stdout2 = result2.stdout stderr2 = result2.stderr assert stdout2 assert stderr2 assert exit_code2 == 0 json2 = tools.json_load(stdout2) assert isinstance(json2, dict) assert json2["name"] == name args3 = [cmd, "saved-query", "delete", "--wait", "0", "-n", name] result3 = runner.invoke(cli=cli.cli, args=args3) exit_code3 = result3.exit_code stdout3 = result3.stdout stderr3 = result3.stderr assert not stdout3.strip() assert stderr3 assert exit_code3 == 0 assert not result3.stdout
def test_query_file(self, request, monkeypatch, cmd): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) name = "badwolf" field = "labels" cfilter = "generic:{}=a".format(field) qf_contents = '(adapters == "aws_adapter")' qf_file = "qf.txt" args1 = [ cmd, "saved-query", "add", "--name", name, "--query-file", qf_file, "--sort-field", field, "--column-filter", cfilter, ] with runner.isolated_filesystem(): with open(qf_file, "w") as f: f.write(qf_contents) result1 = runner.invoke(cli=cli.cli, args=args1) exit_code1 = result1.exit_code stdout1 = result1.stdout stderr1 = result1.stderr assert stdout1 assert stderr1 assert exit_code1 == 0 json1 = tools.json_load(stdout1) assert isinstance(json1, dict) assert json1["name"] == name args2 = [cmd, "saved-query", "get-by-name", "--value", name] result2 = runner.invoke(cli=cli.cli, args=args2) exit_code2 = result2.exit_code stdout2 = result2.stdout stderr2 = result2.stderr assert stdout2 assert stderr2 assert exit_code2 == 0 json2 = tools.json_load(stdout2) assert isinstance(json2, dict) assert json2["name"] == name args3 = [cmd, "saved-query", "delete", "--wait", "0", "-n", name] result3 = runner.invoke(cli=cli.cli, args=args3) exit_code3 = result3.exit_code stdout3 = result3.stdout stderr3 = result3.stderr assert not stdout3.strip() assert stderr3 assert exit_code3 == 0 assert not result3.stdout
def test_add_check_discover_delete_csv_err(self, request, monkeypatch): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) csv_file = "badwolf.csv" csv_contents = "xx,yy\nbadwolf9131,badwolf\n" """ echo "x" > /tmp/input.csv axonshell a c a -a csv -c user_id=input.csv -c csv=/tmp/input.csv -npo | \ axonshell a c c -r - -ne | \ axonshell a c di -r - -ne | \ axonshell a c de -r - -f -w 0 """ with runner.isolated_filesystem(): with open(csv_file, "w") as f: f.write(csv_contents) csv_path = tools.path(csv_file) args1 = [ "adapters", "cnx", "add", "--adapter", "csv", "--config", "user_id={}".format(csv_file), "--config", "csv={}".format(csv_path), "--no-prompt-opt", ] result1 = runner.invoke(cli=cli.cli, args=args1) stderr1 = result1.stderr stdout1 = result1.stdout exit_code1 = result1.exit_code assert stdout1 assert stderr1 assert exit_code1 == 1 json1 = tools.json_load(stdout1) assert isinstance(json1, dict) args2 = ["adapters", "cnx", "check", "--rows", "-"] result2 = runner.invoke(cli=cli.cli, args=args2, input=stdout1) stderr2 = result2.stderr stdout2 = result2.stdout exit_code2 = result2.exit_code assert stdout2 assert stderr2 assert exit_code2 == 1 json2 = tools.json_load(stdout2) assert isinstance(json2, tools.LIST) args3 = ["adapters", "cnx", "discover", "--rows", "-"] result3 = runner.invoke(cli=cli.cli, args=args3, input=stdout2) stderr3 = result3.stderr stdout3 = result3.stdout exit_code3 = result3.exit_code assert stdout3 assert stderr3 assert exit_code3 == 1 json3 = tools.json_load(stdout3) assert isinstance(json3, tools.LIST) args4 = [ "adapters", "cnx", "delete", "--rows", "-", "--force", "--wait", "0" ] result4 = runner.invoke(cli=cli.cli, args=args4, input=stdout3) stderr4 = result4.stderr stdout4 = result4.stdout exit_code4 = result4.exit_code assert stdout4 assert stderr4 assert exit_code4 == 0 json4 = tools.json_load(stdout4) assert isinstance(json4, tools.LIST)
def test_add_delete_ad_config_args(self, request, monkeypatch): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) csv_file = "badwolf.csv" csv_contents = "id,hostname\nbadwolf9131,badwolf\n" # configs = { "dc_name": "badwolf", "user": "******", "password": "******", "dns_server_address": "badwolf", "alternative_dns_suffix": "badwolf", "use_ssl": "Unencrypted", "ca_file": csv_file, "cert_file": csv_file, "private_key": csv_file, "fetch_disabled_devices": "y", "fetch_disabled_users": "y", "is_ad_gc": "y", "ldap_ou_whitelist": "badwolf1,badwolf2", } with runner.isolated_filesystem(): with open(csv_file, "w") as f: f.write(csv_contents) args1 = ["adapters", "cnx", "add", "--adapter", "active_directory"] for k, v in configs.items(): args1.append("--config") args1.append("{}={}".format(k, v)) result1 = runner.invoke(cli=cli.cli, args=args1) stderr1 = result1.stderr stdout1 = result1.stdout exit_code1 = result1.exit_code assert stdout1 assert stderr1 assert exit_code1 == 1 json1 = tools.json_load(stdout1) assert isinstance(json1, dict) args2 = [ "adapters", "cnx", "delete", "--rows", "-", "--force", "--wait", "0" ] result2 = runner.invoke(cli=cli.cli, args=args2, input=stdout1) stderr2 = result2.stderr stdout2 = result2.stdout exit_code2 = result2.exit_code assert stdout2 assert stderr2 assert exit_code2 == 0 json2 = tools.json_load(stdout2) assert isinstance(json2, tools.LIST)
def test_add_delete_ad_config_prompt_skips(self, request, monkeypatch): """Pass.""" runner = utils.load_clirunner(request, monkeypatch) skips = ["ca_file", "cert_file", "private_key"] configs = [ "badwolf", # dc_name "badwolf", # user "badwolf", # password "badwolf", # dns_server_address "badwolf", # alternative_dns_suffix "Unencrypted", # use_ssl # csv_file, # ca_file # csv_file, # cert_file # csv_file, # private_key "y", # fetch_disabled_devices "y", # fetch_disabled_users "y", # is_ad_gc "badwolf1,badwolf2", # ldap_ou_whitelist ] args1 = ["adapters", "cnx", "add", "--adapter", "active_directory"] for s in skips: args1 += ["--skip", s] result1 = runner.invoke(cli=cli.cli, args=args1, input="\n".join(configs)) stderr1 = result1.stderr stdout1 = result1.stdout exit_code1 = result1.exit_code assert stdout1 assert stderr1 assert exit_code1 == 1 json_start_idx = stdout1.index("{") stdout1_stripped = stdout1[json_start_idx:] json1 = tools.json_load(stdout1_stripped) assert isinstance(json1, dict) args2 = [ "adapters", "cnx", "delete", "--rows", "-", "--force", "--wait", "0", "--no-error", ] result2 = runner.invoke(cli=cli.cli, args=args2, input=stdout1_stripped) stderr2 = result2.stderr stdout2 = result2.stdout exit_code2 = result2.exit_code assert stdout2 assert stderr2 assert exit_code2 == 0 json2 = tools.json_load(stdout2) assert isinstance(json2, tools.LIST)