[Checkins] SVN: z3ext.statusmessage/trunk/ update tests

Nikolay Kim fafhrd91 at gmail.com
Tue Dec 22 18:56:52 EST 2009


Log message for revision 106980:
  update tests

Changed:
  U   z3ext.statusmessage/trunk/CHANGES.txt
  U   z3ext.statusmessage/trunk/setup.py
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt
  D   z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.pt
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.py
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/null.py
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/styles.zcml
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/ftesting.zcml
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/tests.py

-=-
Modified: z3ext.statusmessage/trunk/CHANGES.txt
===================================================================
--- z3ext.statusmessage/trunk/CHANGES.txt	2009-12-22 23:56:42 UTC (rev 106979)
+++ z3ext.statusmessage/trunk/CHANGES.txt	2009-12-22 23:56:52 UTC (rev 106980)
@@ -2,10 +2,14 @@
 CHANGES
 =======
 
-1.4.1 (Unreleased)
+1.5.0 (Unreleased)
 ------------------
 
+- ZTK support
 
+- Handle only IBrowserRequests
+
+
 1.4.0 (2009-08-11)
 ------------------
 

Modified: z3ext.statusmessage/trunk/setup.py
===================================================================
--- z3ext.statusmessage/trunk/setup.py	2009-12-22 23:56:42 UTC (rev 106979)
+++ z3ext.statusmessage/trunk/setup.py	2009-12-22 23:56:52 UTC (rev 106980)
@@ -21,7 +21,7 @@
 def read(*rnames):
     return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
 
-version = '1.4.1dev'
+version = '0'
 
 
 setup(name='z3ext.statusmessage',
@@ -47,7 +47,7 @@
         'Framework :: Zope3'],
       author='Nikolay Kim',
       author_email='fafhrd91 at gmail.com',
-      url='http://z3ext.net/',
+      url='http://pypi.python.org/pypi/z3ext.statusmessage/',
       license='ZPL 2.1',
       packages=find_packages('src'),
       package_dir = {'':'src'},
@@ -58,15 +58,17 @@
                           'zope.session',
                           'zope.publisher',
                           'zope.contentprovider',
-                          'zope.app.component',
-                          'zope.app.publication',
                           'z3ext.cacheheaders',
                           ],
       extras_require = dict(test=['zope.app.testing',
                                   'zope.testing',
                                   'zope.testbrowser',
-                                  'zope.app.zcmlfiles',
+                                  'zope.browserpage',
+                                  'zope.browserresource',
+                                  'zope.principalregistry',
+                                  'zope.app.pagetemplate',
                                   'zope.securitypolicy',
+                                  'z3ext.autoinclude',
                                   ]),
       include_package_data = True,
       zip_safe = False

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt	2009-12-22 23:56:42 UTC (rev 106979)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt	2009-12-22 23:56:52 UTC (rev 106980)
@@ -110,3 +110,33 @@
 
    >>> bool(service)
    False
+
+
+just tests
+
+   >>> sm = component.getSiteManager()
+
+   >>> class MessageWithError(message.Message):
+   ...     def render(self, msg):
+   ...         raise ValueError
+
+   >>> component.provideAdapter(MessageWithError, name='msgWithError')
+
+   >>> service.add('Test message', 'msgWithError')
+   >>> service.messages()
+   ()
+
+   >>> from zope.session.interfaces import ISession, ISessionDataContainer
+
+   >>> container = sm.getUtility(ISessionDataContainer)
+   >>> _t = sm.unregisterUtility(container, ISessionDataContainer)
+
+   >>> interfaces.IStatusMessage(request)
+   <z3ext.statusmessage.null.NullMessageService ...>
+
+   >>> from zope.publisher.interfaces.browser import IBrowserRequest
+   >>> from z3ext.statusmessage.tests.tests import getSession
+   >>> _t = sm.unregisterAdapter(getSession, (IBrowserRequest,), ISession)
+
+   >>> interfaces.IStatusMessage(request)
+   <z3ext.statusmessage.null.NullMessageService ...>

Deleted: z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.pt
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.pt	2009-12-22 23:56:42 UTC (rev 106979)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.pt	2009-12-22 23:56:52 UTC (rev 106980)
@@ -1 +0,0 @@
-<div tal:attributes="class view/cssClass" tal:content="options/message"></div>
\ No newline at end of file

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.py
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.py	2009-12-22 23:56:42 UTC (rev 106979)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.py	2009-12-22 23:56:52 UTC (rev 106980)
@@ -17,7 +17,7 @@
 """
 import cgi
 from zope import interface, component
-from zope.app.pagetemplate import ViewPageTemplateFile
+from zope.i18n import translate
 from zope.contentprovider.interfaces import IContentProvider
 from zope.publisher.interfaces.browser import IBrowserRequest
 
@@ -35,14 +35,11 @@
 class InformationMessage(Message):
 
     cssClass = 'statusMessage'
-    index = ViewPageTemplateFile('message.pt')
 
-    @property
-    def context(self):
-        return self
-
     def render(self, message):
-        return self.index(message=message)
+        return '<div class="%s">%s</div>'%(
+            self.cssClass,
+            cgi.escape(translate(message, context=self.request), True))
 
 
 class WarningMessage(InformationMessage):
@@ -65,8 +62,7 @@
 
 class StatusMessage(object):
     interface.implements(IContentProvider)
-    component.adapts(
-        interface.Interface, IBrowserRequest, interface.Interface)
+    component.adapts(interface.Interface, IBrowserRequest, interface.Interface)
 
     def __init__(self, context, request, view):
         self.context, self.request, self.view = context, request, view

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/null.py
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/null.py	2009-12-22 23:56:42 UTC (rev 106979)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/null.py	2009-12-22 23:56:52 UTC (rev 106980)
@@ -21,6 +21,35 @@
 
 
 class NullMessageService(object):
+    """
+    >>> from zope.interface.verify import verifyClass
+
+    >>> verifyClass(IStatusMessage, NullMessageService)
+    True
+
+   >>> from zope.publisher.browser import TestRequest
+    >>> from z3ext.statusmessage import message
+
+    >>> service = NullMessageService(TestRequest())
+    >>> component.provideAdapter(message.InformationMessage, name='info')
+
+    >>> service.add('Test message')
+
+    >>> bool(service)
+    True
+
+    >>> for msg in service.messages():
+    ...     print msg
+    <div class="statusMessage">Test message</div>
+
+    >>> for msg in service.clear():
+    ...     print msg
+    <div class="statusMessage">Test message</div>
+
+    >>> bool(service)
+    False
+
+    """
     interface.implements(IStatusMessage)
 
     def __init__(self, request):
@@ -32,8 +61,11 @@
         self._messages.append(message.render(text))
 
     def clear(self):
+        messages = self._messages
         self._messages = []
 
+        return messages
+
     def messages(self):
         return tuple(self._messages)
 

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/styles.zcml
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/styles.zcml	2009-12-22 23:56:42 UTC (rev 106979)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/styles.zcml	2009-12-22 23:56:52 UTC (rev 106980)
@@ -2,12 +2,11 @@
    xmlns="http://namespaces.zope.org/zope"
    xmlns:zcml="http://namespaces.zope.org/zcml"
    xmlns:z3ext="http://namespaces.zope.org/z3ext"
+   xmlns:browser="http://namespaces.zope.org/browser"
    zcml:condition="installed z3ext.resourcepackage">
 
   <include package="z3ext.resourcepackage" file="meta.zcml" />
-  <include package="z3ext.resource" file="meta.zcml" />
   <include package="z3ext.resourcepackage" />
-  <include package="z3ext.resource" />
 
   <!-- styles -->
   <z3ext:resourceinclude
@@ -17,16 +16,17 @@
      file="styles.css" filetype="zrt" />
 
   <!-- icons -->
-  <z3ext:resource
+  <browser:resource
      file="status-information.png"
      name="statusmessage-information.png" />
 
-  <z3ext:resource
+  <browser:resource
      file="status-warning.png"
      name="statusmessage-warning.png" />
 
-  <z3ext:resource
+  <browser:resource
      file="status-error.png"
      name="statusmessage-error.png" />
 
 </configure>
+

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/ftesting.zcml
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/ftesting.zcml	2009-12-22 23:56:42 UTC (rev 106979)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/ftesting.zcml	2009-12-22 23:56:52 UTC (rev 106980)
@@ -3,25 +3,11 @@
    xmlns:browser="http://namespaces.zope.org/browser"
    i18n_domain="zope">
 
-  <!-- This file is the equivalent of site.zcml and it is -->
-  <!-- used for functional testing setup -->
+  <exclude package="zope.dublincore.browser" />
 
-  <include package="zope.component" file="meta.zcml" />
-  <include package="zope.securitypolicy" file="meta.zcml" />
-  <include package="zope.app.component" file="meta.zcml" />
-  <include package="zope.app.security" file="meta.zcml" />
-  <include package="zope.app.pagetemplate" file="meta.zcml" />
+  <include package="z3ext.autoinclude" file="meta.zcml" />
+  <includeAllDependencies package="z3ext.statusmessage" extras="test" />
 
-  <include package="zope.securitypolicy" />
-  <include package="zope.contentprovider" />
-  <include package="zope.app.security" />
-  <include package="zope.app.zcmlfiles" />
-  <include package="zope.app.authentication" />
-  <include package="zope.session" />
-
-  <include package="z3ext.cacheheaders" />
-  <include package="z3ext.statusmessage" />
-
   <browser:page
      for="*"
      name="test.html"

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/tests.py
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/tests.py	2009-12-22 23:56:42 UTC (rev 106979)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/tests.py	2009-12-22 23:56:52 UTC (rev 106980)
@@ -19,12 +19,11 @@
 from zope.app.testing import setup
 
 from zope import interface, component
-from zope.component import provideAdapter
+from zope.component import testing, provideAdapter
 from zope.session.interfaces import ISession, ISessionDataContainer
 from zope.session.session import RAMSessionDataContainer
 from zope.publisher.interfaces.browser import IBrowserRequest
-from zope.app.testing.functional import ZCMLLayer
-from zope.app.testing.functional import FunctionalDocFileSuite
+from zope.app.testing.functional import ZCMLLayer, FunctionalDocFileSuite
 from zope.traversing.testing import setUp as setUpTraversing
 from z3ext.statusmessage import message
 
@@ -51,7 +50,7 @@
 
 
 def setUp(test):
-    setup.placelessSetUp()
+    testing.setUp()
     setUpTraversing()
     component.provideAdapter(getSession)
     component.provideAdapter(message.StatusMessage, name='statusMessage')
@@ -60,7 +59,7 @@
 
 def tearDown(test):
     session.__init__()
-    setup.placelessTearDown()
+    testing.tearDown()
 
 
 def test_suite():
@@ -75,4 +74,8 @@
                 '../README.txt',
                 setUp=setUp, tearDown=tearDown,
                 optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
+            doctest.DocTestSuite(
+                'z3ext.statusmessage.null',
+                setUp=setUp, tearDown=tearDown,
+                optionflags=doctest.NORMALIZE_WHITESPACE|doctest.ELLIPSIS),
             ))



More information about the checkins mailing list