Changeset 26220ba in OpenWorkouts-current for ow/tests/views/test_user.py


Ignore:
Timestamp:
Jan 25, 2019, 12:48:51 AM (5 years ago)
Author:
Borja Lopez <borja@…>
Branches:
current, feature/docs, master
Children:
d0fc76b, ed7e9d7
Parents:
c6219ed (diff), 5bdfbfb (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge patches from darcs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ow/tests/views/test_user.py

    rc6219ed r26220ba  
    11import os
     2import json
    23from datetime import datetime, timedelta, timezone
    34from shutil import copyfileobj
     
    152153        request = dummy_request
    153154        response = user_views.dashboard(john, request)
    154         assert len(response) == 4
    155         assert 'month_name' in response.keys()
     155        assert len(response) == 6
     156        assert 'month_name' in response.keys()
     157        assert response['current_year'] == datetime.now().year
     158        assert response['current_day_name'] == datetime.now().strftime('%a')
    156159        # this user has a single workout, in 2015
    157160        assert response['viewing_year'] == 2015
     
    167170        request.GET['year'] = 2015
    168171        response = user_views.dashboard(john, request)
    169         assert len(response) == 4
    170         assert 'month_name' in response.keys()
     172        assert len(response) == 6
     173        assert 'month_name' in response.keys()
     174        assert response['current_year'] == datetime.now().year
     175        assert response['current_day_name'] == datetime.now().strftime('%a')
    171176        # this user has a single workout, in 2015
    172177        assert response['viewing_year'] == 2015
     
    176181        request.GET['year'] = 2000
    177182        response = user_views.dashboard(john, request)
    178         assert len(response) == 4
    179         assert 'month_name' in response.keys()
     183        assert len(response) == 6
     184        assert 'month_name' in response.keys()
     185        assert response['current_year'] == datetime.now().year
     186        assert response['current_day_name'] == datetime.now().strftime('%a')
    180187        # this user has a single workout, in 2015
    181188        assert response['viewing_year'] == 2000
     
    194201        request.GET['month'] = 6
    195202        response = user_views.dashboard(john, request)
    196         assert len(response) == 4
    197         assert 'month_name' in response.keys()
     203        assert len(response) == 6
     204        assert 'month_name' in response.keys()
     205        assert response['current_year'] == datetime.now().year
     206        assert response['current_day_name'] == datetime.now().strftime('%a')
    198207        # this user has a single workout, in 2015
    199208        assert response['viewing_year'] == 2015
     
    203212        request.GET['month'] = 2
    204213        response = user_views.dashboard(john, request)
    205         assert len(response) == 4
    206         assert 'month_name' in response.keys()
     214        assert len(response) == 6
     215        assert 'month_name' in response.keys()
     216        assert response['current_year'] == datetime.now().year
     217        assert response['current_day_name'] == datetime.now().strftime('%a')
    207218        # this user has a single workout, in 2015
    208219        assert response['viewing_year'] == 2015
     
    213224        request.GET['month'] = 6
    214225        response = user_views.dashboard(john, request)
    215         assert len(response) == 4
    216         assert 'month_name' in response.keys()
     226        assert len(response) == 6
     227        assert 'month_name' in response.keys()
     228        assert response['current_year'] == datetime.now().year
     229        assert response['current_day_name'] == datetime.now().strftime('%a')
    217230        # this user has a single workout, in 2015
    218231        assert response['viewing_year'] == 2010
     
    229242        request.GET['month'] = 5
    230243        response = user_views.dashboard(john, request)
    231         assert len(response) == 4
    232         assert 'month_name' in response.keys()
     244        assert len(response) == 6
     245        assert 'month_name' in response.keys()
     246        assert response['current_year'] == datetime.now().year
     247        assert response['current_day_name'] == datetime.now().strftime('%a')
    233248        # this user has a single workout, in 2015
    234249        assert response['viewing_year'] == 2015
     
    238253        request.GET['month'] = 6
    239254        response = user_views.dashboard(john, request)
    240         assert len(response) == 4
    241         assert 'month_name' in response.keys()
     255        assert len(response) == 6
     256        assert 'month_name' in response.keys()
     257        assert response['current_year'] == datetime.now().year
     258        assert response['current_day_name'] == datetime.now().strftime('%a')
    242259        # this user has a single workout, in 2015
    243260        assert response['viewing_year'] == 2015
     
    583600        assert 'jack.black@example.net' not in request.root.emails
    584601        assert 'JackBlack' not in request.root.all_nicknames
     602
     603    def test_week_stats_no_stats(self, dummy_request, john):
     604        response = user_views.week_stats(john, dummy_request)
     605        assert isinstance(response, Response)
     606        assert response.content_type == 'application/json'
     607        # the body is a valid json-encoded stream
     608        obj = json.loads(response.body)
     609        assert obj == [
     610            {'distance': 0, 'elevation': 0, 'name': 'Mon',
     611             'time': '00', 'workouts': 0},
     612            {'distance': 0, 'elevation': 0, 'name': 'Tue',
     613             'time': '00', 'workouts': 0},
     614            {'distance': 0, 'elevation': 0, 'name': 'Wed',
     615             'time': '00', 'workouts': 0},
     616            {'distance': 0, 'elevation': 0, 'name': 'Thu',
     617             'time': '00', 'workouts': 0},
     618            {'distance': 0, 'elevation': 0, 'name': 'Fri',
     619             'time': '00', 'workouts': 0},
     620            {'distance': 0, 'elevation': 0, 'name': 'Sat',
     621             'time': '00', 'workouts': 0},
     622            {'distance': 0, 'elevation': 0, 'name': 'Sun',
     623             'time': '00', 'workouts': 0}
     624        ]
     625
     626    def test_week_stats(self, dummy_request, john):
     627        workout = Workout(
     628            start=datetime.now(timezone.utc),
     629            duration=timedelta(minutes=60),
     630            distance=30,
     631            elevation=540
     632        )
     633        john.add_workout(workout)
     634        response = user_views.week_stats(john, dummy_request)
     635        assert isinstance(response, Response)
     636        assert response.content_type == 'application/json'
     637        # the body is a valid json-encoded stream
     638        obj = json.loads(response.body)
     639        assert len(obj) == 7
     640        for day in obj:
     641            if datetime.now(timezone.utc).strftime('%a') == day['name']:
     642                day['distance'] == 30
     643                day['elevation'] == 540
     644                day['time'] == '01'
     645                day['workouts'] == 1
     646            else:
     647                day['distance'] == 0
     648                day['elevation'] == 0
     649                day['time'] == '00'
     650                day['workouts'] == 0
Note: See TracChangeset for help on using the changeset viewer.