mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2025-12-18 14:34:23 +01:00
65 lines
2.3 KiB
Python
65 lines
2.3 KiB
Python
import threading
|
|
import time
|
|
import unittest
|
|
|
|
import requests
|
|
|
|
|
|
class TestAPIRequests(unittest.TestCase):
|
|
URL = "http://localhost:8080"
|
|
|
|
def test_post_correct_then_incorrect_test_name(self):
|
|
payload1 = {"test": "WriteFile", "mock": True}
|
|
|
|
# First POST request
|
|
response1 = requests.post(self.URL + "/reports", json=payload1)
|
|
self.assertEqual(response1.status_code, 200)
|
|
# Here you might want to check other aspects of the response, e.g., response1.json()
|
|
print(response1.json())
|
|
self.assertNotEqual(response1.json()["tests"], {})
|
|
payload2 = {"test": "TestWriteFile", "mock": True}
|
|
|
|
# Second POST request
|
|
response2 = requests.post(self.URL + "/reports", json=payload2)
|
|
print(response2.json())
|
|
|
|
self.assertEqual(response2.json()["tests"], {})
|
|
assert response1.json() != {}
|
|
# Here you might want to check other aspects of the response, e.g., response2.json()
|
|
|
|
def test_invalid_payload(self):
|
|
invalid_payload = {"invalid_key": "value"}
|
|
response = requests.post(self.URL + "/reports", json=invalid_payload)
|
|
self.assertEqual(response.status_code, 422) # Assuming 400 for Bad Request
|
|
|
|
def test_post_report_and_poll_updates(self):
|
|
payload1 = {"test": "WriteFile", "mock": True}
|
|
last_update_time = int(time.time())
|
|
# First POST request in a separate thread
|
|
threading.Thread(target=self.send_post_request, args=(payload1,)).start()
|
|
|
|
# Give a short time to ensure POST request is initiated before GET requests start
|
|
|
|
# Start GET requests
|
|
for _ in range(5):
|
|
# get the current UNIX time
|
|
response = requests.get(
|
|
f"{self.URL}/updates?last_update_time={last_update_time}"
|
|
)
|
|
if response.status_code == 200 and response.json():
|
|
print("Received a non-empty response:", response.json())
|
|
break
|
|
|
|
time.sleep(1) # wait for 1 second before the next request
|
|
else:
|
|
self.fail("No updates received")
|
|
|
|
def send_post_request(self, payload):
|
|
response = requests.post(f"{self.URL}/reports", json=payload)
|
|
if response.status_code == 200:
|
|
print(response.json())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|