mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-30 19:43:47 +00:00 
			
		
		
		
	tests: Factor out POST result success and error checks.
(imported from commit b818faf145ffeda6deb7d36fcce1313eade8f457)
This commit is contained in:
		| @@ -50,6 +50,27 @@ class AuthedTestCase(TestCase): | ||||
|     def zephyr_stream(self, user): | ||||
|         return filter_by_subscriptions(Zephyr.objects.all(), user) | ||||
|  | ||||
|     def assert_json_success(self, result): | ||||
|         """ | ||||
|         Successful POSTs return a 200 and JSON of the form {"result": "success", | ||||
|         "msg": ""}. | ||||
|         """ | ||||
|         self.assertEquals(result.status_code, 200) | ||||
|         json = simplejson.loads(result.content) | ||||
|         self.assertEquals(json.get("result"), "success") | ||||
|         # We have a msg key for consistency with errors, but it typically has an | ||||
|         # empty value. | ||||
|         self.assertTrue("msg" in json) | ||||
|  | ||||
|     def assert_json_error(self, result, msg): | ||||
|         """ | ||||
|         Invalid POSTs return a 400 and JSON of the form {"result": "error", | ||||
|         "msg": "reason"}. | ||||
|         """ | ||||
|         self.assertEquals(result.status_code, 400) | ||||
|         json = simplejson.loads(result.content) | ||||
|         self.assertEquals(json.get("result"), "error") | ||||
|         self.assertEquals(json.get("msg"), msg) | ||||
|  | ||||
| class PublicURLTest(TestCase): | ||||
|     """ | ||||
| @@ -229,8 +250,7 @@ class PointerTest(AuthedTestCase): | ||||
|         self.login("hamlet", "hamlet") | ||||
|         self.assertEquals(self.get_userprofile("hamlet").pointer, -1) | ||||
|         result = self.client.post("/update", {"pointer": 1}) | ||||
|         self.assertEquals(result.status_code, 200) | ||||
|         self.assertEquals(simplejson.loads(result.content).get("result"), "success") | ||||
|         self.assert_json_success(result) | ||||
|         self.assertEquals(self.get_userprofile("hamlet").pointer, 1) | ||||
|  | ||||
|     def test_missing_pointer(self): | ||||
| @@ -241,8 +261,7 @@ class PointerTest(AuthedTestCase): | ||||
|         self.login("hamlet", "hamlet") | ||||
|         self.assertEquals(self.get_userprofile("hamlet").pointer, -1) | ||||
|         result = self.client.post("/update", {"foo": 1}) | ||||
|         self.assertEquals(result.status_code, 400) | ||||
|         self.assertEquals(simplejson.loads(result.content).get("result"), "error") | ||||
|         self.assert_json_error(result, "Missing pointer") | ||||
|         self.assertEquals(self.get_userprofile("hamlet").pointer, -1) | ||||
|  | ||||
|     def test_invalid_pointer(self): | ||||
| @@ -253,8 +272,7 @@ class PointerTest(AuthedTestCase): | ||||
|         self.login("hamlet", "hamlet") | ||||
|         self.assertEquals(self.get_userprofile("hamlet").pointer, -1) | ||||
|         result = self.client.post("/update", {"pointer": "foo"}) | ||||
|         self.assertEquals(result.status_code, 400) | ||||
|         self.assertEquals(simplejson.loads(result.content).get("result"), "error") | ||||
|         self.assert_json_error(result, "Invalid pointer: must be an integer") | ||||
|         self.assertEquals(self.get_userprofile("hamlet").pointer, -1) | ||||
|  | ||||
|     def test_pointer_out_of_range(self): | ||||
| @@ -265,6 +283,5 @@ class PointerTest(AuthedTestCase): | ||||
|         self.login("hamlet", "hamlet") | ||||
|         self.assertEquals(self.get_userprofile("hamlet").pointer, -1) | ||||
|         result = self.client.post("/update", {"pointer": -2}) | ||||
|         self.assertEquals(result.status_code, 400) | ||||
|         self.assertEquals(simplejson.loads(result.content).get("result"), "error") | ||||
|         self.assert_json_error(result, "Invalid pointer value") | ||||
|         self.assertEquals(self.get_userprofile("hamlet").pointer, -1) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user