[tor-commits] [bridgedb/develop] Add unittests for new bridgedb.translations module.
isis at torproject.org
isis at torproject.org
Thu Apr 17 05:10:02 UTC 2014
commit a6edfaeb6fc8036c60d9c20bf871795cba198337
Author: Isis Lovecruft <isis at torproject.org>
Date: Wed Apr 16 19:19:49 2014 +0000
Add unittests for new bridgedb.translations module.
---
lib/bridgedb/test/test_translations.py | 78 ++++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
diff --git a/lib/bridgedb/test/test_translations.py b/lib/bridgedb/test/test_translations.py
new file mode 100644
index 0000000..ee15ac4
--- /dev/null
+++ b/lib/bridgedb/test/test_translations.py
@@ -0,0 +1,78 @@
+# -*- coding: utf-8 -*-
+#
+# This file is part of BridgeDB, a Tor bridge distribution system.
+#
+# :authors: Isis Lovecruft 0xA3ADB67A2CDB8B35 <isis at torproject.org>
+# :copyright: (c) 2014, Isis Lovecruft
+# (c) 2014, The Tor Project, Inc.
+# :license: 3-Clause BSD, see LICENSE for licensing information
+
+
+from twisted.trial import unittest
+
+from bridgedb import translations
+from bridgedb.test.test_HTTPServer import DummyRequest
+
+
+REALISH_HEADERS = {
+ b'Accept-Encoding': [b'gzip, deflate'],
+ b'User-Agent': [
+ b'Mozilla/5.0 (X11; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0'],
+ b'Accept': [
+ b'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'],
+}
+
+# Add this to the above REALISH_HEADERS to use it:
+ACCEPT_LANGUAGE_HEADER = {
+ b'Accept-Language': [b'de-de,en-gb;q=0.8,en;q=0.5,en-us;q=0.3'],
+}
+
+
+class TranslationsMiscTests(unittest.TestCase):
+ """Tests for module-level code in ``bridgedb.translations`` module."""
+
+ def test_getLocaleFromHTTPRequest_withLangParam(self):
+ """This request uses a '?lang=ar' param, without an 'Accept-Language'
+ header.
+
+ The request result should be: ['ar', 'en', 'en-US'].
+ """
+ request = DummyRequest([b"bridges"])
+ request.headers.update(REALISH_HEADERS)
+ request.args.update({
+ b'transport': [b'obfs3',],
+ b'lang': [b'ar',],
+ })
+
+ parsed = translations.getLocaleFromHTTPRequest(request)
+ self.assertEqual(parsed[0], 'ar')
+ self.assertEqual(parsed[1], 'en')
+ self.assertEqual(parsed[2], 'en_US')
+ self.assertEqual(len(parsed), 3)
+
+ def test_getLocaleFromHTTPRequest_withLangParam_AcceptLanguage(self):
+ """This request uses a '?lang=ar' param, with an 'Accept-Language'
+ header which includes: ['de-de', 'en-gb', 'en', 'en-us'].
+
+ The request result should be: ['fa', 'de-de', 'en-gb', 'en', 'en-us'].
+ """
+ request = DummyRequest([b"options"])
+ request.headers.update(ACCEPT_LANGUAGE_HEADER)
+ request.args.update({b'lang': [b'fa']})
+
+ parsed = translations.getLocaleFromHTTPRequest(request)
+ self.assertEqual(parsed[0], 'fa')
+ self.assertEqual(parsed[1], 'en')
+ self.assertEqual(parsed[2], 'en_US')
+ #self.assertEqual(parsed[3], 'en-gb')
+ self.assertEqual(len(parsed), 3)
+
+ def test_getLocaleFromPlusAddr(self):
+ emailAddr = 'bridges at torproject.org'
+ replyLocale = translations.getLocaleFromPlusAddr(emailAddr)
+ self.assertEqual('en', replyLocale)
+
+ def test_getLocaleFromPlusAddr_ar(self):
+ emailAddr = 'bridges+ar at torproject.org'
+ replyLocale = translations.getLocaleFromPlusAddr(emailAddr)
+ self.assertEqual('ar', replyLocale)
More information about the tor-commits
mailing list