From e54d6b8648d3fa4f2fe41733b6dad70ef15e7a71 Mon Sep 17 00:00:00 2001 From: Delirious Lettuce Date: Sat, 8 Jul 2017 11:31:25 -0600 Subject: [PATCH] Remove unnecessary imports, add tests --- test/onionshare_strings_test.py | 61 +++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/test/onionshare_strings_test.py b/test/onionshare_strings_test.py index ee532b81..d9fa9896 100644 --- a/test/onionshare_strings_test.py +++ b/test/onionshare_strings_test.py @@ -17,30 +17,55 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . """ -import locale, os + +import types + +import pytest + from onionshare import common, strings -# Stub get_resource_path so it finds the correct path while running tests -def get_resource_path(filename): - resources_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'share') - path = os.path.join(resources_dir, filename) - return path -common.get_resource_path = get_resource_path + +# # Stub get_resource_path so it finds the correct path while running tests +# def get_resource_path(filename): +# resources_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'share') +# path = os.path.join(resources_dir, filename) +# return path +# common.get_resource_path = get_resource_path + def test_starts_with_empty_strings(): - """creates an empty strings dict by default""" + """ Creates an empty strings dict by default """ assert strings.strings == {} -def test_load_strings_defaults_to_english(): - """load_strings() loads English by default""" - locale.getdefaultlocale = lambda: ('en_US', 'UTF-8') - strings.load_strings(common) - assert strings._('wait_for_hs') == "Waiting for HS to be ready:" +def test_underscore_is_function(): + assert callable(strings._) and isinstance(strings._, types.FunctionType) -def test_load_strings_loads_other_languages(): - """load_strings() loads other languages in different locales""" - locale.getdefaultlocale = lambda: ('fr_FR', 'UTF-8') - strings.load_strings(common, "fr") - assert strings._('wait_for_hs') == "En attente du HS:" +class TestLoadStrings: + def test_load_strings_defaults_to_english( + self, locale_en, sys_onionshare_dev_mode): + """ load_strings() loads English by default """ + strings.load_strings(common) + assert strings._('wait_for_hs') == "Waiting for HS to be ready:" + + + def test_load_strings_loads_other_languages( + self, locale_fr, sys_onionshare_dev_mode): + """ load_strings() loads other languages in different locales """ + strings.load_strings(common, "fr") + assert strings._('wait_for_hs') == "En attente du HS:" + + def test_load_partial_strings( + self, locale_ru, sys_onionshare_dev_mode): + strings.load_strings(common) + assert strings._("give_this_url") == ( + "Отправьте эту ссылку тому человеку, " + "которому вы хотите передать файл:") + assert strings._('wait_for_hs') == "Waiting for HS to be ready:" + + def test_load_invalid_locale( + self, locale_invalid, sys_onionshare_dev_mode): + """ load_strings() raises a KeyError for an invalid locale """ + with pytest.raises(KeyError): + strings.load_strings(common, 'XX')