No lazy_* needed here; Add ReallyLazyProxy.__repr__.
authorElrond <elrond+mediagoblin.org@samba-tng.org>
Thu, 25 Apr 2013 12:16:17 +0000 (14:16 +0200)
committerElrond <elrond+mediagoblin.org@samba-tng.org>
Thu, 25 Apr 2013 12:31:29 +0000 (14:31 +0200)
One should use lazy_* only if you have a good reason.

This one found by our unit tests!

For example add_message adds the message to the session,
the session needs to be serialized (with json) and well,
LazyProxy is not serializable.

To aid in debugging, gave our ReallyLazyProxy a __repr__.

mediagoblin/edit/views.py
mediagoblin/tools/translate.py

index b0d8dd5d0111de135bc370b51c97301f2aad08ad..34b7aaca4004e5b199e8f2e459f8c7fca766b6e4 100644 (file)
@@ -29,7 +29,7 @@ from mediagoblin.decorators import (require_active_login, active_user_from_url,
      get_media_entry_by_id,
      user_may_alter_collection, get_user_collection)
 from mediagoblin.tools.response import render_to_response, redirect
-from mediagoblin.tools.translate import lazy_pass_to_ugettext as _
+from mediagoblin.tools.translate import pass_to_ugettext as _
 from mediagoblin.tools.text import (
     convert_to_tag_list_of_dicts, media_tags_as_string)
 from mediagoblin.tools.url import slugify
index 0067786387eb22b7e7818dad251a46202adec20a..b20e57d1ea2791e1e9773ed95d532cc41e5a8c7b 100644 (file)
@@ -50,6 +50,13 @@ class ReallyLazyProxy(LazyProxy):
     def value(self):
         return self._func(*self._args, **self._kwargs)
 
+    def __repr__(self):
+        return "<%s for %s(%r, %r)>" % (
+            self.__class__.__name__,
+            self._func,
+            self._args,
+            self._kwargs)
+
 
 def locale_to_lower_upper(locale):
     """