diff --git a/api/__init__.py b/api/__init__.py index b5a6b78..17556e1 100644 --- a/api/__init__.py +++ b/api/__init__.py @@ -1,5 +1,5 @@ from .project import have_project, create_project, delete_project -from .project import is_project_open, open_project, close_project +from .project import is_project_open, get_project_open_count, open_project, close_project from .project import copy_project from .change_set import ChangeSet diff --git a/api/project.py b/api/project.py index d1d9e60..30743aa 100644 --- a/api/project.py +++ b/api/project.py @@ -34,6 +34,11 @@ def open_project(name: str) -> None: def is_project_open(name: str) -> bool: return name in conn +def get_project_open_count(name: str) -> int: + if is_project_open(name): + return _project_open_count[name] + return 0 + def close_project(name: str) -> None: if name in _project_open_count: _project_open_count[name] -= 1 diff --git a/test_tjnetwork.py b/test_tjnetwork.py index 1536a3a..478743a 100644 --- a/test_tjnetwork.py +++ b/test_tjnetwork.py @@ -16,6 +16,50 @@ class TestApi: close_project(p) delete_project(p) + def test_project(self): + p = "test_title" + + assert not have_project(p) + assert not is_project_open(p) + assert get_project_open_count(p) == 0 + + create_project(p) + + assert have_project(p) + assert not is_project_open(p) + assert get_project_open_count(p) == 0 + + open_project(p) + + assert have_project(p) + assert is_project_open(p) + assert get_project_open_count(p) == 1 + + open_project(p) + + assert have_project(p) + assert is_project_open(p) + assert get_project_open_count(p) == 2 + + close_project(p) + + assert have_project(p) + assert is_project_open(p) + assert get_project_open_count(p) == 1 + + close_project(p) + + assert have_project(p) + assert not is_project_open(p) + assert get_project_open_count(p) == 0 + + delete_project(p) + + assert not have_project(p) + assert not is_project_open(p) + assert get_project_open_count(p) == 0 + + def test_title(self): p = "test_title" self.enter(p) diff --git a/tjnetwork.py b/tjnetwork.py index f031b15..88d150e 100644 --- a/tjnetwork.py +++ b/tjnetwork.py @@ -50,6 +50,9 @@ def delete_project(name: str) -> None: def is_project_open(name: str) -> bool: return api.is_project_open(name) +def get_project_open_count(name: str) -> int: + return api.get_project_open_count(name) + def open_project(name: str) -> None: return api.open_project(name)