diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 9a5c95b04d..caa2deaa87 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -180,7 +180,7 @@ class CuraEngineBackend(QObject, Backend): # \return list of commands and args / parameters. def getEngineCommand(self) -> List[str]: json_path = Resources.getPath(Resources.DefinitionContainers, "fdmprinter.def.json") - command = [self._application.getPreferences().getValue("backend/location"), "connect", "127.0.0.1:{0}".format(self._port), "-j", json_path, ""] + command = [self._application.getPreferences().getValue("backend/location"), "connect", "127.0.0.1:{0}".format(self._port), "-j", json_path, "-m1"] parser = argparse.ArgumentParser(prog = "cura", add_help = False) parser.add_argument("--debug", action = "store_true", default = False, help = "Turn on the debug mode by setting this option.") diff --git a/tests/TestShortcutKeys.py b/tests/TestShortcutKeys.py index 3f6f51446b..e1dae6727e 100644 --- a/tests/TestShortcutKeys.py +++ b/tests/TestShortcutKeys.py @@ -1,11 +1,9 @@ - import os import re -import unittest import pytest MSGCTXT = "msgctxt" # Scope of the text . Like : msgctxt "@action:inmenu menubar:help" -MSGID = "msgid" # The id tag, also English text version +MSGID = "msgid" # The id tag, also English text version MSGTR = "msgstr" # The translation tag COLOR_WARNING = '\033[93m' @@ -13,47 +11,41 @@ COLOR_ENDC = '\033[0m' regex_patter = '(&[\w])' #"&[a-zA-Z0-9]" - Search char '&' and at least one character after it + +# Directory where this python file resides +SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) + + # Check default language shortcut keys, by default it is English def test_default_shortcut_keys(): - language_folder = "de_DE" # choose German language folder, because we only need to test English shortcut keys, the message id is English translation translation_file_name = "cura.po" - plugin_file_path = os.path.dirname(os.path.abspath(__file__)) - path_records = os.path.split(plugin_file_path) - global_path = path_records[:-1] - cura_path = os.path.join(*global_path) - language_file_path = os.path.join(cura_path,"resources","i18n",language_folder, translation_file_name) - + cura_path = os.path.abspath(os.path.join(SCRIPT_DIR, "..")) + language_file_path = os.path.join(cura_path, "resources", "i18n", language_folder, translation_file_name) not_valid_shortcut_keys = getDuplicatedShortcutKeys(language_file_path, False) if len(not_valid_shortcut_keys) != 0: - temp='%s' % ', '.join(map(str, not_valid_shortcut_keys)) + temp = '%s' % ', '.join(map(str, not_valid_shortcut_keys)) print(COLOR_WARNING + "NOT VALID SHORTCUT KEYS: " + temp + COLOR_ENDC) - assert len(not_valid_shortcut_keys) == 0 - # If the 'findShortcutKeysInTranslation' is False the function will search shortcut keys in message id -def getDuplicatedShortcutKeys(language_file_path, findShortcutKeysInTranslation): +def getDuplicatedShortcutKeys(language_file_path: str, find_shortcut_keys_in_translation: bool): last_translation_scope = "" - # {shortcut_key, {scope, [translation_text]}} shortcut_keys = dict() with open(language_file_path, 'r') as f: for text in f: - if text.startswith(MSGCTXT): last_translation_scope = text - - elif text.startswith(MSGID) and findShortcutKeysInTranslation or text.startswith(MSGTR) and not findShortcutKeysInTranslation: - + elif text.startswith(MSGID) and find_shortcut_keys_in_translation or text.startswith(MSGTR) and not find_shortcut_keys_in_translation: # if text has '&'symbol and at least one character (char or digit) after it # ex '&acr mytest' -> this should return '&a' # ex '& acr mytest' -> returns None @@ -90,20 +82,18 @@ def getDuplicatedShortcutKeys(language_file_path, findShortcutKeysInTranslation) # Validate all shortcut keys for shortcut_key, scopes in shortcut_keys.items(): - # check, whether the key exist in the same scope multiple times or not for key, items in scopes.items(): - - #The shortcut keys should not be more than one time in the same scope + # The shortcut keys should not be more than one time in the same scope if len(items) > 1: not_valid_shortcut_keys += items return not_valid_shortcut_keys -@pytest.mark.parametrize("language_type", [("de_DE"),("es_ES"),("fi_FI"),("fr_FR"),("it_IT"),("ja_JP"),("ko_KR"),("nl_NL"),("pl_PL"),("pt_BR"),("ru_RU"),("tr_TR")]) +@pytest.mark.parametrize("language_type", [("de_DE"),("es_ES"),("fi_FI"),("fr_FR"),("it_IT"),("ja_JP"),("ko_KR"), + ("nl_NL"),("pl_PL"),("pt_BR"),("ru_RU"),("tr_TR")]) def test_shortcut_keys(language_type): - language_folder = language_type translation_file_name = "cura.po" @@ -112,17 +102,12 @@ def test_shortcut_keys(language_type): path_records = os.path.split(plugin_file_path) global_path = path_records[:-1] cura_path = os.path.join(*global_path) - language_file_path = os.path.join(cura_path,"resources","i18n",language_folder, translation_file_name) + language_file_path = os.path.join(cura_path, "resources", "i18n", language_folder, translation_file_name) not_valid_shortcut_keys = getDuplicatedShortcutKeys(language_file_path, False) if len(not_valid_shortcut_keys) != 0: - temp='%s' % ', '.join(map(str, not_valid_shortcut_keys)) + temp = "%s" % ", ".join(map(str, not_valid_shortcut_keys)) print(COLOR_WARNING + "NOT VALID SHORTCUT KEYS: " + temp + COLOR_ENDC) - assert len(not_valid_shortcut_keys) == 0 - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file