Пример #1
0
    def test_detail(self):

        alert = models.Alert()
        alert.location = geojson_area
        alert.user = self.user
        alert.save()

        response = self.client.get('/alerts/%s.json' % alert.id)
        self.assertEqual(response.status_code, 401)

        self.client.login(email='*****@*****.**',
                          password='******')

        response = self.client.get('/alerts/%s.json' % alert.id)
        self.assertEqual(response.status_code, 200)

        UserModel = get_user_model()
        user = UserModel(email='*****@*****.**')
        user.set_password('notasecret')
        user.save()

        self.client.login(email='*****@*****.**',
                          password='******')

        response = self.client.get('/alerts/%s.json' % alert.id)
        self.assertEqual(response.status_code, 403)
Пример #2
0
    def test_create_delete(self):

        self.client.login(email='*****@*****.**',
                          password='******')

        alert = models.Alert()
        alert.location = geojson_area
        alert.user = self.user
        alert.save()

        data = {'delete': 'yes'}
        response = self.client.post('/alerts/%s/delete' % alert.id,
                                    data,
                                    follow=True)

        self.assertNotContains(response, "Delete this alert")
Пример #3
0
    def form_valid(self, form):
        alert = models.Alert()
        alert.location = form.cleaned_data['location']
        if self.request.user.is_authenticated:

            #save alert
            alert.user = self.request.user
            alert.save()

            #create a success message
            messages.add_message(self.request, messages.SUCCESS,
                                 success_message)

            return redirect(reverse('alert-list'))
        else:
            self.request.session['new-alert'] = serialize(
                'geojson', [alert], fields=('location', ))

            return redirect(reverse('create-alert-user'))
Пример #4
0
    def form_valid(self, form):

        #create user
        UserModel = get_user_model()
        user = UserModel(email=form.cleaned_data['email'])
        user.set_password(form.cleaned_data['password'])
        user.save()

        #sign new user in
        login(self.request, user)

        #get the location out of the session
        location = json.loads(self.request.session['new-alert'])

        #save alert
        alert = models.Alert()
        alert.location = json.dumps(location['features'][0]['geometry'])
        alert.user = user
        alert.save()

        #create a success message
        messages.add_message(self.request, messages.SUCCESS, success_message)

        return redirect(reverse('alert-list'))
Пример #5
0
 def validate(self, attrs):
     #use the model's validation
     alert = models.Alert(**attrs)
     alert.clean()
     return attrs