[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/ Ensure batching works.

Charlie Clark charlie at begeistert.org
Sun Sep 26 08:29:46 EDT 2010


Log message for revision 116954:
  Ensure batching works.

Changed:
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.pt
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/members.txt
  U   Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py

-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.pt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.pt	2010-09-26 12:29:24 UTC (rev 116953)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.pt	2010-09-26 12:29:45 UTC (rev 116954)
@@ -51,10 +51,11 @@
      tal:replace="structure action/render" />
   </div>
 
+</form>
+
   <metal:macro metal:use-macro="context/@@batch_widget/navigation" />
   <metal:macro metal:use-macro="context/@@batch_widget/pagination" />
 
-</form>
 </metal:slot>
 
 </body>

Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py	2010-09-26 12:29:24 UTC (rev 116953)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/members.py	2010-09-26 12:29:45 UTC (rev 116954)
@@ -65,6 +65,7 @@
     template = ViewPageTemplateFile("members.pt")
     delete_template = ViewPageTemplateFile("members_delete.pt")
     guillotine = None
+    prefix = 'form' # required for hidden fields to work
     form_fields = form.FormFields()
     hidden_fields = form.FormFields(IBatchForm)
     

Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/members.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/members.txt	2010-09-26 12:29:24 UTC (rev 116953)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/members.txt	2010-09-26 12:29:45 UTC (rev 116954)
@@ -40,31 +40,41 @@
     True
 
 Add a new member
-    >>> browser.getControl(name="actions.new").click()
+    >>> browser.getControl(name="form.actions.new").click()
     >>> "[[cmf_default][Register Member]]" in browser.contents
     True
 
 Click delete with no member selected
     >>> browser.open("http://localhost/site/@@members.html")
-    >>> browser.getControl(name="actions.select").click()
+    >>> browser.getControl(name="form.actions.select").click()
     >>> "[[cmf_default][Please select one or more items first.]]" in browser.contents
     True
 
 Click delete with member selected
-    >>> browser.getControl(name="Bob.select").value = True
-    >>> browser.getControl(name="actions.select").click()
+    >>> browser.getControl(name="form.Bob.select").value = True
+    >>> browser.getControl(name="form.actions.select").click()
     >>> "[[cmf_default][The following members - including all their data, home folders and roles - are selected for deletion" in browser.contents
     True
     
 Cancel deletion
-    >>> browser.getControl(name="actions.cancel").click()
+    >>> browser.getControl(name="form.actions.cancel").click()
     >>> "[[cmf_default][Deletion broken off]" in browser.contents
     True
 
 Delete selected member
     >>> browser.open("http://localhost/site/@@members.html")
-    >>> browser.getControl(name="Bob.select").value = True
-    >>> browser.getControl(name="actions.select").click()
-    >>> browser.getControl(name="actions.delete").click()
+    >>> browser.getControl(name="form.Bob.select").value = True
+    >>> browser.getControl(name="form.actions.select").click()
+    >>> browser.getControl(name="form.actions.delete").click()
     >>> "[[cmf_default][Selected members deleted]" in browser.contents
+    True
+
+Test batching. Add lots of users
+    >>> for user in ["Alice", "Bob", "Carol", "Dave", "Ted", "Eve", "Mallory", "Marvin", "Oscar", "Peggy", "Victor", "Trudy", "Trent", "Charlie", "Isaac", "Ivan", "Justin", "Matilda", "Oscar", "Plod", "Walter", "Zoe", "Peter", "Sven", "Gloria", "James", "Albert", "Edward", "Michael", "Quentin", "Richard", "Kate", "Freddy", "George", "Harry", "Lucy", "Nicholas", "Terry", "Thomas", "Unwin", "William", "Vince", "Xavier", "Yossarian"]:
+    ...     app.site.portal_membership.addMember(user, 
+    ...            "secret", ("Owner",), ())
+    >>> browser.open("http://localhost/site/@@members.html")
+    >>> "[[cmf_default][Next 18 items]]" in browser.contents
+    True
+    >>> 'a href="http://localhost/site/@@members.html?form.b_start=25">2</a>' in browser.contents
     True
\ No newline at end of file

Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py	2010-09-26 12:29:24 UTC (rev 116953)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/membership/tests/test_members.py	2010-09-26 12:29:45 UTC (rev 116954)
@@ -66,7 +66,6 @@
         self.mtool = site._setObject('portal_membership', DummyMemberTool())
         site._setObject('portal_actions', DummyTool())
         site._setObject('portal_url', DummyTool())
-        
 
     def _make_one(self, name="DummyUser"):
         user = DummyUser(name)
@@ -79,7 +78,13 @@
         for i in range(batch_size + 2):
             user_id = "Dummy%s" % i
             self._make_one(user_id)
-
+            
+    def test_getNavigationURL(self):
+        url = 'http://example.com/members.html'
+        self._make_batch()
+        view = Manage(self.site, TestRequest(ACTUAL_URL=url))
+        self.assertTrue(view._getNavigationURL(25) == url + "?form.b_start=25")
+        
     def test_view(self):
         view = Manage(self.site, TestRequest())
         self.assertTrue(IBrowserPublisher.providedBy(view))



More information about the checkins mailing list