feat: implement verbosity

This commit is contained in:
cclecle
2024-03-29 03:25:18 +00:00
parent 872dab1ed9
commit 2d753205ca
2 changed files with 36 additions and 1 deletions

View File

@@ -15,6 +15,7 @@ from typing import cast, Union, Optional
import sys
from tap import Tap
from loguru import logger
from . import __Summuary__, __Name__
from . import datasync
@@ -86,8 +87,17 @@ def fct_main(i_args: list[str]) -> None: # pylint: disable=too-many-branches,to
args: dabdatasync_args = parser.parse_args(i_args)
logger.remove()
if args.verbosity:
pass
if args.verbosity == 1:
logger.add(sys.stdout, level="WARNING")
elif args.verbosity == 2:
logger.add(sys.stdout, level="INFO")
else:
logger.add(sys.stdout, level="DEBUG")
else:
logger.add(sys.stdout, level="ERROR")
logger.add(sys.stderr, level="ERROR")
dabdatasync = datasync.DataSync_Factory.get_DataSync()
if len(dabdatasync) == 0:

View File

@@ -47,6 +47,31 @@ class TestDabDataSync(unittest.TestCase):
print(capted_stdout.getvalue())
print(capted_stderr.getvalue())
def test_cli_verbosity(self):
dabdatasync.DataSync_Factory.manifest_path = testdir_path / "test_manifest_nextcloud.json"
fct_main(["WipeRemoteData"])
with redirect_stdout(StringIO()) as capted_stdout, redirect_stderr(StringIO()) as capted_stderr:
fct_main(["PullData"])
self.assertEqual(capted_stdout.getvalue(), "")
self.assertEqual(capted_stderr.getvalue(), "")
fct_main(["WipeLocalData"])
with redirect_stdout(StringIO()) as capted_stdout, redirect_stderr(StringIO()) as capted_stderr:
fct_main(["-v", "PullData"])
self.assertTrue("WARNING" in capted_stdout.getvalue())
self.assertFalse("INFO" in capted_stdout.getvalue())
self.assertEqual(capted_stderr.getvalue(), "")
fct_main(["WipeLocalData"])
with redirect_stdout(StringIO()) as capted_stdout, redirect_stderr(StringIO()) as capted_stderr:
fct_main(["-vv", "PullData"])
self.assertTrue("INFO" in capted_stdout.getvalue())
self.assertTrue("WARNING" in capted_stdout.getvalue())
self.assertEqual(capted_stderr.getvalue(), "")
def test_cli_GetServices(self):
dabdatasync.DataSync_Factory.manifest_path = testdir_path / "test_manifest_nextcloud.json"
with redirect_stdout(StringIO()) as capted_stdout, redirect_stderr(StringIO()) as capted_stderr: