add has_config
Signed-off-by: Václav Valíček <valicek1994@gmail.com>
This commit is contained in:
parent
7293289a1a
commit
525c27795c
|
@ -1,5 +1,6 @@
|
||||||
import os.path
|
import os.path
|
||||||
from repo_cloner.lib.dir_not_found_error import DirNotFoundError
|
from repo_cloner.lib.dir_not_found_error import DirNotFoundError
|
||||||
|
from repo_cloner.lib.config_file_not_found_error import ConfigFileNotFoundError
|
||||||
|
|
||||||
|
|
||||||
class RepoDirStructure():
|
class RepoDirStructure():
|
||||||
|
@ -15,25 +16,29 @@ class RepoDirStructure():
|
||||||
self._repos_dir = os.path.join(self._base_dir, "repos")
|
self._repos_dir = os.path.join(self._base_dir, "repos")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def base_dir_exists(self):
|
def __config_filename(self) -> str:
|
||||||
|
return os.path.join(self.conf_dir, "cloner.cfg")
|
||||||
|
|
||||||
|
@property
|
||||||
|
def base_dir_exists(self) -> bool:
|
||||||
if not os.path.isdir(self._base_dir):
|
if not os.path.isdir(self._base_dir):
|
||||||
raise DirNotFoundError(self._base_dir)
|
raise DirNotFoundError(self._base_dir)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def conf_dir_exists(self):
|
def conf_dir_exists(self) -> bool:
|
||||||
if not os.path.isdir(self._conf_dir):
|
if not os.path.isdir(self._conf_dir):
|
||||||
raise DirNotFoundError(self._conf_dir)
|
raise DirNotFoundError(self._conf_dir)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def cache_dir_exists(self):
|
def cache_dir_exists(self) -> bool:
|
||||||
if not os.path.isdir(self._cache_dir):
|
if not os.path.isdir(self._cache_dir):
|
||||||
raise DirNotFoundError(self._cache_dir)
|
raise DirNotFoundError(self._cache_dir)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def repos_dir_exists(self):
|
def repos_dir_exists(self) -> bool:
|
||||||
if not os.path.isdir(self._repos_dir):
|
if not os.path.isdir(self._repos_dir):
|
||||||
raise DirNotFoundError(self._repos_dir)
|
raise DirNotFoundError(self._repos_dir)
|
||||||
return True
|
return True
|
||||||
|
@ -64,3 +69,9 @@ class RepoDirStructure():
|
||||||
@property
|
@property
|
||||||
def repos_dir(self) -> str:
|
def repos_dir(self) -> str:
|
||||||
return self._repos_dir
|
return self._repos_dir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def has_config(self) -> bool:
|
||||||
|
if not os.path.exists(self.__config_filename):
|
||||||
|
raise ConfigFileNotFoundError(self.__config_filename)
|
||||||
|
return True
|
||||||
|
|
|
@ -2,6 +2,7 @@ import xml.dom.expatbuilder
|
||||||
|
|
||||||
from repo_cloner.lib.repo_dir_structure import RepoDirStructure
|
from repo_cloner.lib.repo_dir_structure import RepoDirStructure
|
||||||
from repo_cloner.lib.dir_not_found_error import DirNotFoundError
|
from repo_cloner.lib.dir_not_found_error import DirNotFoundError
|
||||||
|
from repo_cloner.lib.config_file_not_found_error import ConfigFileNotFoundError
|
||||||
from pathlib import PosixPath
|
from pathlib import PosixPath
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
@ -14,6 +15,11 @@ def test_init():
|
||||||
assert X._cache_dir == "/tmp/cache"
|
assert X._cache_dir == "/tmp/cache"
|
||||||
|
|
||||||
|
|
||||||
|
def test_config_filename():
|
||||||
|
X = RepoDirStructure("/tmp")
|
||||||
|
assert X._RepoDirStructure__config_filename == "/tmp/config/cloner.cfg"
|
||||||
|
|
||||||
|
|
||||||
def test_no_base_dir(tmp_path: PosixPath):
|
def test_no_base_dir(tmp_path: PosixPath):
|
||||||
x = tmp_path.joinpath("nonexistent")
|
x = tmp_path.joinpath("nonexistent")
|
||||||
X = RepoDirStructure(x)
|
X = RepoDirStructure(x)
|
||||||
|
@ -81,3 +87,18 @@ def test_config_dir():
|
||||||
def test_repos_dir():
|
def test_repos_dir():
|
||||||
X = RepoDirStructure("/a/c")
|
X = RepoDirStructure("/a/c")
|
||||||
assert X.repos_dir == "/a/c/repos"
|
assert X.repos_dir == "/a/c/repos"
|
||||||
|
|
||||||
|
|
||||||
|
def test_has_config(tmp_path: PosixPath):
|
||||||
|
tmp_path.joinpath("config").mkdir()
|
||||||
|
tmp_path.joinpath("cache").mkdir()
|
||||||
|
tmp_path.joinpath("repos").mkdir()
|
||||||
|
|
||||||
|
X = RepoDirStructure(tmp_path)
|
||||||
|
with pytest.raises(ConfigFileNotFoundError) as excinfo:
|
||||||
|
X.has_config
|
||||||
|
assert "Config file does not exist: " in excinfo.exconly()
|
||||||
|
assert "config/cloner.cfg" in excinfo.exconly()
|
||||||
|
|
||||||
|
tmp_path.joinpath("config", "cloner.cfg").touch()
|
||||||
|
assert X.has_config
|
||||||
|
|
Loading…
Reference in New Issue
Block a user