Spaces:
Running
Running
Delete workers
Browse files- workers/test_worker.py +0 -101
workers/test_worker.py
DELETED
@@ -1,101 +0,0 @@
|
|
1 |
-
import json
|
2 |
-
import pika
|
3 |
-
from loguru import logger
|
4 |
-
from services.queue_service import queue_service
|
5 |
-
from services.test_service import test_service
|
6 |
-
from services.database_service import db_service
|
7 |
-
from models.base import TestCase, TestScript
|
8 |
-
|
9 |
-
def process_test_generation(ch, method, properties, body):
|
10 |
-
"""Process test generation messages"""
|
11 |
-
try:
|
12 |
-
data = json.loads(body)
|
13 |
-
document_id = data.get('document_id')
|
14 |
-
|
15 |
-
with db_service.get_session() as session:
|
16 |
-
# Generate test cases
|
17 |
-
test_cases = test_service.generate_test_cases(
|
18 |
-
document_id=document_id,
|
19 |
-
session=session
|
20 |
-
)
|
21 |
-
|
22 |
-
# Save test cases to database
|
23 |
-
for test_case in test_cases:
|
24 |
-
db_test_case = TestCase(
|
25 |
-
document_id=document_id,
|
26 |
-
title=test_case['title'],
|
27 |
-
description=test_case['description'],
|
28 |
-
steps=test_case['steps'],
|
29 |
-
expected_results=test_case['expected_results'],
|
30 |
-
priority=test_case.get('priority', 1)
|
31 |
-
)
|
32 |
-
session.add(db_test_case)
|
33 |
-
|
34 |
-
# Generate test scripts
|
35 |
-
for test_case in test_cases:
|
36 |
-
scripts = test_service.generate_test_scripts(test_case)
|
37 |
-
for script in scripts:
|
38 |
-
db_script = TestScript(
|
39 |
-
test_case_id=db_test_case.id,
|
40 |
-
language=script['language'],
|
41 |
-
code=script['code'],
|
42 |
-
framework=script['framework']
|
43 |
-
)
|
44 |
-
session.add(db_script)
|
45 |
-
|
46 |
-
ch.basic_ack(delivery_tag=method.delivery_tag)
|
47 |
-
logger.info(f"Successfully processed test generation for document {document_id}")
|
48 |
-
|
49 |
-
except Exception as e:
|
50 |
-
logger.error(f"Error processing test generation: {str(e)}")
|
51 |
-
ch.basic_nack(delivery_tag=method.delivery_tag, requeue=True)
|
52 |
-
|
53 |
-
def process_test_execution(ch, method, properties, body):
|
54 |
-
"""Process test execution messages"""
|
55 |
-
try:
|
56 |
-
data = json.loads(body)
|
57 |
-
test_case_id = data.get('test_case_id')
|
58 |
-
|
59 |
-
with db_service.get_session() as session:
|
60 |
-
test_case = session.query(TestCase).get(test_case_id)
|
61 |
-
if not test_case:
|
62 |
-
raise ValueError(f"Test case {test_case_id} not found")
|
63 |
-
|
64 |
-
# Execute test case
|
65 |
-
result = test_service.execute_test_case(test_case)
|
66 |
-
|
67 |
-
# Update test case status
|
68 |
-
test_case.status = result['status']
|
69 |
-
session.commit()
|
70 |
-
|
71 |
-
ch.basic_ack(delivery_tag=method.delivery_tag)
|
72 |
-
logger.info(f"Successfully executed test case {test_case_id}")
|
73 |
-
|
74 |
-
except Exception as e:
|
75 |
-
logger.error(f"Error executing test case: {str(e)}")
|
76 |
-
ch.basic_nack(delivery_tag=method.delivery_tag, requeue=True)
|
77 |
-
|
78 |
-
def main():
|
79 |
-
"""Start the worker"""
|
80 |
-
try:
|
81 |
-
# Start consuming test generation messages
|
82 |
-
queue_service.consume_messages(
|
83 |
-
queue="test_generation",
|
84 |
-
callback=process_test_generation
|
85 |
-
)
|
86 |
-
|
87 |
-
# Start consuming test execution messages
|
88 |
-
queue_service.consume_messages(
|
89 |
-
queue="test_execution",
|
90 |
-
callback=process_test_execution
|
91 |
-
)
|
92 |
-
|
93 |
-
except KeyboardInterrupt:
|
94 |
-
logger.info("Worker stopped by user")
|
95 |
-
except Exception as e:
|
96 |
-
logger.error(f"Worker error: {str(e)}")
|
97 |
-
finally:
|
98 |
-
queue_service.close()
|
99 |
-
|
100 |
-
if __name__ == "__main__":
|
101 |
-
main()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|