def test_delete_works_if_authorized(self): """Make sure the delete view returns 200 status code.""" aRun = Run(user=self.user, date="2011-7-22", hours=0, minutes=19, seconds=59, distance=4) aRun.save() self.c.login(username='******', password='******') status = self.c.post('/delete/1').status_code self.assertEquals(status, 302) self.assertEquals(0, Run.objects.count())
def test_delete_fails_if_unauthorized(self): """If you don't own a run you should not be able to delete it.""" self.user2 = User.objects.create_user("user2", password="******") aRun = Run(user=self.user2, date="2011-7-22", hours=0, minutes=19, seconds=59, distance=4) aRun.save() self.c.login(username='******', password='******') status = self.c.post('/delete/' + str(aRun.id)).status_code self.assertEquals(status, 302) self.assertEquals(1, Run.objects.count())
def add(request): """View that handles ajax of adding a run to the database.""" if request.method == "POST": runForm = AddRunForm(request.POST) if runForm.is_valid(): newRun = Run( user=request.user, date=runForm.cleaned_data["date"], hours=runForm.cleaned_data["hours"], minutes=runForm.cleaned_data["minutes"], seconds=runForm.cleaned_data["seconds"], distance=runForm.cleaned_data["distance"], ) newRun.save() response = {"id": newRun.pk} return HttpResponse(dumps(response), mimetype="application/json") else: # return errors return HttpResponse(dumps(runForm.errors), mimetype="application/json") return HttpResponseRedirect("/")
def test_calculates_six_week_avg_properly(self): """Dashboard view should calculate the 6 week average properly.""" #Create a bunch of runs to average NOW = datetime.now() Run1 = Run(user=self.user, date=NOW, hours=0, minutes=19, seconds=1, distance=7) Run1.save() Run2 = Run(user=self.user, date=NOW - timedelta(days=7), hours=0, minutes=19, seconds=1, distance=11) Run2.save() Run3 = Run(user=self.user, date=NOW - timedelta(days=14), hours=0, minutes=19, seconds=1, distance=23) Run3.save() Run4 = Run(user=self.user, date=NOW - timedelta(days=21), hours=0, minutes=19, seconds=1, distance=1) Run4.save() Run5 = Run(user=self.user, date=NOW - timedelta(days=28), hours=0, minutes=19, seconds=21, distance=18) Run5.save() Run6 = Run(user=self.user, date=NOW - timedelta(days=42), hours=0, minutes=19, seconds=38, distance=6) Run6.save() #Create a run that shouldn't be averaged. Run7 = Run(user=self.user, date=NOW - timedelta(days=43), hours=0, minutes=19, seconds=49, distance=400) Run7.save() self.c.login(username='******', password='******') response = self.c.get('/dashboard/') self.assertEquals(response.context['six_week_avg'], 11)