diff --git a/rowers/tests/test_models.py b/rowers/tests/test_analysis.py similarity index 100% rename from rowers/tests/test_models.py rename to rowers/tests/test_analysis.py diff --git a/rowers/tests/test_user.py b/rowers/tests/test_user.py index b9fbbff5..693d6bed 100644 --- a/rowers/tests/test_user.py +++ b/rowers/tests/test_user.py @@ -69,3 +69,141 @@ class UserTestsNoRower(TestCase): response = self.c.get('/rowers/list-workouts',follow=True) self.assertEqual(response.status_code,200) +class UserPreferencesTest(TestCase): + def setUp(self): + self.u = UserFactory() + + self.r = Rower.objects.create(user=self.u, + birthdate=faker.profile()['birthdate'], + gdproptin=True, + gdproptindate=timezone.now(), + rowerplan='coach') + + self.c = Client() + self.user_workouts = WorkoutFactory.create_batch(5, user=self.r) + self.factory = RequestFactory() + self.password = faker.word() + self.u.set_password(self.password) + self.u.save() + + def tearDown(self): + for workout in self.user_workouts: + try: + os.remove(workout.csvfilename) + except (IOError, WindowsError): + pass + + def test_accountsettings(self): + login = self.c.login(username=self.u.username,password=self.password) + self.assertTrue(login) + + url = '/rowers/me/edit/' + + form_data = { + 'sex':'male', + 'birthdate':'1972-04-10', + 'weightcategory':'lwt', + 'adaptiveclass':'None', + 'getemailnotifications':True, + 'getimportantemails':True, + 'defaulttimezone':'UTC', + 'showfavoritechartnotes':False, + 'defaultlandingpage':'workout_edit_view', + 'first_name': self.u.first_name, + 'last_name': self.u.last_name, + 'email':self.u.email + } + + form = AccountRowerForm(form_data) + userform = UserForm(form_data,instance=self.u) + self.assertTrue(form.is_valid) + self.assertTrue(userform.is_valid) + + response = self.c.post(url,form_data) + self.assertEqual(response.status_code,200) + + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + + def test_exportsettings(self): + login = self.c.login(username=self.u.username,password=self.password) + self.assertTrue(login) + + url = '/rowers/me/exportsettings/' + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + form_data = { + 'stravaexportas':'Rowing', + 'polar_auto_import':True, + 'c2_auto_export':False, + 'c2_auto_import':False, + 'mapmyfitness_auto_export':False, + 'runkeeper_auto_export':False, + 'sporttracks_auto_export':False, + 'strava_auto_export':False, + 'strava_auto_import':False, + 'trainingpeaks_auto_export':False, + } + + form = RowerExportForm(form_data) + self.assertTrue(form.is_valid) + + response = self.c.post(url,form_data) + self.assertEqual(response.status_code,200) + + + def test_zones_preferences(self): + login = self.c.login(username=self.u.username,password=self.password) + self.assertTrue(login) + + form_data = { + 'max':181, + 'ut2':140, + 'ut1':150, + 'tr':160, + 'at':170, + 'an':175, + 'rest':50 + } + + form = RowerForm(form_data) + self.assertTrue(form.is_valid) + + url = '/rowers/me/preferences/' + + response = self.c.get(url) + self.assertEqual(response.status_code,200) + + response = self.c.post(url,form_data) + self.assertEqual(response.status_code,200) + + form_data = { + 'hrftp': 160, + 'ftp':230, + 'otwslack':14 + } + + response = self.c.post(url,form_data,follow=True) + self.assertEqual(response.status_code,200) + + + form_data = { + 'pw_ut2':150, + 'pw_ut1':160, + 'pw_at':170, + 'pw_tr':200, + 'pw_an':230, + 'ut3name':'Recovery', + 'ut2name':'Pwr UT2', + 'ut1name':'Pwr UT1', + 'atname':'Pwr AT', + 'trname':'Pwr TR', + 'anname':'Explode' + } + + response = self.c.post(url,form_data) + self.assertEqual(response.status_code,200) + + diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index e76cd98a..5fc0d2b7 100644 Binary files a/rowers/tests/testdata/testdata.csv.gz and b/rowers/tests/testdata/testdata.csv.gz differ diff --git a/rowers/tests/testdata/testdata.tcx b/rowers/tests/testdata/testdata.tcx index 87f186d6..89510252 100644 --- a/rowers/tests/testdata/testdata.tcx +++ b/rowers/tests/testdata/testdata.tcx @@ -2502,7 +2502,7 @@ - <Element 'Notes' at 0x161d7828> + <Element 'Notes' at 0x160cfa20> diff --git a/rowers/views.py b/rowers/views.py index bc5676cf..d6f71146 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -13056,7 +13056,6 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""): return response elif request.method == 'POST' and "ftp" in request.POST: - print request.POST powerform = RowerPowerForm(request.POST) if powerform.is_valid(): cd = powerform.cleaned_data @@ -13178,10 +13177,15 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""): elif request.method == 'POST' and "weightcategory" in request.POST: accountform = AccountRowerForm(request.POST) userform = UserForm(request.POST,instance=r.user) + if accountform.is_valid() and userform.is_valid(): # process cd = accountform.cleaned_data ucd = userform.cleaned_data + + print cd + print ucd + first_name = ucd['first_name'] last_name = ucd['last_name'] email = ucd['email'] @@ -13221,6 +13225,7 @@ def rower_edit_view(request,rowerid=0,userid=0,message=""): if resetbounce and r.emailbounced: r.emailbounced = False r.save() + form = RowerForm(instance=r) powerform = RowerPowerForm(instance=r) powerzonesform = RowerPowerZonesForm(instance=r)