Remove unnecessary imports, add tests

This commit is contained in:
Delirious Lettuce 2017-07-08 11:31:25 -06:00
parent 5b08372b72
commit e54d6b8648

View File

@ -17,30 +17,55 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import locale, os
import types
import pytest
from onionshare import common, strings from onionshare import common, strings
# Stub get_resource_path so it finds the correct path while running tests
def get_resource_path(filename): # # Stub get_resource_path so it finds the correct path while running tests
resources_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'share') # def get_resource_path(filename):
path = os.path.join(resources_dir, filename) # resources_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'share')
return path # path = os.path.join(resources_dir, filename)
common.get_resource_path = get_resource_path # return path
# common.get_resource_path = get_resource_path
def test_starts_with_empty_strings(): def test_starts_with_empty_strings():
"""creates an empty strings dict by default""" """ Creates an empty strings dict by default """
assert strings.strings == {} assert strings.strings == {}
def test_load_strings_defaults_to_english(): def test_underscore_is_function():
"""load_strings() loads English by default""" assert callable(strings._) and isinstance(strings._, types.FunctionType)
locale.getdefaultlocale = lambda: ('en_US', 'UTF-8')
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) strings.load_strings(common)
assert strings._('wait_for_hs') == "Waiting for HS to be ready:" assert strings._('wait_for_hs') == "Waiting for HS to be ready:"
def test_load_strings_loads_other_languages(): def test_load_strings_loads_other_languages(
"""load_strings() loads other languages in different locales""" self, locale_fr, sys_onionshare_dev_mode):
locale.getdefaultlocale = lambda: ('fr_FR', 'UTF-8') """ load_strings() loads other languages in different locales """
strings.load_strings(common, "fr") strings.load_strings(common, "fr")
assert strings._('wait_for_hs') == "En attente du HS:" 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')