|
"""Smoke test for the autogpt package.""" |
|
import os |
|
import subprocess |
|
import sys |
|
|
|
import pytest |
|
|
|
from autogpt.commands.file_operations import delete_file, read_file |
|
|
|
|
|
@pytest.mark.integration_test |
|
def test_write_file() -> None: |
|
""" |
|
Test case to check if the write_file command can successfully write 'Hello World' to a file |
|
named 'hello_world.txt'. |
|
|
|
Read the current ai_settings.yaml file and store its content. |
|
""" |
|
env_vars = {"MEMORY_BACKEND": "no_memory", "TEMPERATURE": "0"} |
|
ai_settings = None |
|
if os.path.exists("ai_settings.yaml"): |
|
with open("ai_settings.yaml", "r") as f: |
|
ai_settings = f.read() |
|
os.remove("ai_settings.yaml") |
|
|
|
try: |
|
if os.path.exists("hello_world.txt"): |
|
|
|
delete_file("hello_world.txt") |
|
|
|
input_data = """write_file-GPT |
|
an AI designed to use the write_file command to write 'Hello World' into a file named "hello_world.txt" and then use the task_complete command to complete the task. |
|
Use the write_file command to write 'Hello World' into a file named "hello_world.txt". |
|
Use the task_complete command to complete the task. |
|
Do not use any other commands. |
|
|
|
y -5 |
|
EOF""" |
|
command = f"{sys.executable} -m autogpt" |
|
|
|
|
|
process = subprocess.Popen( |
|
command, |
|
stdin=subprocess.PIPE, |
|
shell=True, |
|
env={**os.environ, **env_vars}, |
|
) |
|
process.communicate(input_data.encode()) |
|
|
|
|
|
content = read_file("hello_world.txt") |
|
finally: |
|
if ai_settings: |
|
|
|
with open("ai_settings.yaml", "w") as f: |
|
f.write(ai_settings) |
|
|
|
|
|
assert content == "Hello World", f"Expected 'Hello World', got {content}" |
|
|