def test_submitFormToEditMessage(self): """ submit the Memo Message through the form """ original_msg = MemoMessage.getMessages()[0] original_content = original_msg.content self.loginUser(original_msg.author.pk) modified_content = "The content has been modified" response = self.client.post("/memo/messages/edit/%s" % original_msg.pk, data={ "content": modified_content, "author": original_msg.author.pk }) self.assertEqual(response.status_code, 302, "submitFormToEditMessage Failed") new_msg = MemoMessage.getMessages()[0] self.assertNotEquals(new_msg.content, original_content, "submitFormToEditMessage Failed") self.assertEqual(modified_content, new_msg.content, "submitFormToEditMessage Failed") self.assertEqual(new_msg.content_timestamp, original_msg.content_timestamp, "submitFormToEditMessage Failed") self.assertEqual(new_msg.latitude, original_msg.latitude, "submitFormToEditMessage Failed") self.assertEqual(new_msg.longitude, original_msg.longitude, "submitFormToEditMessage Failed")
def test_ensureEditByNonAuthorForbidden(self): original_msg = MemoMessage.getMessages()[0] for user in User.objects.all(): if user.username != original_msg.author.username and not user.is_superuser: self.loginUser(user.pk) break modified_content = "The content has been modified" response = self.client.post(reverse("memo_edit_message", args=[original_msg.pk]), data={ "content": modified_content, "author": original_msg.author.pk }) self.assertEqual(response.status_code, 302, "ensureEditByNonAuthorForbidden Failed") new_msg = MemoMessage.getMessages()[0] # should be redirected when form post is successful: self.assertEquals(new_msg.content, original_msg.content, "ensureEditByNonAuthorForbidden Failed") self.assertNotEqual(modified_content, new_msg.content, "ensureEditByNonAuthorForbidden Failed") self.assertEqual(new_msg.content_timestamp, original_msg.content_timestamp, "ensureEditByNonAuthorForbidden Failed") self.assertEqual(new_msg.latitude, original_msg.latitude, "ensureEditByNonAuthorForbidden Failed") self.assertEqual(new_msg.longitude, original_msg.longitude, "ensureEditByNonAuthorForbidden Failed")
def get_messages(request, author_username=None): if author_username is not None: author = get_object_or_404(User, username=author_username) else: author = None since = request.GET.get('since', None) if since is not None: since_dt = since messages = MemoMessage.getMessages(author).filter(pk__gt=since_dt) message_count = MemoMessage.getMessages(request.user).filter(pk__gt=since_dt).count() else: messages = MemoMessage.getMessages(author) message_count = MemoMessage.getMessages(request.user).count() return messages, message_count
def testEnsureMapDisplaysAllMessagesWithGeolocationByAllUsers(self): #arrange messages = MemoMessage.getMessages() assert not messages[0].has_geolocation(), "Fixtures should have a non-geolocated message as latest" #let's find the first message that has a geoloction and ensure the map is centered on it message = None for m in messages: if m.has_geolocation(): message = m break lat = message.latitude lon = message.longitude #act response = self.get_map_response() #assert self.assertContains(response, "createMap(" + str(lat) + "," + str(lon) + ")") self.assertContains(response, "<section id=\"map_canvas\"") for m in messages: if m.has_geolocation(): self.assertContains(response, "latitude:" + str(m.latitude)) else: self.assertNotContains(response, "google.maps.LatLng(" + str(m.latitude) + "," + str(m.longitude) + ")")
def testEnsureMapDisplaysAllMessagesWithGeolocationByAllUsers(self): #arrange messages = MemoMessage.getMessages() assert not messages[0].has_geolocation(), "Fixtures should have a non-geolocated message as latest" #let's find the first message that has a geoloction and ensure the map is centered on it message = None for m in messages: if m.has_geolocation(): message = m break lat = message.latitude lon = message.longitude #act response = self.get_map_response() #assert self.assertContains(response, "createMap("+str(lat)+","+str(lon)+")") self.assertContains(response, "<section id=\"map_canvas\"") for m in messages: if m.has_geolocation(): self.assertContains(response, "latitude:"+str(m.latitude)) else: self.assertNotContains(response, "google.maps.LatLng("+str(m.latitude)+","+str(m.longitude)+")")
def message_map(request): messages = MemoMessage.getMessages() return render_to_response( 'geocamMemo/map.html', dict(gc_msg=messages, first_geolocation=get_first_geolocation(messages)), context_instance=RequestContext(request))
def get_messages(request, author_username=None): if author_username is not None: author = get_object_or_404(User, username=author_username) else: author = None since = request.GET.get('since', None) if since is not None: since_dt = since messages = MemoMessage.getMessages(author).filter(pk__gt=since_dt) message_count = MemoMessage.getMessages( request.user).filter(pk__gt=since_dt).count() else: messages = MemoMessage.getMessages(author) message_count = MemoMessage.getMessages(request.user).count() return messages, message_count
def test_submitFormToEditMessage(self): """ submit the Memo Message through the form """ original_msg = MemoMessage.getMessages()[0] original_content = original_msg.content self.loginUser(original_msg.author.pk) modified_content = "The content has been modified" response = self.client.post("/memo/messages/edit/%s"% original_msg.pk, data={"content":modified_content, "author":original_msg.author.pk}) self.assertEqual(response.status_code, 302, "submitFormToEditMessage Failed") new_msg = MemoMessage.getMessages()[0] self.assertNotEquals(new_msg.content, original_content, "submitFormToEditMessage Failed") self.assertEqual(modified_content, new_msg.content, "submitFormToEditMessage Failed") self.assertEqual(new_msg.content_timestamp, original_msg.content_timestamp, "submitFormToEditMessage Failed") self.assertEqual(new_msg.latitude, original_msg.latitude, "submitFormToEditMessage Failed") self.assertEqual(new_msg.longitude, original_msg.longitude, "submitFormToEditMessage Failed")
def message_list(request, author_username=None): if author_username is not None: author = get_object_or_404(User, username=author_username) else: author = None return render_to_response('geocamMemo/message_list.html', dict(gc_msg=MemoMessage.getMessages(author), author=author), context_instance=RequestContext(request))
def message_list(request, author_username=None): if author_username is not None: author = get_object_or_404(User, username=author_username) else: author = None return render_to_response('geocamMemo/message_list.html', dict(gc_msg=MemoMessage.getMessages(author), author=author), context_instance=RequestContext(request))
def test_MessagesJsonFeed(self): ordered_messages = MemoMessage.getMessages() # yes the order of this dict does matter... unfortunately stringified_msg_list = json.dumps([msg.getJson() for msg in ordered_messages ]) self.client.login(username="******", password='******') response = self.client.get(reverse("memo_message_list_all_json")) self.assertContains(response,stringified_msg_list)
def test_MessagesJsonFeed(self): ordered_messages = MemoMessage.getMessages() # yes the order of this dict does matter... unfortunately stringified_msg_list = json.dumps( [msg.getJson() for msg in ordered_messages]) self.client.login(username="******", password='******') response = self.client.get(reverse("memo_message_list_all_json")) self.assertContains(response, stringified_msg_list)
def test_ensureEditByNonAuthorForbidden(self): original_msg = MemoMessage.getMessages()[0] for user in User.objects.all(): if user.username != original_msg.author.username and not user.is_superuser: self.loginUser(user.pk) break modified_content = "The content has been modified" response = self.client.post(reverse("memo_edit_message", args=[original_msg.pk]), data={"content":modified_content, "author":original_msg.author.pk}) self.assertEqual(response.status_code, 302, "ensureEditByNonAuthorForbidden Failed") new_msg = MemoMessage.getMessages()[0] # should be redirected when form post is successful: self.assertEquals(new_msg.content, original_msg.content, "ensureEditByNonAuthorForbidden Failed") self.assertNotEqual(modified_content, new_msg.content, "ensureEditByNonAuthorForbidden Failed") self.assertEqual(new_msg.content_timestamp, original_msg.content_timestamp, "ensureEditByNonAuthorForbidden Failed") self.assertEqual(new_msg.latitude, original_msg.latitude, "ensureEditByNonAuthorForbidden Failed") self.assertEqual(new_msg.longitude, original_msg.longitude, "ensureEditByNonAuthorForbidden Failed")
def testMessageListSizeAndOrder(self): u = User.objects.all()[0] self.client.login(username=u.username, password='******') response = self.get_messages_response() displayedmessages = response.context['gc_msg'] # get the data object sent to the template displayed_message_ids = [m.pk for m in displayedmessages] messages = MemoMessage.getMessages() #descending (newest at top) message_ids = [m.pk for m in messages] self.assertEqual(displayed_message_ids, message_ids, "Order should be the same")
def testMessageListSizeAndOrder(self): u = User.objects.all()[0] self.client.login(username=u.username, password='******') response = self.get_messages_response() displayedmessages = response.context['gc_msg'] # get the data object sent to the template displayed_message_ids = [m.pk for m in displayedmessages] messages = MemoMessage.getMessages() # descending (newest at top) message_ids = [m.pk for m in messages] self.assertEqual(displayed_message_ids, message_ids, "Order should be the same")
def testEnsureFilteredMessageListSizeAndOrder(self): #arrange u = User.objects.all()[1] #descending (newest at top) messages = MemoMessage.getMessages(u) message_ids = [m.pk for m in messages] #act response = self.get_messages_response_filtered(u) #Looks at last parameter of context. Denoted by -1 displayedmessages = response.context[-1]['gc_msg'] # get the data object sent to the template displayed_message_ids = [m.pk for m in displayedmessages] #assert self.assertEqual(displayed_message_ids, message_ids, "Order should be the same")
def testEnsureFilteredMessageListSizeAndOrder(self): #arrange u = User.objects.all()[1] #descending (newest at top) messages = MemoMessage.getMessages(u) message_ids = [m.pk for m in messages] #act response = self.get_messages_response_filtered(u) #Looks at last parameter of context. Denoted by -1 displayedmessages = response.context[-1]['gc_msg'] # get the data object sent to the template displayed_message_ids = [m.pk for m in displayedmessages] #assert self.assertEqual(displayed_message_ids, message_ids, "Order should be the same")
def message_list_json(request): if request.user.is_authenticated(): messages = MemoMessage.getMessages() return HttpResponse(json.dumps([msg.getJson() for msg in messages])) else: return HttpResponseForbidden()
def message_list_json(request): if request.user.is_authenticated(): messages = MemoMessage.getMessages() return HttpResponse(json.dumps([msg.getJson() for msg in messages])) else: return HttpResponseForbidden()
def message_map(request): messages = MemoMessage.getMessages() return render_to_response('geocamMemo/map.html', dict(gc_msg=messages, first_geolocation=get_first_geolocation(messages)), context_instance=RequestContext(request))