Exemplo n.º 1
0
    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")
Exemplo n.º 2
0
    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")
Exemplo n.º 3
0
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
Exemplo n.º 4
0
    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) + ")")
Exemplo n.º 5
0
    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)+")")
Exemplo n.º 6
0
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))
Exemplo n.º 7
0
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
Exemplo n.º 8
0
 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")                                            
Exemplo n.º 9
0
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))
Exemplo n.º 10
0
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))
Exemplo n.º 11
0
    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)
Exemplo n.º 12
0
    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)
Exemplo n.º 13
0
    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")   
Exemplo n.º 14
0
    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")
Exemplo n.º 15
0
    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")
Exemplo n.º 16
0
    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")
Exemplo n.º 17
0
    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")
Exemplo n.º 18
0
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()
Exemplo n.º 19
0
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()
Exemplo n.º 20
0
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))