[Checkins] SVN: grokcore.view/trunk/ - Make it possible to instantiate an ungrokked view by being slightly more

Martin Aspeli optilude at gmx.net
Thu Apr 9 11:43:40 EDT 2009


Log message for revision 99036:
  - Make it possible to instantiate an ungrokked view by being slightly more
    defensive in __init__. This makes it easier to write unit tests.

Changed:
  U   grokcore.view/trunk/CHANGES.txt
  U   grokcore.view/trunk/src/grokcore/view/components.py
  A   grokcore.view/trunk/src/grokcore/view/tests/view/ungrokked.py

-=-
Modified: grokcore.view/trunk/CHANGES.txt
===================================================================
--- grokcore.view/trunk/CHANGES.txt	2009-04-09 15:24:50 UTC (rev 99035)
+++ grokcore.view/trunk/CHANGES.txt	2009-04-09 15:43:39 UTC (rev 99036)
@@ -4,9 +4,9 @@
 1.5 (unreleased)
 ----------------
 
-- Nothing changed yet.
+- Make it possible to instantiate an ungrokked view by being slightly more
+  defensive in __init__. This makes it easier to write unit tests.
 
-
 1.4 (2009-04-08)
 ----------------
 

Modified: grokcore.view/trunk/src/grokcore/view/components.py
===================================================================
--- grokcore.view/trunk/src/grokcore/view/components.py	2009-04-09 15:24:50 UTC (rev 99035)
+++ grokcore.view/trunk/src/grokcore/view/components.py	2009-04-09 15:43:39 UTC (rev 99036)
@@ -36,12 +36,16 @@
 
     def __init__(self, context, request):
         super(View, self).__init__(context, request)
-        self.__name__ = self.__view_name__
-        self.static = component.queryAdapter(
-            self.request,
-            interface.Interface,
-            name=self.module_info.package_dotted_name
-            )
+        self.__name__ = getattr(self, '__view_name__', None)
+        
+        if getattr(self, 'module_info', None) is not None:
+            self.static = component.queryAdapter(
+                self.request,
+                interface.Interface,
+                name=self.module_info.package_dotted_name
+                )
+        else:
+            self.static = None
 
     @property
     def response(self):

Added: grokcore.view/trunk/src/grokcore/view/tests/view/ungrokked.py
===================================================================
--- grokcore.view/trunk/src/grokcore/view/tests/view/ungrokked.py	                        (rev 0)
+++ grokcore.view/trunk/src/grokcore/view/tests/view/ungrokked.py	2009-04-09 15:43:39 UTC (rev 99036)
@@ -0,0 +1,17 @@
+"""
+Prove that we can instantiate things from unit tests without grokking.
+
+  >>> view = Ungrokked(None, None)
+  
+This should not raise an exception, at least.
+
+  >>> view.static is None
+  True
+  >>> view.__name__ is None
+  True
+  
+"""
+import grokcore.view as grok
+
+class Ungrokked(grok.View):
+    pass
\ No newline at end of file



More information about the Checkins mailing list