Changeset 14173 for main/waeup.ikoba/trunk/src/waeup/ikoba/browser/tests
- Timestamp:
- 22 Sep 2016, 19:43:09 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.ikoba/trunk/src/waeup/ikoba/browser/tests/test_browser.py
r13808 r14173 24 24 import os 25 25 import grok 26 from datetime import datetime, timedelta 26 27 from zc.async.testing import wait_for_result 27 28 from zope.component import createObject, getUtility … … 32 33 from waeup.ikoba.testing import FunctionalLayer, FunctionalTestCase 33 34 from waeup.ikoba.app import Company 34 from waeup.ikoba.interfaces import IJobManager, IUserAccount 35 from waeup.ikoba.interfaces import IJobManager, IUserAccount, IIkobaUtils 35 36 from waeup.ikoba.tests.test_async import FunctionalAsyncTestCase 36 37 … … 83 84 wait_for_result(job) 84 85 return job_id 86 87 def trigger_export(self): 88 # helper to start an export. Make sure to remove the result file 89 self.browser.addHeader('Authorization', 'Basic mgr:mgrpw') 90 self.browser.open(self.datacenter_path) 91 self.browser.getLink("Export data").click() 92 self.browser.getControl(name="exporter").value = ['products'] 93 self.browser.getControl("Create CSV file").click() 94 return 85 95 86 96 def cleanup_run_job(self): … … 194 204 return 195 205 206 def test_export_download(self): 207 # we can download a generated export result 208 self.trigger_export() 209 # while the export file is created, we get a reload button 210 # (or a loading bar if javascript is enabled)... 211 self.assertTrue('Reload' in self.browser.contents) 212 # ...which is displayed as long as the job is not finished. 213 # When the job is finished and we reload the page... 214 job_id = self.wait_for_export_job_completed() 215 self.browser.open(self.datacenter_path + '/export') 216 self.assertFalse('Reload' in self.browser.contents) 217 # ...we can download the result 218 self.browser.getLink("Download").click() 219 self.assertEqual(self.browser.headers['content-type'], 220 'text/csv; charset=UTF-8') 221 self.assertEqual(self.browser.headers['content-disposition'], 222 'attachment; filename="WAeUP.Ikoba_products_%s.csv' % job_id) 223 self.assertEqual(self.browser.contents, 224 'contract_category,contract_title,description,options,' 225 'product_id,terms_and_conditions,title,valid_from,valid_to,' 226 'users_with_local_roles\r\n') 227 # Thew job can be discarded 228 self.browser.open(self.datacenter_path + '/export') 229 self.browser.getControl("Discard").click() 230 self.assertEqual(len(self.app['datacenter'].running_exports), 0) 231 logfile = os.path.join( 232 self.app['datacenter'].storage, 'logs', 'datacenter.log') 233 logcontent = open(logfile).read() 234 self.assertTrue('zope.mgr - browser.pages.ExportCSVPage - exported: ' 235 'products, job_id=' in logcontent) 236 self.assertTrue('zope.mgr - browser.pages.ExportCSVView - ' 237 'downloaded: WAeUP.Ikoba_products_%s.csv, job_id=%s' 238 % (job_id, job_id) in logcontent) 239 return 240 241 def test_export_discard(self): 242 # we can discard a generated export result 243 self.trigger_export() 244 job_id = self.wait_for_export_job_completed() 245 self.browser.open(self.datacenter_path + '/@@export') 246 self.browser.getControl("Discard").click() 247 self.assertTrue('Discarded export' in self.browser.contents) 248 logfile = os.path.join( 249 self.app['datacenter'].storage, 'logs', 'datacenter.log') 250 logcontent = open(logfile).read() 251 self.assertTrue( 252 'zope.mgr - browser.pages.ExportCSVPage - discarded: job_id=%s' 253 % job_id in logcontent) 254 return 255 256 def test_export_purge(self): 257 self.trigger_export() 258 job_id = self.wait_for_export_job_completed() 259 self.browser.open(self.datacenter_path + '/export') 260 self.browser.getControl("Purge").click() 261 # Flash message always says successful ... 262 self.assertTrue( 263 'Exports successfully purged.' in self.browser.contents) 264 # ... but the export is still there 265 self.assertEqual(len(self.app['datacenter'].running_exports), 1) 266 267 job_id, gen_name, user = self.app['datacenter'].get_running_export_jobs()[0] 268 job = getUtility(IJobManager).get(job_id) 269 tz = getUtility(IIkobaUtils).tzinfo 270 delta = timedelta(days=5) 271 setattr(job, '_begin_after', datetime.now(tz) - delta) 272 self.browser.getControl("Purge").click() 273 self.assertEqual(len(self.app['datacenter'].running_exports), 0) 274 logfile = os.path.join( 275 self.app['datacenter'].storage, 'logs', 'datacenter.log') 276 logcontent = open(logfile).read() 277 self.assertTrue('zope.mgr - browser.pages.ExportCSVPage - ' 278 'purged: job_id=%s' % job_id in logcontent) 279 return 280 196 281 197 282 class SupplementaryBrowserTests(CompanySetup):
Note: See TracChangeset for help on using the changeset viewer.