class TestGui: """Test that the command 'aea gui' works as expected.""" def setup(self): """Set the test up.""" self.runner = CliRunner() self.schema = json.load(open(AGENT_CONFIGURATION_SCHEMA)) self.resolver = jsonschema.RefResolver( make_jsonschema_base_uri( Path(CONFIGURATION_SCHEMA_DIR).absolute()), self.schema, ) self.validator = Draft4Validator(self.schema, resolver=self.resolver) self.agent_name = "myagent" self.cwd = os.getcwd() self.t = tempfile.mkdtemp() os.chdir(self.t) result = self.runner.invoke( cli, [*CLI_LOG_OPTION, "init", "--local", "--author", "test_author"], ) assert result.exit_code == 0 @pytest.mark.flaky(reruns=MAX_FLAKY_RERUNS) def test_gui(self): """Test that the gui process has been spawned correctly.""" self.proc = PexpectWrapper( # nosec [sys.executable, "-m", "aea.cli", "-v", "DEBUG", "gui"], encoding="utf-8", logfile=sys.stdout, ) self.proc.expect_exact(["Running on http://"], timeout=20) assert tcpping("127.0.0.1", 8080) def teardown(self): """Tear the test down.""" self.proc.terminate() self.proc.wait_to_complete(10) os.chdir(self.cwd) try: shutil.rmtree(self.t) except OSError: pass
def test_run_with_default_connection(): """Test that the command 'aea run' works as expected.""" 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(ROOT_DIR, "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)) try: process = PexpectWrapper( # nosec [sys.executable, "-m", "aea.cli", "run"], env=os.environ.copy(), maxread=10000, encoding="utf-8", logfile=sys.stdout, ) process.expect("Start processing messages", timeout=10) process.control_c() process.wait_to_complete(10) assert process.returncode == 0 finally: process.terminate() process.wait_to_complete(10) os.chdir(cwd) try: shutil.rmtree(t) except (OSError, IOError): pass
def test_gym_ex(): """Run the gym ex sequence.""" try: process = PexpectWrapper( # nosec [ sys.executable, str(Path("examples/gym_ex/train.py").resolve()), "--nb-steps", "50", ], env=os.environ.copy(), maxread=1, encoding="utf-8", logfile=sys.stdout, ) process.expect(["Step 50/50"], timeout=10) process.wait_to_complete(5) assert process.returncode == 0, "Test failed" finally: process.terminate() process.wait()
def test_gym_ex(self): """Run the gym ex sequence.""" try: env = os.environ.copy() env["PYTHONPATH"] = f"{self.t}{env_path_separator()}{env.get('PYTHONPATH', '')}" process = PexpectWrapper( # nosec [ sys.executable, str(Path("examples/gym_ex/train.py").resolve()), "--nb-steps", "50", ], env=env, maxread=1, encoding="utf-8", logfile=sys.stdout, ) process.expect(["Step 50/50"], timeout=10) process.wait_to_complete(5) assert process.returncode == 0, "Test failed" finally: process.terminate() process.wait()
def test_run_with_install_deps_and_requirement_file(): """Test that the command 'aea run --install-deps' with requirement file does not crash.""" 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(ROOT_DIR, "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/http_client:0.7.0" ], ) assert result.exit_code == 0 result = runner.invoke( cli, [ *CLI_LOG_OPTION, "config", "set", "agent.default_connection", "fetchai/http_client:0.7.0", ], ) assert result.exit_code == 0 result = runner.invoke(cli, [*CLI_LOG_OPTION, "freeze"]) assert result.exit_code == 0 Path(t, agent_name, "requirements.txt").write_text(result.output) try: process = PexpectWrapper( [ sys.executable, "-m", "aea.cli", "-v", "DEBUG", "run", "--install-deps", "--connections", "fetchai/http_client:0.7.0", ], env=os.environ, maxread=10000, encoding="utf-8", logfile=sys.stdout, ) process.expect_all(["Start processing messages..."], timeout=30) time.sleep(1.0) process.control_c() process.wait_to_complete(10) assert process.returncode == 0 finally: process.terminate() process.wait_to_complete(10) os.chdir(cwd) try: shutil.rmtree(t) except (OSError, IOError): pass
def test_run_with_install_deps(): """Test that the command 'aea run --install-deps' does not crash.""" runner = CliRunner() agent_name = "myagent" cwd = os.getcwd() t = tempfile.mkdtemp() # copy the 'packages' directory in the parent of the agent folder. packages_src = os.path.join(ROOT_DIR, "packages") packages_dst = os.path.join(t, "packages") shutil.copytree(packages_src, packages_dst) 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", str(HTTP_ClIENT_PUBLIC_ID) ], ) assert result.exit_code == 0 result = runner.invoke( cli, [ *CLI_LOG_OPTION, "config", "set", "agent.default_connection", str(HTTP_ClIENT_PUBLIC_ID), ], ) assert result.exit_code == 0 try: process = PexpectWrapper( [ sys.executable, "-m", "aea.cli", "-v", "DEBUG", "run", "--install-deps", "--connections", str(HTTP_ClIENT_PUBLIC_ID), ], env=os.environ, maxread=10000, encoding="utf-8", logfile=sys.stdout, ) process.expect_all(["Start processing messages..."], timeout=30) time.sleep(1.0) process.control_c() process.wait_to_complete(10) assert process.returncode == 0 finally: process.terminate() process.wait_to_complete(10) os.chdir(cwd) try: shutil.rmtree(t) except (OSError, IOError): pass