| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  | # -*- coding: utf-8; -*- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from pyramid import testing | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from wuttaweb.views import progress as mod | 
					
						
							|  |  |  | from wuttaweb.progress import get_progress_session | 
					
						
							| 
									
										
										
										
											2025-01-06 16:47:48 -06:00
										 |  |  | from wuttaweb.testing import WebTestCase | 
					
						
							| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestProgressView(WebTestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_includeme(self): | 
					
						
							| 
									
										
										
										
											2025-08-31 12:26:43 -05:00
										 |  |  |         self.pyramid_config.include("wuttaweb.views.progress") | 
					
						
							| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def test_basic(self): | 
					
						
							| 
									
										
										
										
											2025-08-31 12:26:43 -05:00
										 |  |  |         self.request.session.id = "mockid" | 
					
						
							|  |  |  |         self.request.matchdict = {"key": "foo"} | 
					
						
							| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # 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 | 
					
						
							| 
									
										
										
										
											2025-08-31 12:26:43 -05:00
										 |  |  |         progsess = get_progress_session(self.request, "bar") | 
					
						
							|  |  |  |         progsess["maximum"] = 2 | 
					
						
							|  |  |  |         progsess["value"] = 1 | 
					
						
							| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  |         progsess.save() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # then call view, check results | 
					
						
							| 
									
										
										
										
											2025-08-31 12:26:43 -05:00
										 |  |  |         self.request.matchdict = {"key": "bar"} | 
					
						
							| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  |         context = mod.progress(self.request) | 
					
						
							| 
									
										
										
										
											2025-08-31 12:26:43 -05:00
										 |  |  |         self.assertEqual(context["maximum"], 2) | 
					
						
							|  |  |  |         self.assertEqual(context["value"], 1) | 
					
						
							|  |  |  |         self.assertNotIn("complete", context) | 
					
						
							| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # now mark it as complete, check results | 
					
						
							| 
									
										
										
										
											2025-08-31 12:26:43 -05:00
										 |  |  |         progsess["complete"] = True | 
					
						
							|  |  |  |         progsess["success_msg"] = "yay!" | 
					
						
							| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  |         progsess.save() | 
					
						
							|  |  |  |         context = mod.progress(self.request) | 
					
						
							| 
									
										
										
										
											2025-08-31 12:26:43 -05:00
										 |  |  |         self.assertTrue(context["complete"]) | 
					
						
							|  |  |  |         self.assertEqual(context["success_msg"], "yay!") | 
					
						
							| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # now do that all again, with error | 
					
						
							| 
									
										
										
										
											2025-08-31 12:26:43 -05:00
										 |  |  |         progsess = get_progress_session(self.request, "baz") | 
					
						
							|  |  |  |         progsess["maximum"] = 2 | 
					
						
							|  |  |  |         progsess["value"] = 1 | 
					
						
							| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  |         progsess.save() | 
					
						
							| 
									
										
										
										
											2025-08-31 12:26:43 -05:00
										 |  |  |         self.request.matchdict = {"key": "baz"} | 
					
						
							| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  |         context = mod.progress(self.request) | 
					
						
							| 
									
										
										
										
											2025-08-31 12:26:43 -05:00
										 |  |  |         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!" | 
					
						
							| 
									
										
										
										
											2024-08-24 19:28:13 -05:00
										 |  |  |         progsess.save() | 
					
						
							|  |  |  |         context = mod.progress(self.request) | 
					
						
							| 
									
										
										
										
											2025-08-31 12:26:43 -05:00
										 |  |  |         self.assertTrue(context["error"]) | 
					
						
							|  |  |  |         self.assertEqual(context["error_msg"], "omg!") |