def test_all_time(self): from models import UserStats, User import datetime from django.test import RequestFactory from django.core.urlresolvers import reverse from views import all_time_top_ten day = datetime.datetime(2017, 10, 20) for i in range(11): u = User(public_name='Roulio', email=str(i)) u.save() s = UserStats(user=u, start_date=day) s.monday_steps = 10 + i s.save() s = UserStats(user=u, start_date=day - datetime.timedelta(days=7)) s.monday_steps = 10 + i s.save() factory = RequestFactory() rq = factory.get(reverse('all_time_top_ten')) response = all_time_top_ten(rq) self.assertIsNotNone(response)
def test_total_steps(self): from models import UserStats import datetime today = datetime.datetime(2017, 10, 20) monday = today - datetime.timedelta(days=today.weekday()) tuesday = monday + datetime.timedelta(days=1) wednesday = monday + datetime.timedelta(days=2) thursday = monday + datetime.timedelta(days=3) friday = monday + datetime.timedelta(days=4) saturday = monday + datetime.timedelta(days=5) sunday = monday + datetime.timedelta(days=6) s = UserStats() s.add(25, monday) s.add(25, monday) s.add(7, tuesday) s.add(89, wednesday) s.add(2, thursday) s.add(3, friday) s.add(5, saturday) s.add(9, sunday) self.assertEqual(s.total_steps(), 25 + 25 + 7 + 89 + 2 + 3 + 5 + 9)
def test_add(self): from models import UserStats import datetime today = datetime.datetime(2017, 10, 20) monday = today - datetime.timedelta(days=today.weekday()) tuesday = monday + datetime.timedelta(days=1) wednesday = monday + datetime.timedelta(days=2) thursday = monday + datetime.timedelta(days=3) friday = monday + datetime.timedelta(days=4) s = UserStats() self.assertEqual(s.monday_steps, 0) s.add(25, monday) self.assertEqual(s.monday_steps, 25) s.add(25, monday) self.assertEqual(s.monday_steps, 50) s.add(7, tuesday) self.assertEqual(s.tuesday_steps, 7) s.add(89, wednesday) self.assertEqual(s.wednesday_steps, 89) s.add(2, thursday) self.assertEqual(s.thursday_steps, 2) s.add(3, friday) self.assertEqual(s.friday_steps, 3)
def save(self): profile = UserProfile() stats = UserStats() stats.save() username = self.cleaned_data["username"] email = self.cleaned_data["email"] password = self.cleaned_data["password"] display_image = self.cleaned_data["display_image"] if display_image is None: admin = UserProfile.objects.get(id=1) display_image = admin.display_image profile.user = User.objects.create_user(username, email, password) profile.display_image = display_image profile.stats = stats profile.save()