def test_calendar_anonymous(self): ''' Test the exercise overview cache is correctly generated on visit by anonymous users ''' self.user_logout() self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) for cache_key in ('workout-log-full', 'workout-log-mobile'): self.assertFalse( cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10))) self.assertFalse( cache.get( get_template_cache_name(cache_key, False, 1, 2012, 10))) self.client.get( reverse('manager:workout:calendar', kwargs={ 'username': '******', 'year': 2012, 'month': 10 })) cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full' self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) self.assertTrue( cache.get(get_template_cache_name(cache_key, False, 1, 2012, 10))) self.assertFalse( cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
def calendar(request, year=None, month=None): ''' Show a calendar with all the workout logs ''' if not year: year = datetime.date.today().year else: year = int(year) if not month: month = datetime.date.today().month else: month = int(month) context = {} logs = WorkoutLog.objects.filter(user=request.user, date__year=year, date__month=month).order_by('exercise') logs_filtered = cache.get( cache_mapper.get_workout_log(request.user.pk, year, month)) if not logs_filtered: logs_filtered = {} # Process the logs. Group by date and check for impressions for log in logs: if log.date not in logs_filtered: session = log.get_workout_session() if session: impression = session.impression else: # Default is 'neutral' impression = WorkoutSession.IMPRESSION_NEUTRAL logs_filtered[log.date.day] = { 'impression': impression, 'log': log } cache.set(cache_mapper.get_workout_log(request.user.pk, year, month), logs_filtered) (current_workout, schedule) = Schedule.objects.get_current_workout(request.user) context['calendar'] = WorkoutCalendar(logs_filtered).formatmonth( year, month) context['logs'] = process_log_entries(logs)[0] context['current_year'] = year context['current_month'] = month context['current_workout'] = current_workout context['impressions'] = WorkoutSession.IMPRESSION context['month_list'] = WorkoutLog.objects.filter(user=request.user).dates( 'date', 'month') return render(request, 'workout/calendar.html', context)
def calendar(request, username=None, year=None, month=None): ''' Show a calendar with all the workout logs ''' is_owner, user = check_access(request.user, username) logger.info('aa bb cc') uid, token = make_token(user) year = int(year) if year else datetime.date.today().year month = int(month) if month else datetime.date.today().month context = {} logs = WorkoutLog.objects.filter(user=user, date__year=year, date__month=month).order_by('exercise') logs_filtered = cache.get( cache_mapper.get_workout_log(user.pk, year, month)) if not logs_filtered: logs_filtered = {} # Process the logs. Group by date and check for impressions for log in logs: if log.date not in logs_filtered: session = log.get_workout_session() if session: impression = session.impression else: # Default is 'neutral' impression = WorkoutSession.IMPRESSION_NEUTRAL logs_filtered[log.date.day] = { 'impression': impression, 'log': log } cache.set(cache_mapper.get_workout_log(user.pk, year, month), logs_filtered) (current_workout, schedule) = Schedule.objects.get_current_workout(user) context['calendar'] = WorkoutCalendar(logs_filtered).formatmonth( year, month) context['logs'] = process_log_entries(logs)[0] context['current_year'] = year context['current_month'] = month context['current_workout'] = current_workout context['owner_user'] = user context['is_owner'] = is_owner context['impressions'] = WorkoutSession.IMPRESSION context['month_list'] = WorkoutLog.objects.filter(user=user).dates( 'date', 'month') context['show_shariff'] = is_owner and user.userprofile.ro_access return render(request, 'workout/calendar.html', context)
def test_calendar(self): ''' Test the exercise overview cache is correctly generated on visit ''' self.user_login('admin') self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) for cache_key in ('workout-log-full', 'workout-log-mobile'): self.assertFalse(cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10))) self.client.get(reverse('manager:workout:calendar', kwargs={'year': 2012, 'month': 10})) cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full' self.assertTrue(cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10))) self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
def calendar(request, year=None, month=None): ''' Show a calendar with all the workout logs ''' if not year: year = datetime.date.today().year else: year = int(year) if not month: month = datetime.date.today().month else: month = int(month) context = {} logs = WorkoutLog.objects.filter(user=request.user, date__year=year, date__month=month).order_by('exercise') logs_filtered = cache.get(cache_mapper.get_workout_log(request.user.pk, year, month)) if not logs_filtered: logs_filtered = {} # Process the logs. Group by date and check for impressions for log in logs: if log.date not in logs_filtered: session = log.get_workout_session() if session: impression = session.impression else: # Default is 'neutral' impression = WorkoutSession.IMPRESSION_NEUTRAL logs_filtered[log.date.day] = {'impression': impression, 'log': log} cache.set(cache_mapper.get_workout_log(request.user.pk, year, month), logs_filtered) (current_workout, schedule) = Schedule.objects.get_current_workout(request.user) context['calendar'] = WorkoutCalendar(logs_filtered).formatmonth(year, month) context['logs'] = process_log_entries(logs)[0] context['current_year'] = year context['current_month'] = month context['current_workout'] = current_workout context['impressions'] = WorkoutSession.IMPRESSION context['month_list'] = WorkoutLog.objects.filter(user=request.user).dates('date', 'month') return render(request, 'workout/calendar.html', context)
def test_cache_delete_log_2(self): ''' Test that the caches are only cleared for a the log's month ''' self.user_login('admin') self.client.get(reverse('manager:workout:calendar', kwargs={'year': 2012, 'month': 10})) log = WorkoutLog.objects.get(pk=3) log.delete() cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full' self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) self.assertTrue(cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
def test_cache_delete_session(self): ''' Test that the caches are cleared when deleting a workout session ''' self.user_login('admin') self.client.get(reverse('manager:workout:calendar', kwargs={'year': 2012, 'month': 10})) session = WorkoutSession.objects.get(pk=1) session.delete() cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full' self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) self.assertFalse(cache.get(get_template_cache_name(cache_key, 1, 2012, 10)))
def test_cache_update_log(self): ''' Test that the caches are cleared when saving a log ''' self.user_login('admin') self.client.get(reverse('manager:workout:calendar', kwargs={'year': 2012, 'month': 10})) log = WorkoutLog.objects.get(pk=1) log.weight = 35 log.save() cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full' self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) self.assertFalse(cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
def test_calendar(self): ''' Test the exercise overview cache is correctly generated on visit ''' self.user_login('admin') self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) self.assertFalse( cache.get(get_template_cache_name('workout-log-full', 1, 2012, 10))) self.assertFalse( cache.get( get_template_cache_name('workout-log-mobile', 1, 2012, 10))) self.client.get( reverse('manager:workout:calendar', kwargs={ 'year': 2012, 'month': 10 })) cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full' self.assertTrue( cache.get(get_template_cache_name(cache_key, 1, 2012, 10))) self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10)))
def test_cache_update_session_2(self): ''' Test that the caches are only cleared for a the session's month ''' self.user_login('admin') self.client.get(reverse('manager:workout:calendar', kwargs={'year': 2012, 'month': 10})) # Session is from 2014 session = WorkoutSession.objects.get(pk=2) session.notes = 'Lorem ipsum' session.save() cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full' self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) self.assertTrue(cache.get(get_template_cache_name(cache_key, 1, 2012, 10)))
def test_cache_delete_log_2(self): ''' Test that the caches are only cleared for a the log's month ''' self.user_login('admin') self.client.get( reverse('manager:workout:calendar', kwargs={ 'year': 2012, 'month': 10 })) log = WorkoutLog.objects.get(pk=3) log.delete() cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full' self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) self.assertTrue( cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
def test_cache_delete_session(self): ''' Test that the caches are cleared when deleting a workout session ''' self.user_login('admin') self.client.get( reverse('manager:workout:calendar', kwargs={ 'year': 2012, 'month': 10 })) session = WorkoutSession.objects.get(pk=1) session.delete() cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full' self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) self.assertFalse( cache.get(get_template_cache_name(cache_key, 'True', 1, 2012, 10)))
def test_cache_update_log(self): ''' Test that the caches are cleared when saving a log ''' self.user_login('admin') self.client.get( reverse('manager:workout:calendar', kwargs={ 'year': 2012, 'month': 10 })) log = WorkoutLog.objects.get(pk=1) log.weight = 35 log.save() cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full' self.assertFalse(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) self.assertFalse( cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))
def test_cache_update_session_2(self): ''' Test that the caches are only cleared for a the session's month ''' self.user_login('admin') self.client.get( reverse('manager:workout:calendar', kwargs={ 'year': 2012, 'month': 10 })) # Session is from 2014 session = WorkoutSession.objects.get(pk=2) session.notes = 'Lorem ipsum' session.save() cache_key = 'workout-log-mobile' if self.is_mobile else 'workout-log-full' self.assertTrue(cache.get(cache_mapper.get_workout_log(1, 2012, 10))) self.assertTrue( cache.get(get_template_cache_name(cache_key, True, 1, 2012, 10)))