Add tests for POSTs to /update.

(imported from commit e936d0f2abe21da70ef653ce27c290c31dd091c6)
This commit is contained in:
Jessica McKellar 2012-09-06 14:53:13 -04:00
parent 4f04172288
commit ebfb696ff7

View File

@ -8,6 +8,7 @@ from zephyr.models import Zephyr, UserProfile, ZephyrClass, Recipient, Subscript
import datetime
import os
import simplejson
import subprocess
subprocess.call("zephyr/tests/generate-fixtures");
@ -217,3 +218,53 @@ class ClassZephyrsTest(AuthedTestCase):
self.assertEqual(old_non_subscriber_zephyrs, new_non_subscriber_zephyrs)
self.assertEqual(new_subscriber_zephyrs, [elt + 1 for elt in old_subscriber_zephyrs])
class PointerTest(AuthedTestCase):
fixtures = ['zephyrs.json']
def test_update_pointer(self):
"""
Posting a pointer to /update (in the form {"pointer": pointer}) changes
the pointer we store for your UserProfile.
"""
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.assertEquals(self.get_userprofile("hamlet").pointer, 1)
def test_missing_pointer(self):
"""
Posting json to /update which does not contain a pointer key/value pair
returns a 400 and error message.
"""
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.assertEquals(self.get_userprofile("hamlet").pointer, -1)
def test_invalid_pointer(self):
"""
Posting json to /update with an invalid pointer returns a 400 and error
message.
"""
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.assertEquals(self.get_userprofile("hamlet").pointer, -1)
def test_pointer_out_of_range(self):
"""
Posting json to /update with an out of range (< 0) pointer returns a 400
and error message.
"""
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.assertEquals(self.get_userprofile("hamlet").pointer, -1)