36 lines
1008 B
Python
36 lines
1008 B
Python
#pylint: disable=C0111
|
|
#pylint: disable=W0621
|
|
|
|
from courseware.mock_xqueue_server.mock_xqueue_server import MockXQueueServer
|
|
from lettuce import before, after, world
|
|
from django.conf import settings
|
|
import threading
|
|
|
|
@before.all
|
|
def setup_mock_xqueue_server():
|
|
|
|
# Retrieve the local port from settings
|
|
server_port = settings.XQUEUE_PORT
|
|
|
|
# Create the mock server instance
|
|
server = MockXQueueServer(server_port)
|
|
|
|
# Start the server running in a separate daemon thread
|
|
# Because the thread is a daemon, it will terminate
|
|
# when the main thread terminates.
|
|
server_thread = threading.Thread(target=server.serve_forever)
|
|
server_thread.daemon = True
|
|
server_thread.start()
|
|
|
|
# Store the server instance in lettuce's world
|
|
# so that other steps can access it
|
|
# (and we can shut it down later)
|
|
world.xqueue_server = server
|
|
|
|
|
|
@after.all
|
|
def teardown_mock_xqueue_server(total):
|
|
|
|
# Stop the xqueue server and free up the port
|
|
world.xqueue_server.shutdown()
|