class TestViewsFunctional(unittest.TestCase): layer = COLLECTIVE_REVISIONMANAGER_FUNCTIONAL_TESTING def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] self.portal_url = self.portal.absolute_url() setRoles(self.portal, TEST_USER_ID, ['Manager']) self.doc1 = api.content.create( container=self.portal, type='Document', title=u'Some Document', ) self.doc1.text = RichTextValue(u'One two', 'text/plain', 'text/html') self.browser = Browser(self.layer['app']) self.browser.handleErrors = False modified(self.doc1) self.statscache = getUtility(IHistoryStatsCache) self.statscache.refresh() import transaction transaction.commit() # Set up browser self.browser = Browser(self.layer['app']) self.browser.handleErrors = False self.browser.addHeader( 'Authorization', 'Basic {}:{}'.format(SITE_OWNER_NAME, SITE_OWNER_PASSWORD,) # noqa: P101 ) def test_views_functional(self): self.browser.open(self.portal_url + '/@@revisions-controlpanel') self.browser.getControl(name='form.buttons.recalculate').click() self.browser.open(self.portal_url + '/@@histories') self.assertIn('<td>2 (0)</td>', self.browser.contents) self.assertIn('<td align="right">3 kB</td>', self.browser.contents) self.doc1.text = RichTextValue(u'Changed!', 'text/plain', 'text/html') modified(self.doc1) self.statscache.refresh() transaction.commit() self.browser.reload() # We have a item with 3 revisions self.assertIn('<td>3 (0)</td>', self.browser.contents) self.assertIn('<td align="right">5 kB</td>', self.browser.contents) checkbox = self.browser.getControl(name='delete:list') self.assertEqual(checkbox.options, ['check1']) checkbox.value = ['checked'] # we keep a revision self.browser.getControl(name='keepnum').value = '2' self.browser.getControl(name='del_histories').click() self.statscache.refresh() transaction.commit() self.browser.reload() # The number of revisions is kept but the payload is purged self.assertIn('<td>3 (1)</td>', self.browser.contents) # The size is not recalucated self.assertIn('<td align="right">???</td>', self.browser.contents) self.browser.getControl(name='keepnum').value = '0' self.browser.getControl(name='delete:list').value = ['checked'] self.browser.getControl(name='del_histories').click() # No more items with revisions self.assertNotIn('name="delete:list"', self.browser.contents) # at least click the button even though there are no orphans self.browser.getControl(name='del_orphans').click()