def setup_class(cls): """Set the test up.""" cls.runner = CliRunner() cls.agent_name = "myagent" cls.cwd = os.getcwd() cls.t = tempfile.mkdtemp() os.chdir(cls.t) result = cls.runner.invoke(cli, [*CLI_LOG_OPTION, "create", cls.agent_name], standalone_mode=False) assert result.exit_code == 0 os.chdir(Path(cls.t, cls.agent_name)) result = cls.runner.invoke(cli, [*CLI_LOG_OPTION, "add", "connection", "local"], standalone_mode=False) assert result.exit_code == 0 shutil.copytree(Path(CUR_PATH, "data", "exception_skill"), Path(cls.t, cls.agent_name, "skills", "exception")) config_path = Path(cls.t, cls.agent_name, DEFAULT_AEA_CONFIG_FILE) config = yaml.safe_load(open(config_path)) config.setdefault("skills", []).append("exception") yaml.safe_dump(config, open(config_path, "w")) try: cli.main([*CLI_LOG_OPTION, "run", "--connections", "local"]) except SystemExit as e: cls.exit_code = e.code
def setup_class(cls): """Set the test up.""" cls.runner = CliRunner() cls.agent_name = "myagent" cls.connection_id = "author/unknown_connection:0.1.0" cls.connection_name = "unknown_connection" cls.patch = mock.patch.object(aea.cli.common.logger, "error") cls.mocked_logger_error = cls.patch.__enter__() cls.cwd = os.getcwd() cls.t = tempfile.mkdtemp() # copy the 'packages' directory in the parent of the agent folder. shutil.copytree(Path(CUR_PATH, "..", "packages"), Path(cls.t, "packages")) os.chdir(cls.t) result = cls.runner.invoke(cli, [*CLI_LOG_OPTION, "init", "--author", AUTHOR]) assert result.exit_code == 0 result = cls.runner.invoke( cli, [*CLI_LOG_OPTION, "create", cls.agent_name], standalone_mode=False ) assert result.exit_code == 0 os.chdir(Path(cls.t, cls.agent_name)) try: cli.main([*CLI_LOG_OPTION, "run", "--connections", cls.connection_id]) except SystemExit as e: cls.exit_code = e.code
def setup_class(cls): """Set the test up.""" cls.runner = CliRunner() cls.agent_name = "myagent" cls.patch = mock.patch.object(aea.cli.common.logger, "error") cls.mocked_logger_error = cls.patch.__enter__() cls.cwd = os.getcwd() cls.t = tempfile.mkdtemp() # copy the 'packages' directory in the parent of the agent folder. shutil.copytree(Path(CUR_PATH, "..", "packages"), Path(cls.t, "packages")) os.chdir(cls.t) result = cls.runner.invoke( cli, [*CLI_LOG_OPTION, "init", "--local", "--author", AUTHOR]) assert result.exit_code == 0 result = cls.runner.invoke( cli, [*CLI_LOG_OPTION, "create", "--local", cls.agent_name], standalone_mode=False, ) assert result.exit_code == 0 Path(cls.t, cls.agent_name, DEFAULT_AEA_CONFIG_FILE).unlink() os.chdir(Path(cls.t, cls.agent_name)) try: cli.main(["--skip-consistency-check", *CLI_LOG_OPTION, "run"]) except SystemExit as e: cls.exit_code = e.code
def test_run_ethereum_private_key_config(pytestconfig): """Test that the command 'aea run' works as expected.""" if pytestconfig.getoption("ci"): pytest.skip("Skipping the test since it doesn't work in CI.") runner = CliRunner() agent_name = "myagent" cwd = os.getcwd() t = tempfile.mkdtemp() # copy the 'packages' directory in the parent of the agent folder. shutil.copytree(Path(CUR_PATH, "..", "packages"), Path(t, "packages")) os.chdir(t) result = runner.invoke( cli, [*CLI_LOG_OPTION, "init", "--local", "--author", AUTHOR]) assert result.exit_code == 0 result = runner.invoke(cli, [*CLI_LOG_OPTION, "create", "--local", agent_name]) assert result.exit_code == 0 os.chdir(Path(t, agent_name)) result = runner.invoke(cli, [ *CLI_LOG_OPTION, "add", "--local", "connection", "fetchai/local:0.1.0" ]) assert result.exit_code == 0 # Load the agent yaml file and manually insert the things we need file = open("aea-config.yaml", mode="r") # read all lines at once whole_file = file.read() find_text = "private_key_paths: {}" replace_text = """private_key_paths: ethereum: default_private_key_not.txt""" whole_file = whole_file.replace(find_text, replace_text) # close the file file.close() with open("aea-config.yaml", "w") as f: f.write(whole_file) error_msg = "" try: cli.main( [*CLI_LOG_OPTION, "run", "--connections", "fetchai/local:0.1.0"]) except SystemExit as e: error_msg = str(e) assert error_msg == "1" os.chdir(cwd) try: shutil.rmtree(t) except (OSError, IOError): pass
def setup_class(cls): """Set the test up.""" cls.runner = CliRunner() cls.agent_name = "myagent" cls.connection_id = PublicId.from_str("fetchai/local:0.1.0") cls.connection_author = cls.connection_id.author cls.connection_name = cls.connection_id.name cls.patch = mock.patch.object(aea.cli.common.logger, "error") cls.mocked_logger_error = cls.patch.__enter__() cls.cwd = os.getcwd() cls.t = tempfile.mkdtemp() # copy the 'packages' directory in the parent of the agent folder. shutil.copytree(Path(CUR_PATH, "..", "packages"), Path(cls.t, "packages")) os.chdir(cls.t) result = cls.runner.invoke( cli, [*CLI_LOG_OPTION, "init", "--local", "--author", AUTHOR]) assert result.exit_code == 0 result = cls.runner.invoke( cli, [*CLI_LOG_OPTION, "create", "--local", cls.agent_name], standalone_mode=False, ) assert result.exit_code == 0 os.chdir(Path(cls.t, cls.agent_name)) result = cls.runner.invoke( cli, [ *CLI_LOG_OPTION, "add", "--local", "connection", str(cls.connection_id) ], standalone_mode=False, ) assert result.exit_code == 0 connection_module_path = Path( cls.t, cls.agent_name, "vendor", "fetchai", "connections", cls.connection_name, "connection.py", ) connection_module_path.unlink() cls.relative_connection_module_path = connection_module_path.relative_to( Path(cls.t, cls.agent_name)) try: cli.main([ "--skip-consistency-check", *CLI_LOG_OPTION, "run", "--connections", str(cls.connection_id), ]) except SystemExit as e: cls.exit_code = e.code
def test_run_unknown_private_key(pytestconfig): """Test that the command 'aea run' works as expected.""" if pytestconfig.getoption("ci"): pytest.skip("Skipping the test since it doesn't work in CI.") runner = CliRunner() agent_name = "myagent" cwd = os.getcwd() t = tempfile.mkdtemp() os.chdir(t) result = runner.invoke(cli, [*CLI_LOG_OPTION, "create", agent_name]) assert result.exit_code == 0 os.chdir(Path(t, agent_name)) result = runner.invoke(cli, [*CLI_LOG_OPTION, "add", "connection", "local"]) assert result.exit_code == 0 # Load the agent yaml file and manually insert the things we need file = open("aea-config.yaml", mode='r') # read all lines at once whole_file = file.read() find_text = "private_key_paths: []" replace_text = """private_key_paths: - private_key_path: ledger: fetchai-not path: fet_private_key.txt""" whole_file = whole_file.replace(find_text, replace_text) # close the file file.close() with open("aea-config.yaml", 'w') as f: f.write(whole_file) # Private key needs to exist otherwise doesn't get to code path we are interested in testing with open("fet_private_key.txt", 'w') as f: f.write("3801d3703a1fcef18f6bf393fba89245f36b175f4989d8d6e026300dad21e05d") error_msg = "" try: cli.main([*CLI_LOG_OPTION, "run", "--connections", "local"]) except Exception as e: error_msg = str(e) assert error_msg == "Unsupported identifier in private key paths." os.chdir(cwd) try: shutil.rmtree(t) except (OSError, IOError): pass
def setup_class(cls): """Set the test up.""" cls.runner = CliRunner() cls.agent_name = "myagent" cls.cwd = os.getcwd() cls.t = tempfile.mkdtemp() # copy the 'packages' directory in the parent of the agent folder. shutil.copytree(Path(ROOT_DIR, "packages"), Path(cls.t, "packages")) os.chdir(cls.t) result = cls.runner.invoke( cli, [*CLI_LOG_OPTION, "init", "--local", "--author", AUTHOR]) assert result.exit_code == 0 result = cls.runner.invoke( cli, [*CLI_LOG_OPTION, "create", "--local", cls.agent_name], standalone_mode=False, ) assert result.exit_code == 0 os.chdir(Path(cls.t, cls.agent_name)) result = cls.runner.invoke( cli, [ *CLI_LOG_OPTION, "add", "--local", "connection", "fetchai/http_client:0.7.0", ], standalone_mode=False, ) assert result.exit_code == 0 shutil.copytree( Path(ROOT_DIR, "tests", "data", "exception_skill"), Path(cls.t, cls.agent_name, "vendor", "fetchai", "skills", "exception"), ) config_path = Path(cls.t, cls.agent_name, DEFAULT_AEA_CONFIG_FILE) config = yaml.safe_load(open(config_path)) config.setdefault("skills", []).append("fetchai/exception:0.1.0") yaml.safe_dump(config, open(config_path, "w")) try: cli.main([ *CLI_LOG_OPTION, "run", "--connections", "fetchai/http_client:0.7.0" ]) except SystemExit as e: cls.exit_code = e.code
def test_run_unknown_ledger(pytestconfig): """Test that the command 'aea run' works as expected.""" if pytestconfig.getoption("ci"): pytest.skip("Skipping the test since it doesn't work in CI.") runner = CliRunner() agent_name = "myagent" cwd = os.getcwd() t = tempfile.mkdtemp() os.chdir(t) result = runner.invoke(cli, [*CLI_LOG_OPTION, "create", agent_name]) assert result.exit_code == 0 os.chdir(Path(t, agent_name)) result = runner.invoke(cli, [*CLI_LOG_OPTION, "add", "connection", "local"]) assert result.exit_code == 0 # Load the agent yaml file and manually insert the things we need file = open("aea-config.yaml", mode='r') # read all lines at once whole_file = file.read() # add in the ledger address find_text = "ledger_apis: []" replace_text = """ledger_apis: - ledger_api: addr: https://ropsten.infura.io/v3/f00f7b3ba0e848ddbdc8941c527447fe ledger: ethereum-not port: 3""" whole_file = whole_file.replace(find_text, replace_text) # close the file file.close() with open("aea-config.yaml", 'w') as f: f.write(whole_file) error_msg = "" try: cli.main([*CLI_LOG_OPTION, "run", "--connections", "local"]) except Exception as e: error_msg = str(e) assert error_msg == "Unsupported identifier in ledger apis." os.chdir(cwd) try: shutil.rmtree(t) except (OSError, IOError): pass
def test_run_ethereum_private_key_config(pytestconfig): """Test that the command 'aea run' works as expected.""" if pytestconfig.getoption("ci"): pytest.skip("Skipping the test since it doesn't work in CI.") runner = CliRunner() agent_name = "myagent" cwd = os.getcwd() t = tempfile.mkdtemp() os.chdir(t) result = runner.invoke(cli, [*CLI_LOG_OPTION, "create", agent_name]) assert result.exit_code == 0 os.chdir(Path(t, agent_name)) result = runner.invoke(cli, [*CLI_LOG_OPTION, "add", "connection", "local"]) assert result.exit_code == 0 # Load the agent yaml file and manually insert the things we need file = open("aea-config.yaml", mode='r') # read all lines at once whole_file = file.read() find_text = "private_key_paths: []" replace_text = """private_key_paths: - private_key_path: ledger: ethereum path: default_private_key_not.txt""" whole_file = whole_file.replace(find_text, replace_text) # close the file file.close() with open("aea-config.yaml", 'w') as f: f.write(whole_file) error_msg = "" try: cli.main([*CLI_LOG_OPTION, "run", "--connections", "local"]) except SystemExit as e: error_msg = str(e) assert error_msg == "1" os.chdir(cwd) try: shutil.rmtree(t) except (OSError, IOError): pass
def setup_class(cls): """Set the test up.""" cls.runner = CliRunner() cls.agent_name = "myagent" cls.connection_name = "unknown_connection" cls.patch = unittest.mock.patch.object(aea.cli.common.logger, 'error') cls.mocked_logger_error = cls.patch.__enter__() cls.cwd = os.getcwd() cls.t = tempfile.mkdtemp() os.chdir(cls.t) result = cls.runner.invoke(cli, [*CLI_LOG_OPTION, "create", cls.agent_name], standalone_mode=False) assert result.exit_code == 0 os.chdir(Path(cls.t, cls.agent_name)) try: cli.main([*CLI_LOG_OPTION, "run", "--connections", cls.connection_name]) except SystemExit as e: cls.exit_code = e.code
def test_run_unknown_ledger(pytestconfig): """Test that the command 'aea run' works as expected.""" if pytestconfig.getoption("ci"): pytest.skip("Skipping the test since it doesn't work in CI.") runner = CliRunner() agent_name = "myagent" cwd = os.getcwd() t = tempfile.mkdtemp() # copy the 'packages' directory in the parent of the agent folder. shutil.copytree(Path(CUR_PATH, "..", "packages"), Path(t, "packages")) os.chdir(t) result = runner.invoke(cli, [*CLI_LOG_OPTION, "init", "--author", AUTHOR]) assert result.exit_code == 0 result = runner.invoke(cli, [*CLI_LOG_OPTION, "create", agent_name]) assert result.exit_code == 0 os.chdir(Path(t, agent_name)) result = runner.invoke( cli, [*CLI_LOG_OPTION, "add", "connection", "fetchai/local:0.1.0"] ) assert result.exit_code == 0 # Load the agent yaml file and manually insert the things we need file = open("aea-config.yaml", mode="r") # read all lines at once whole_file = file.read() # add in the ledger address find_text = "ledger_apis: {}" replace_text = """ledger_apis: unknown: address: https://ropsten.infura.io/v3/f00f7b3ba0e848ddbdc8941c527447fe chain_id: 3 gas_price: 20""" whole_file = whole_file.replace(find_text, replace_text) # close the file file.close() with open("aea-config.yaml", "w") as f: f.write(whole_file) error_msg = "" try: cli.main([*CLI_LOG_OPTION, "run", "--connections", "fetchai/local:0.1.0"]) except Exception as e: error_msg = str(e) assert error_msg == "Unsupported identifier in ledger apis." os.chdir(cwd) try: shutil.rmtree(t) except (OSError, IOError): pass
def test_run_unknown_private_key(pytestconfig): """Test that the command 'aea run' works as expected.""" if pytestconfig.getoption("ci"): pytest.skip("Skipping the test since it doesn't work in CI.") patch = mock.patch.object(aea.cli.common.logger, "error") mocked_logger_error = patch.__enter__() runner = CliRunner() agent_name = "myagent" cwd = os.getcwd() t = tempfile.mkdtemp() # copy the 'packages' directory in the parent of the agent folder. shutil.copytree(Path(CUR_PATH, "..", "packages"), Path(t, "packages")) os.chdir(t) result = runner.invoke( cli, [*CLI_LOG_OPTION, "init", "--local", "--author", AUTHOR]) assert result.exit_code == 0 result = runner.invoke(cli, [*CLI_LOG_OPTION, "create", "--local", agent_name]) assert result.exit_code == 0 os.chdir(Path(t, agent_name)) result = runner.invoke(cli, [ *CLI_LOG_OPTION, "add", "--local", "connection", "fetchai/local:0.1.0" ]) assert result.exit_code == 0 # Load the agent yaml file and manually insert the things we need file = open("aea-config.yaml", mode="r") # read all lines at once whole_file = file.read() find_text = "private_key_paths: {}" replace_text = """private_key_paths: fetchai-not: fet_private_key.txt""" whole_file = whole_file.replace(find_text, replace_text) # close the file file.close() with open("aea-config.yaml", "w") as f: f.write(whole_file) # Private key needs to exist otherwise doesn't get to code path we are interested in testing with open("fet_private_key.txt", "w") as f: f.write( "3801d3703a1fcef18f6bf393fba89245f36b175f4989d8d6e026300dad21e05d") try: cli.main( [*CLI_LOG_OPTION, "run", "--connections", "fetchai/local:0.1.0"]) except SystemExit: pass mocked_logger_error.assert_called_with( "Unsupported identifier in private key paths.") os.chdir(cwd) try: shutil.rmtree(t) except (OSError, IOError): pass