Changeset 24596da in OpenWorkouts-current for ow/tests/views/test_user.py
- Timestamp:
- Feb 27, 2019, 6:28:07 PM (5 years ago)
- Branches:
- current, feature/docs, master
- Children:
- cef474f
- Parents:
- 68d00f5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ow/tests/views/test_user.py
r68d00f5 r24596da 13 13 14 14 from pyramid.testing import DummyRequest 15 from pyramid.httpexceptions import HTTPFound 15 from pyramid.httpexceptions import HTTPFound, HTTPNotFound 16 16 from pyramid.response import Response 17 17 … … 475 475 } 476 476 477 def test_profile_with_nickname(self, dummy_request, john): 478 """ 479 Loading the profile page using the user nickname 480 """ 481 request = dummy_request 482 john.nickname = 'JohnDoe' 483 request.root.reindex(john) 484 # first load using the uuid 485 response_uuid = user_views.profile(john, request) 486 # now, do it with the nickname 487 request.subpath = ['JohnDoe'] 488 response_nickname = user_views.profile(request.root, request) 489 assert response_uuid == response_nickname 490 # try an unknown nickname, HTTPNotFound is returned 491 request.subpath = ['Invalid'] 492 response_nickname = user_views.profile(request.root, request) 493 assert isinstance(response_nickname, HTTPNotFound) 494 477 495 def test_login_get(self, dummy_request): 478 496 """ … … 675 693 returned_image = Image.open(BytesIO(response.body)) 676 694 assert original_image.size == returned_image.size 695 696 def test_profile_picture_none(self, dummy_request, john): 697 """ 698 GET request for an user without a profile picture 699 """ 700 request = dummy_request 701 user = john 702 response = user_views.profile_picture(user, request) 703 assert isinstance(response, HTTPNotFound) 677 704 678 705 def test_edit_profile_get(self, dummy_request, john): … … 1002 1029 day['time'] == '00' 1003 1030 day['workouts'] == 0 1031 1032 def test_last_months_stats(self, dummy_request, john): 1033 request = dummy_request 1034 user = john 1035 response = user_views.last_months_stats(user, request) 1036 assert isinstance(response, Response) 1037 assert response.content_type == 'application/json' 1038 # the body is a valid json-encoded stream 1039 obj = json.loads(response.body) 1040 assert len(obj) == 13 1041 for month in obj: 1042 assert len(month.keys()) == 7 1043 assert 'id' in month.keys() 1044 assert 'name' in month.keys() 1045 assert month['distance'] == 0 1046 assert month['elevation'] == 0 1047 assert month['time'] == '00' 1048 assert month['workouts'] == 0 1049 assert str(user.uid) in month['url'] 1050 assert 'profile' in month['url'] 1051 assert 'year' in month['url'] 1052 assert 'month' in month['url'] 1053 1054 # try now with a workout 1055 workout_start = datetime.now(timezone.utc) 1056 workout_start_id = ( 1057 str(workout_start.year) + '-' + str(workout_start.month).zfill(2)) 1058 workout = Workout( 1059 sport='cycling', 1060 start=workout_start, 1061 duration=timedelta(minutes=60), 1062 distance=30, 1063 uphill=540 1064 ) 1065 user.add_workout(workout) 1066 response = user_views.last_months_stats(user, request) 1067 assert isinstance(response, Response) 1068 assert response.content_type == 'application/json' 1069 # the body is a valid json-encoded stream 1070 obj = json.loads(response.body) 1071 assert len(obj) == 13 1072 for month in obj: 1073 assert len(month.keys()) == 7 1074 assert 'id' in month.keys() 1075 assert 'name' in month.keys() 1076 assert str(user.uid) in month['url'] 1077 assert 'profile' in month['url'] 1078 assert 'year' in month['url'] 1079 assert 'month' in month['url'] 1080 if month['id'] == workout_start_id: 1081 assert month['distance'] == 30 1082 assert month['elevation'] == 540 1083 assert month['time'] == '01' 1084 assert month['workouts'] == 1 1085 else: 1086 assert month['distance'] == 0 1087 assert month['elevation'] == 0 1088 assert month['time'] == '00' 1089 assert month['workouts'] == 0 1090 1091 def test_last_weeks_stats(self, dummy_request, john): 1092 request = dummy_request 1093 user = john 1094 response = user_views.last_weeks_stats(user, request) 1095 assert isinstance(response, Response) 1096 assert response.content_type == 'application/json' 1097 # the body is a valid json-encoded stream 1098 obj = json.loads(response.body) 1099 assert len(obj) == 68 1100 for week in obj: 1101 assert len(week.keys()) == 8 1102 assert 'id' in week.keys() 1103 assert 'name' in week.keys() 1104 assert 'week' in week.keys() 1105 assert week['distance'] == 0 1106 assert week['elevation'] == 0 1107 assert week['time'] == '00' 1108 assert week['workouts'] == 0 1109 assert str(user.uid) in week['url'] 1110 assert 'profile' in week['url'] 1111 assert 'year' in week['url'] 1112 assert 'month' in week['url'] 1113 assert 'week' in week['url'] 1114 1115 # try now with a workout 1116 workout_start = datetime.now(timezone.utc) 1117 workout_start_id = str(workout_start.year) 1118 workout_start_id += '-' + str(workout_start.month).zfill(2) 1119 workout_start_id += '-' + str(workout_start.isocalendar()[1]) 1120 workout = Workout( 1121 sport='cycling', 1122 start=workout_start, 1123 duration=timedelta(minutes=60), 1124 distance=30, 1125 uphill=540 1126 ) 1127 user.add_workout(workout) 1128 response = user_views.last_weeks_stats(user, request) 1129 assert isinstance(response, Response) 1130 assert response.content_type == 'application/json' 1131 # the body is a valid json-encoded stream 1132 obj = json.loads(response.body) 1133 assert len(obj) == 68 1134 for week in obj: 1135 assert len(week.keys()) == 8 1136 assert 'id' in week.keys() 1137 assert 'name' in week.keys() 1138 assert 'week' in week.keys() 1139 assert str(user.uid) in week['url'] 1140 assert 'profile' in week['url'] 1141 assert 'year' in week['url'] 1142 assert 'month' in week['url'] 1143 assert 'week' in week['url'] 1144 if week['id'] == workout_start_id: 1145 assert week['distance'] == 30 1146 assert week['elevation'] == 540 1147 assert week['time'] == '01' 1148 assert week['workouts'] == 1 1149 else: 1150 assert week['distance'] == 0 1151 assert week['elevation'] == 0 1152 assert week['time'] == '00' 1153 assert week['workouts'] == 0
Note: See TracChangeset
for help on using the changeset viewer.