62 lines
2.1 KiB
Python
62 lines
2.1 KiB
Python
# -*- coding: utf-8; -*-
|
|
|
|
from pyramid import testing
|
|
|
|
from wuttaweb.views import progress as mod
|
|
from wuttaweb.progress import get_progress_session
|
|
from wuttaweb.testing 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!")
|