# -*- coding: utf-8; -*- from pyramid import testing from wuttaweb.views import progress as mod from wuttaweb.progress import get_progress_session from tests.util import WebTestCase class TestProgressView(WebTestCase): def test_includeme(self): self.pyramid_config.include('wuttaweb.views.progress') def test_basic(self): self.request.session.id = 'mockid' self.request.matchdict = {'key': 'foo'} # first call with no setup, will create the progress session # but it should be "empty" - except not really since beaker # adds some keys by default context = mod.progress(self.request) self.assertIsInstance(context, dict) # now let's establish a progress session of our own progsess = get_progress_session(self.request, 'bar') progsess['maximum'] = 2 progsess['value'] = 1 progsess.save() # then call view, check results self.request.matchdict = {'key': 'bar'} context = mod.progress(self.request) self.assertEqual(context['maximum'], 2) self.assertEqual(context['value'], 1) self.assertNotIn('complete', context) # now mark it as complete, check results progsess['complete'] = True progsess['success_msg'] = "yay!" progsess.save() context = mod.progress(self.request) self.assertTrue(context['complete']) self.assertEqual(context['success_msg'], "yay!") # now do that all again, with error progsess = get_progress_session(self.request, 'baz') progsess['maximum'] = 2 progsess['value'] = 1 progsess.save() self.request.matchdict = {'key': 'baz'} context = mod.progress(self.request) self.assertEqual(context['maximum'], 2) self.assertEqual(context['value'], 1) self.assertNotIn('complete', context) self.assertNotIn('error', context) progsess['error'] = True progsess['error_msg'] = "omg!" progsess.save() context = mod.progress(self.request) self.assertTrue(context['error']) self.assertEqual(context['error_msg'], "omg!")