From ba162425acd5f68b707d8de7f9cd6fb75e620312 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Sun, 3 May 2020 18:41:19 +0530 Subject: [PATCH] test: Add translation extraction test --- frappe/tests/test_translate.py | 26 ++++++++++++++++++++++++++ frappe/tests/translation_test_file.txt | 21 +++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 frappe/tests/test_translate.py create mode 100644 frappe/tests/translation_test_file.txt diff --git a/frappe/tests/test_translate.py b/frappe/tests/test_translate.py new file mode 100644 index 0000000000..02dbd46fa5 --- /dev/null +++ b/frappe/tests/test_translate.py @@ -0,0 +1,26 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt +from __future__ import unicode_literals + +import frappe, unittest, os +import frappe.translate + +dirname = os.path.dirname(__file__) +translation_string_file = os.path.join(dirname, 'translation_test_file.txt') + +class TestTranslate(unittest.TestCase): + def test_extract_message_from_file(self): + data = frappe.translate.get_messages_from_file(translation_string_file) + self.assertListEqual(data, expected_output) + +expected_output = [ + ('apps/frappe/frappe/tests/translation_test_file.txt', 'Warning: Unable to find {0} in any table related to {1}', 'This is some context', 2), + ('apps/frappe/frappe/tests/translation_test_file.txt', 'Warning: Unable to find {0} in any table related to {1}', None, 4), + ('apps/frappe/frappe/tests/translation_test_file.txt', "You don't have any messages yet.", None, 6), + ('apps/frappe/frappe/tests/translation_test_file.txt', 'Submit', 'Some DocType', 8), + ('apps/frappe/frappe/tests/translation_test_file.txt', 'Warning: Unable to find {0} in any table related to {1}', 'This is some context', 15), + ('apps/frappe/frappe/tests/translation_test_file.txt', 'Submit', 'Some DocType', 17), + ('apps/frappe/frappe/tests/translation_test_file.txt', "You don't have any messages yet.", None, 19), + ('apps/frappe/frappe/tests/translation_test_file.txt', "You don't have any messages yet.", None, 21) +] + diff --git a/frappe/tests/translation_test_file.txt b/frappe/tests/translation_test_file.txt new file mode 100644 index 0000000000..45f67a806b --- /dev/null +++ b/frappe/tests/translation_test_file.txt @@ -0,0 +1,21 @@ +// JS syntax +__("Warning: Unable to find {0} in any table related to {1}" , ['Key', 'DocType'], "This is some context") + +__("Warning: Unable to find {0} in any table related to {1}" , ['Key', 'DocType']) + +__("You don't have any messages yet.") + +__('Submit' , null, "Some DocType") + +// this is considered as invalid +__('You don\'t have any messages yet.') + + +// Python syntax +_("Warning: Unable to find {0} in any table related to {1}", context="This is some context").format('Key', 'DocType') + +_('Submit', context="Some DocType") + +_("""You don't have any messages yet.""") + +_('''You don't have any messages yet.''') \ No newline at end of file