46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
#pylint: disable=C0111
|
|
#pylint: disable=W0621
|
|
from xmodule.util.mock_youtube_server.mock_youtube_server import MockYoutubeServer
|
|
from lettuce import before, after, world
|
|
from django.conf import settings
|
|
import threading
|
|
|
|
from logging import getLogger
|
|
logger = getLogger(__name__)
|
|
|
|
|
|
@before.all
|
|
def setup_mock_youtube_server():
|
|
server_host = '127.0.0.1'
|
|
|
|
server_port = settings.VIDEO_PORT
|
|
|
|
address = (server_host, server_port)
|
|
|
|
# Create the mock server instance
|
|
server = MockYoutubeServer(address)
|
|
logger.debug("Youtube server started at {} port".format(str(server_port)))
|
|
|
|
server.time_to_response = 0.1 # seconds
|
|
|
|
server.address = address
|
|
|
|
# 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.youtube_server = server
|
|
|
|
|
|
@after.all
|
|
def teardown_mock_youtube_server(total):
|
|
|
|
# Stop the LTI server and free up the port
|
|
world.youtube_server.shutdown()
|