diff --git a/gns3server/handlers/api/project_handler.py b/gns3server/handlers/api/project_handler.py index 0e00ffb8..e80339fa 100644 --- a/gns3server/handlers/api/project_handler.py +++ b/gns3server/handlers/api/project_handler.py @@ -153,7 +153,7 @@ class ProjectHandler: pm = ProjectManager.instance() project = pm.get_project(request.match_info["project_id"]) - if ProjectHandler._notifications_listening == 0: + if ProjectHandler._notifications_listening <= 1: yield from project.close() pm.remove_project(project.id) else: diff --git a/tests/conftest.py b/tests/conftest.py index 42cc8750..2d8547f1 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -137,13 +137,14 @@ def ethernet_device(): @pytest.yield_fixture(autouse=True) -def run_around_tests(monkeypatch): +def run_around_tests(monkeypatch, port_manager): """ This setup a temporay project file environnement around tests """ tmppath = tempfile.mkdtemp() + port_manager._instance = port_manager config = Config.instance() config.clear() config.set("Server", "project_directory", tmppath) @@ -157,7 +158,6 @@ def run_around_tests(monkeypatch): # Force turn off KVM because it's not available on CI config.set("Qemu", "enable_kvm", False) - monkeypatch.setattr("gns3server.modules.project.Project._get_default_project_directory", lambda *args: tmppath) # Force sys.platform to the original value. Because it seem not be restore correctly at each tests @@ -171,6 +171,7 @@ def run_around_tests(monkeypatch): except: pass + @pytest.yield_fixture def darwin_platform(): """