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)