WIP: Add tests for http functions
This commit is contained in:
57
db.py
57
db.py
@@ -640,3 +640,60 @@ ORDER BY invocation_time DESC""", [http_function_id])
|
||||
[user_id],
|
||||
commit=True
|
||||
)
|
||||
|
||||
# Function Testing Methods
|
||||
def create_function_test(self, http_function_id, name, description, request_method, request_headers, request_body, expected_status, expected_output, assertions=None):
|
||||
"""Create a new test case for a function"""
|
||||
test = self.execute(
|
||||
'''INSERT INTO http_function_tests
|
||||
(http_function_id, name, description, request_method, request_headers, request_body, expected_status, expected_output, assertions)
|
||||
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)
|
||||
RETURNING id, http_function_id, name, description, request_method, request_headers, request_body, expected_status, expected_output, assertions, created_at, updated_at''',
|
||||
[http_function_id, name, description, request_method, json.dumps(request_headers), json.dumps(request_body), expected_status, json.dumps(expected_output) if expected_output else None, json.dumps(assertions) if assertions else '[]'],
|
||||
commit=True,
|
||||
one=True
|
||||
)
|
||||
return test
|
||||
|
||||
def get_function_tests(self, http_function_id):
|
||||
"""Get all test cases for a function"""
|
||||
tests = self.execute(
|
||||
'''SELECT id, http_function_id, name, description, request_method, request_headers, request_body, expected_status, expected_output, assertions, created_at, updated_at
|
||||
FROM http_function_tests
|
||||
WHERE http_function_id = %s
|
||||
ORDER BY created_at DESC''',
|
||||
[http_function_id]
|
||||
)
|
||||
return tests if tests else []
|
||||
|
||||
def get_function_test(self, test_id):
|
||||
"""Get a single test case"""
|
||||
test = self.execute(
|
||||
'''SELECT id, http_function_id, name, description, request_method, request_headers, request_body, expected_status, expected_output, assertions, created_at, updated_at
|
||||
FROM http_function_tests
|
||||
WHERE id = %s''',
|
||||
[test_id],
|
||||
one=True
|
||||
)
|
||||
return test
|
||||
|
||||
def update_function_test(self, test_id, name, description, request_method, request_headers, request_body, expected_status, expected_output, assertions=None):
|
||||
"""Update an existing test case"""
|
||||
test = self.execute(
|
||||
'''UPDATE http_function_tests
|
||||
SET name = %s, description = %s, request_method = %s, request_headers = %s, request_body = %s, expected_status = %s, expected_output = %s, assertions = %s, updated_at = NOW()
|
||||
WHERE id = %s
|
||||
RETURNING id, http_function_id, name, description, request_method, request_headers, request_body, expected_status, expected_output, assertions, created_at, updated_at''',
|
||||
[name, description, request_method, json.dumps(request_headers), json.dumps(request_body), expected_status, json.dumps(expected_output) if expected_output else None, json.dumps(assertions) if assertions else '[]', test_id],
|
||||
commit=True,
|
||||
one=True
|
||||
)
|
||||
return test
|
||||
|
||||
def delete_function_test(self, test_id):
|
||||
"""Delete a test case"""
|
||||
self.execute(
|
||||
'DELETE FROM http_function_tests WHERE id = %s',
|
||||
[test_id],
|
||||
commit=True
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user