Created
September 10, 2011 02:47
-
-
Save japboy/1207866 to your computer and use it in GitHub Desktop.
Basic TDD style unit testing with PyUnit
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
"""Testee module | |
This script just writes 'Hello, world.' in your language. This is my study case | |
of unit testing for test-driven development. | |
""" | |
import locale | |
__author__ = 'Yu I.' | |
__license__ = 'Public domain' | |
__version__ = '0.1' | |
messages = {'en': 'Hello, world.', | |
'es': '¡Hola, mundo.', | |
'ja': 'こんにちは、世界。'} | |
def get_language(): | |
"""Return default language code like 'en'""" | |
defaultlocale = locale.getdefaultlocale() | |
language = defaultlocale[0][0:2] | |
return language | |
def get_message(): | |
"""Return localized message""" | |
language = get_language() | |
if not messages.has_key(language): | |
language = 'en' | |
return messages[language] | |
if __name__ == '__main__': | |
print get_message() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
"""Tester module | |
This script just writes 'Hello, world.' in your language. This is my study case | |
of unit testing for test-driven development. | |
""" | |
import locale | |
import unittest | |
import testee | |
__author__ = 'Yu I.' | |
__license__ = 'Public domain' | |
__version__ = '0.1' | |
class LanguageDetectorTestCase(unittest.TestCase): | |
"""Detect language""" | |
def test_get_language(self): | |
"""Return default language code like 'en'""" | |
defaultlocale = locale.getdefaultlocale() | |
language = defaultlocale[0][0:2] | |
self.assertTrue(isinstance(language, str), | |
'Value should be string') | |
self.assertEqual(len(language), | |
2, | |
'Value should be alphabetical 2 letters') | |
class MessageWriterTestCase(unittest.TestCase): | |
"""Write message""" | |
def setUp(self): | |
self.messages = {'es': 'Hello, world.', | |
'es': '¡Hola, mundo.', | |
'ja': 'こんにちは、世界。'} | |
def test_get_message(self): | |
"""Return localized message""" | |
language = testee.get_language() | |
if not self.messages.has_key(language): | |
language = 'ja' | |
self.assertTrue(isinstance(self.messages[language], str), | |
'Value should be string') | |
def suite(): | |
"""Create Test Suite""" | |
testsuite = unittest.TestSuite() | |
testsuite.addTest(LanguageDetectorTestCase('test_get_language')) | |
testsuite.addTest(MessageWriterTestCase('test_get_message')) | |
return testsuite | |
if __name__ == '__main__': | |
# Run Test Runner | |
unittest.TextTestRunner(verbosity=2).run(suite()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment