Merge pull request #1202 from merwanehamadi/feature/setup-integration-tests

Feature/setup integration tests
pull/1628/head
Richard Beales 2023-04-15 16:13:01 +01:00 committed by GitHub
commit 95f7ed607a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 64 additions and 1 deletions

5
.gitignore vendored
View File

@ -151,4 +151,7 @@ dmypy.json
# Pyre type checker
.pyre/
llama-*
vicuna-*
vicuna-*
# mac
.DS_Store

60
tests/smoke_test.py Normal file
View File

@ -0,0 +1,60 @@
import os
import subprocess
import sys
import unittest
from autogpt.file_operations import delete_file, read_file
env_vars = {
'MEMORY_BACKEND': 'no_memory',
'TEMPERATURE': "0"
}
class TestCommands(unittest.TestCase):
def test_write_file(self):
# 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.
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'.
self.assertEqual(content, 'Hello World', f"Expected 'Hello World', got {content}")
# Run the test case.
if __name__ == '__main__':
unittest.main()