[Zope3-checkins] CVS: Zope3/src/zope/publisher/tests -
test_browserlanguages.py:1.3.64.1
Sidnei da Silva
sidnei at x3ng.com.br
Fri Feb 27 12:34:25 EST 2004
Update of /cvs-repository/Zope3/src/zope/publisher/tests
In directory cvs.zope.org:/tmp/cvs-serv31180/tests
Modified Files:
Tag: runyaga-sip-branch
test_browserlanguages.py
Log Message:
Implement 'quality handlling' on browser language detection, with some good tests.
=== Zope3/src/zope/publisher/tests/test_browserlanguages.py 1.3 => 1.3.64.1 ===
--- Zope3/src/zope/publisher/tests/test_browserlanguages.py:1.3 Fri Apr 11 08:55:41 2003
+++ Zope3/src/zope/publisher/tests/test_browserlanguages.py Fri Feb 27 12:34:24 2004
@@ -13,26 +13,32 @@
##############################################################################
import unittest
-class Test(unittest.TestCase):
-
- def test(self):
- request = {'HTTP_ACCEPT_LANGUAGE': 'da, en-gb;q=0.8, en;q=0.7'}
-
- from zope.publisher.browser import BrowserLanguages
-
- browser_languages = BrowserLanguages(request)
-
- self.assertEqual(list(browser_languages.getPreferredLanguages()),
- ['da', 'en-gb', 'en'])
-
- # XXX Add support for quality statements
+# Note: The expected output is in order of preference,
+# empty 'q=' means 'q=1', and if theres more than one
+# empty, we assume they are in order of preference.
+data = [
+ ('da, en, pt', ['da', 'en', 'pt']),
+ ('da, en;q=.9, en-gb;q=1.0, en-us', ['da', 'en-gb', 'en-us', 'en']),
+ ('pt_BR; q=0.6, pt_PT; q = .7, en-gb', ['en-gb', 'pt-pt', 'pt-br']),
+ ('en-us, en_GB;q=0.9, en, pt_BR; q=1.0', ['en-us', 'en', 'pt-br', 'en-gb']),
+ ('ro,en-us;q=0.8,es;q=0.5,fr;q=0.3', ['ro', 'en-us', 'es', 'fr']),
+ ('ro,en-us;q=0,es;q=0.5,fr;q=0,ru;q=1,it', ['ro', 'ru', 'it', 'es'])
+ ]
+class BrowserLanguagesTest(unittest.TestCase):
+ def test_browser_language_handling(self):
+ from zope.publisher.browser import BrowserLanguages
+ for req, expected in data:
+ request = {'HTTP_ACCEPT_LANGUAGE': req}
+ browser_languages = BrowserLanguages(request)
+ self.assertEqual(list(browser_languages.getPreferredLanguages()),
+ expected)
def test_suite():
loader=unittest.TestLoader()
- return loader.loadTestsFromTestCase(Test)
+ return loader.loadTestsFromTestCase(BrowserLanguagesTest)
if __name__=='__main__':
unittest.TextTestRunner().run(test_suite())
More information about the Zope3-Checkins
mailing list