Spaces:
Runtime error
Runtime error
"""Smoke test for the autogpt package.""" | |
import os | |
import subprocess | |
import sys | |
import pytest | |
from autogpt.commands.file_operations import delete_file, read_file | |
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"): | |
# Clean up any existing 'hello_world.txt' file before testing. | |
delete_file("hello_world.txt") | |
# Prepare input data for the test. | |
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" | |
# Execute the script with the input data. | |
process = subprocess.Popen( | |
command, | |
stdin=subprocess.PIPE, | |
shell=True, | |
env={**os.environ, **env_vars}, | |
) | |
process.communicate(input_data.encode()) | |
# Read the content of the 'hello_world.txt' file created during the test. | |
content = read_file("hello_world.txt") | |
finally: | |
if ai_settings: | |
# Restore the original ai_settings.yaml file. | |
with open("ai_settings.yaml", "w") as f: | |
f.write(ai_settings) | |
# Check if the content of the 'hello_world.txt' file is equal to 'Hello World'. | |
assert content == "Hello World", f"Expected 'Hello World', got {content}" | |