Cleanup mediagoblin._compat and fix translation tests.
authorBerker Peksag <berker.peksag@gmail.com>
Mon, 28 Jul 2014 10:27:19 +0000 (13:27 +0300)
committerBerker Peksag <berker.peksag@gmail.com>
Mon, 28 Jul 2014 10:27:19 +0000 (13:27 +0300)
mediagoblin/_compat.py
mediagoblin/db/open.py
mediagoblin/plugins/oauth/views.py
mediagoblin/storage/filestorage.py
mediagoblin/tools/template.py
mediagoblin/tools/translate.py

index 65fb5140aa12e827e55748d10b5f09b3598e9cef..5a3fac534b75cf5c0ce3511f1a3856fda51a6a7a 100644 (file)
@@ -1,23 +1,15 @@
-from six import PY3, iteritems
-
-from mediagoblin import mg_globals
+from six import PY3
 
 if PY3:
     from email.mime.text import MIMEText
-    from urllib import parse as urlparse
-    # TODO(berker): Rename to gettext and ungettext instead?
-    ugettext = mg_globals.thread_scope.translations.gettext
-    ungettext = mg_globals.thread_scope.translations.ngettext
 else:
     from email.MIMEText import MIMEText
-    import urlparse
-    ugettext = mg_globals.thread_scope.translations.ugettext
-    ungettext = mg_globals.thread_scope.translations.ungettext
 
 
 # taken from
 # https://github.com/django/django/blob/master/django/utils/encoding.py
 def py2_unicode(klass):
+    # TODO: Add support for __repr__
     if not PY3:
         if '__str__' not in klass.__dict__:
             raise ValueError("@py2_unicode cannot be applied "
index 9cf9e5789925ddb554f4519a50440d4a1a1a7535..34f0bffa15857568ca5d17a642a9487a081bc533 100644 (file)
 from sqlalchemy import create_engine, event
 import logging
 
+import six
+
 from mediagoblin.db.base import Base, Session
 from mediagoblin import mg_globals
-from mediagoblin._compat import iteritems
 
 _log = logging.getLogger(__name__)
 
@@ -29,7 +30,7 @@ class DatabaseMaster(object):
     def __init__(self, engine):
         self.engine = engine
 
-        for k, v in iteritems(Base._decl_class_registry):
+        for k, v in six.iteritems(Base._decl_class_registry):
             setattr(self, k, v)
 
     def commit(self):
index 9e3b87c9d56abeb8a121ce4bef2cd64be83f3491..8ca7352187553b020ef11064c37f0dfda8dfa981 100644 (file)
@@ -17,7 +17,7 @@
 
 import logging
 
-from urllib import urlencode
+from six.moves.urllib.parse import urlencode
 
 import six
 
index 404d24c3f3f24611cd2af98c91e5dc3220ee4750..917c7703876d57936026319fbc795db5bfbb255a 100644 (file)
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+import os
+import shutil
+
+from six.moves.urllib.parse import urlparse
+
 from mediagoblin.storage import (
     StorageInterface,
     clean_listy_filepath,
     NoWebServing)
 
-import os
-import shutil
-
-from mediagoblin._compat import urlparse
-
 
 class BasicFileStorage(StorageInterface):
     """
index 359ddd380f4207e698cd525af20b8ab2b2a6d163..b01196fddc97670c0821547dcb37f8361eb2a5dd 100644 (file)
@@ -14,6 +14,7 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+import six
 
 import jinja2
 from jinja2.ext import Extension
@@ -33,8 +34,6 @@ from mediagoblin.tools.pluginapi import get_hook_templates, hook_transform
 from mediagoblin.tools.timesince import timesince
 from mediagoblin.meddleware.csrf import render_csrf_form_token
 
-from mediagoblin._compat import ugettext, ungettext
-
 SETUP_JINJA_ENVS = {}
 
 
@@ -67,7 +66,12 @@ def get_jinja_env(template_loader, locale):
             'jinja2.ext.i18n', 'jinja2.ext.autoescape',
             TemplateHookExtension] + local_exts)
 
-    template_env.install_gettext_callables(ugettext, ungettext)
+    if six.PY2:
+        template_env.install_gettext_callables(mg_globals.thread_scope.translations.ugettext,
+                                           mg_globals.thread_scope.translations.ungettext)
+    else:
+        template_env.install_gettext_callables(mg_globals.thread_scope.translations.gettext,
+                                           mg_globals.thread_scope.translations.ngettext)
 
     # All templates will know how to ...
     # ... fetch all waiting messages and remove them from the queue
index e6df612d5733da99e3fdbddaadfeb5d81bf4dc20..f8a59aeee835db395486e4440dadb3df1095515a 100644 (file)
 import gettext
 import pkg_resources
 
+import six
 
 from babel import localedata
 from babel.support import LazyProxy
 
 from mediagoblin import mg_globals
-from mediagoblin._compat import ugettext, ungettext
 
 ###################
 # Translation tools
@@ -147,7 +147,9 @@ def pass_to_ugettext(*args, **kwargs):
     The reason we can't have a global ugettext method is because
     mg_globals gets swapped out by the application per-request.
     """
-    return ugettext(*args, **kwargs)
+    if six.PY2:
+        return mg_globals.thread_scope.translations.ugettext(*args, **kwargs)
+    return mg_globals.thread_scope.translations.gettext(*args, **kwargs)
 
 def pass_to_ungettext(*args, **kwargs):
     """
@@ -156,7 +158,9 @@ def pass_to_ungettext(*args, **kwargs):
     The reason we can't have a global ugettext method is because
     mg_globals gets swapped out by the application per-request.
     """
-    return ungettext(*args, **kwargs)
+    if six.PY2:
+        return mg_globals.thread_scope.translations.ungettext(*args, **kwargs)
+    return mg_globals.thread_scope.translations.ngettext(*args, **kwargs)
 
 
 def lazy_pass_to_ugettext(*args, **kwargs):