From dde47f1f709d515514dd989e54796ced9494cb84 Mon Sep 17 00:00:00 2001 From: axif Date: Sun, 27 Oct 2024 18:13:06 +0600 Subject: [PATCH] small issue and color the "ctrl+c" text --- src/scribe_data/cli/get.py | 60 ++++++++++++++++++++----------------- src/scribe_data/cli/main.py | 3 +- tests/cli/test_get.py | 31 +++++++++++++++++-- 3 files changed, 62 insertions(+), 32 deletions(-) diff --git a/src/scribe_data/cli/get.py b/src/scribe_data/cli/get.py index 779a35fb..92290d2d 100644 --- a/src/scribe_data/cli/get.py +++ b/src/scribe_data/cli/get.py @@ -96,34 +96,38 @@ def get_data( subprocess_result = False # Mark: Get All for Specified Language - - if all and language: - print(f"Updating all data types for language: {language}") - query_data( - languages=[language], - data_type=None, - output_dir=output_dir, - overwrite=overwrite, - ) - subprocess_result = True - - # Mark: Get All for Specified Data Type - - if all and data_type: - print(f"Updating all languages for data type: {data_type}") - query_data( - languages=None, - data_type=[data_type], - output_dir=output_dir, - overwrite=overwrite, - ) - subprocess_result = True - - # Mark: Get All for All Languages and Data Types - - elif all: - print("Updating all languages and data types ...") - query_data(None, None, output_dir, overwrite) + if all: + if language: + print(f"Updating all data types for language for {language}") + query_data( + languages=[language], + data_type=None, + output_dir=output_dir, + overwrite=overwrite, + ) + print( + f"Query completed for all data types with specified language for {language}." + ) + elif data_type: + print(f"Updating all languages for data type: {data_type}") + query_data( + languages=None, + data_type=[data_type], + output_dir=output_dir, + overwrite=overwrite, + ) + print( + f"Query completed for all languages with specified data type for {data_type}." + ) + else: + print("Updating all languages and data types ...") + query_data( + languages=None, + data_type=None, + output_dir=output_dir, + overwrite=overwrite, + ) + print("Query completed for all languages and all data types.") subprocess_result = True # Mark: Emojis diff --git a/src/scribe_data/cli/main.py b/src/scribe_data/cli/main.py index 876acc6d..7934e60d 100644 --- a/src/scribe_data/cli/main.py +++ b/src/scribe_data/cli/main.py @@ -23,6 +23,7 @@ #!/usr/bin/env python3 import argparse from pathlib import Path +from rich import print as rprint from scribe_data.cli.cli_utils import validate_language_and_data_type from scribe_data.cli.convert import convert_wrapper @@ -298,7 +299,7 @@ def main() -> None: parser.print_help() except KeyboardInterrupt: - print("Execution was interrupted by the user.") + rprint("[bold red]Execution was interrupted by the user.[/bold red]") if __name__ == "__main__": diff --git a/tests/cli/test_get.py b/tests/cli/test_get.py index a1e21e75..99690733 100644 --- a/tests/cli/test_get.py +++ b/tests/cli/test_get.py @@ -48,9 +48,34 @@ def test_invalid_arguments(self): # MARK: All Data @patch("scribe_data.cli.get.query_data") - def test_get_all_data(self, mock_query_data): - get_data(all=True) - mock_query_data.assert_called_once_with(None, None, None, False) + def test_get_all_data_types_for_language(self, mock_query_data): + get_data(all=True, language="English") + mock_query_data.assert_called_once_with( + languages=["English"], + data_type=None, + output_dir="scribe_data_json_export", + overwrite=False, + ) + + @patch("scribe_data.cli.get.query_data") + def test_get_all_languages_for_data_type(self, mock_query_data): + get_data(all=True, data_type="nouns") + mock_query_data.assert_called_once_with( + languages=None, + data_type=["nouns"], + output_dir="scribe_data_json_export", + overwrite=False, + ) + + @patch("scribe_data.cli.get.query_data") + def test_get_all_languages_and_data_types(self, mock_query_data): + get_data(all=True, output_dir="./test_output") + mock_query_data.assert_called_once_with( + languages=None, + data_type=None, + output_dir="./test_output", + overwrite=False, + ) # MARK: Language and Data Type