#!/usr/bin/env python3 """ Run Direct Exchange Test """ import asyncio import sys import os # Add current directory to Python path sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from product.direct_publish import setup_direct_exchange, direct_publish from comsumer.direct_consumer import start_all_direct_consumers async def run_direct_exchange_test(): """Run direct exchange test with producer and consumer""" print("=== Running Direct Exchange Test ===") # Start consumer in background consumer_task = asyncio.create_task(start_all_direct_consumers()) # Wait for consumer to start await asyncio.sleep(1) # Setup exchange and publish messages await setup_direct_exchange() test_messages = [ ("System crash, unable to start", "error"), # Route to error queue ("Disk space insufficient", "warning"), # Route to warning queue ("User login successful", "info"), # Route to info queue ("Debug info: Database connection successful", "debug") # Route to info queue ] for msg, routing_key in test_messages: await direct_publish(msg, routing_key) await asyncio.sleep(0.5) # Wait for messages to be processed await asyncio.sleep(3) # Cancel consumer consumer_task.cancel() print("✅ Direct exchange test completed successfully!") if __name__ == "__main__": asyncio.run(run_direct_exchange_test())