import sys
import os
import pytest
import subprocess
import time


@pytest.fixture(scope="session", autouse=True)
def server(request):
    """
    Starts GNS3 server for all the tests.
    """

    cwd = os.path.dirname(os.path.abspath(__file__))
    server_script = os.path.join(cwd, "../gns3server/main.py")
    process = subprocess.Popen([sys.executable, server_script, "--port=8000"])
    time.sleep(1)  # give some time for the process to start
    request.addfinalizer(process.terminate)
    return process