[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