Skip to content

Commit

Permalink
Merge pull request #22 from RJacksonm1/master
Browse files Browse the repository at this point in the history
Fixed steam.loc.language throwing an inappropriate LanguageUnsupportedError
  • Loading branch information
Lagg committed May 14, 2014
2 parents ce07e7e + 192e44c commit f32d4d5
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 5 deletions.
11 changes: 6 additions & 5 deletions steam/loc.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,12 @@
import os
from . import api


class LanguageError(api.APIError):
pass


class LanguageUnsupportedError(LanguageError):
pass


class language(object):
""" Steam API localization tools and reference """

Expand All @@ -42,7 +39,7 @@ class language(object):
"zh_TW": "Traditional Chinese",
"tr_TR": "Turkish"}

_default_language = os.environ.get("LANG", "en_US").split('.')[0]
_default_language = "en_US"

def __init__(self, code=None):
""" Raises LanguageUnsupportedError if the code isn't supported by the
Expand All @@ -51,7 +48,11 @@ def __init__(self, code=None):
self._code = None

if not code:
self._code = language._default_language
_system_language = os.environ.get("LANG", language._default_language).split('.')[0]
if _system_language in language._languages.keys():
self._code = _system_language
else:
self._code = language._default_language
else:
code = code.lower()
for lcode, lname in language._languages.items():
Expand Down
28 changes: 28 additions & 0 deletions tests/testloc.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import unittest
import os
import steam


class LocTestCase(unittest.TestCase):
DEFAULT_LANGUAGE_CODE = "en_US"
VALID_LANGUAGE_CODE = "fi_FI"
INVALID_LANGUAGE_CODE = "en_GB"

def test_supported_language(self):
lang = steam.loc.language(LocTestCase.VALID_LANGUAGE_CODE)
self.assertEquals(lang._code, LocTestCase.VALID_LANGUAGE_CODE)

def test_unsupported_language(self):
self.assertRaises(steam.loc.LanguageUnsupportedError, steam.loc.language, LocTestCase.INVALID_LANGUAGE_CODE)

def test_supported_language_via_environ(self):
os.environ['LANG'] = LocTestCase.VALID_LANGUAGE_CODE
lang = steam.loc.language(None)
self.assertEquals(lang._code, LocTestCase.VALID_LANGUAGE_CODE)

def test_unsupported_language_via_environ(self):
os.environ['LANG'] = LocTestCase.INVALID_LANGUAGE_CODE
lang = steam.loc.language(None)
self.assertEquals(lang._code, LocTestCase.DEFAULT_LANGUAGE_CODE)


0 comments on commit f32d4d5

Please sign in to comment.