cloner.detector_run
Signed-off-by: Václav Valíček <valicek1994@gmail.com>
This commit is contained in:
parent
5277051f51
commit
12c59f9b23
|
@ -212,8 +212,11 @@ class Cloner:
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def detector_enabled(self) -> bool:
|
def detector_enabled(self) -> bool:
|
||||||
|
log.debug(f"Querying detector config file")
|
||||||
return os.path.exists(os.path.join(self._dirs.conf_dir, self.__detector_cfg))
|
return os.path.exists(os.path.join(self._dirs.conf_dir, self.__detector_cfg))
|
||||||
|
|
||||||
def run_detector(self, callback: Callable[[DetectedCommit], None]):
|
def detector_run(self, callback: Callable[[DetectedCommit], None]):
|
||||||
detector = Detector(self.__main_repo_path, self._dirs.cache_dir, self._config.cloner_project_name)
|
detector = Detector(Path(self.__main_repo_path), Path(self._dirs.cache_dir), self._config.cloner_project_name)
|
||||||
|
if detector.check_fingerprint():
|
||||||
|
log.debug(f"Starting detector discovery")
|
||||||
detector.run(callback)
|
detector.run(callback)
|
||||||
|
|
|
@ -495,3 +495,31 @@ def test_detector_enabled(cloner_dir_with_config):
|
||||||
assert not cl.detector_enabled
|
assert not cl.detector_enabled
|
||||||
Path(cloner_dir_with_config).joinpath("config", "detector.cfg").touch()
|
Path(cloner_dir_with_config).joinpath("config", "detector.cfg").touch()
|
||||||
assert cl.detector_enabled
|
assert cl.detector_enabled
|
||||||
|
|
||||||
|
|
||||||
|
def test_detector_run(cloner_dir_with_config):
|
||||||
|
called = False
|
||||||
|
|
||||||
|
def callback_test(commit):
|
||||||
|
nonlocal called
|
||||||
|
called = True
|
||||||
|
|
||||||
|
def run_mock(callback):
|
||||||
|
callback("Anything")
|
||||||
|
|
||||||
|
ds = MockDirStruct(cloner_dir_with_config)
|
||||||
|
ds.config.cloner_repo_url = "https://mock"
|
||||||
|
|
||||||
|
mocks = {
|
||||||
|
'check_fingerprint': MagicMock(side_effect = [False, True]),
|
||||||
|
'run': MagicMock(side_effect = run_mock),
|
||||||
|
}
|
||||||
|
|
||||||
|
with patch.multiple('repo_cloner.lib.cloner.Detector', **mocks):
|
||||||
|
cl = Cloner(ds)
|
||||||
|
cl.detector_run(callback_test)
|
||||||
|
assert not repo_cloner.lib.cloner.Detector.run.called
|
||||||
|
assert not called
|
||||||
|
cl.detector_run(callback_test)
|
||||||
|
assert repo_cloner.lib.cloner.Detector.run.called
|
||||||
|
assert called
|
||||||
|
|
Loading…
Reference in New Issue
Block a user