making test for box chart
This commit is contained in:
@@ -15,7 +15,8 @@ from rowers.views import checkworkoutuser,c2_open, multi_compare_view
|
||||
|
||||
from rowers.forms import (
|
||||
DocumentsForm,CNsummaryForm,RegistrationFormUniqueEmail,
|
||||
ChartParamChoiceForm,WorkoutMultipleCompareForm)
|
||||
ChartParamChoiceForm,WorkoutMultipleCompareForm,
|
||||
BoxPlotChoiceForm)
|
||||
import rowers.plots as plots
|
||||
import rowers.interactiveplots as iplots
|
||||
import datetime
|
||||
@@ -47,6 +48,9 @@ from rowers.views import (
|
||||
from rowers.dataprep import delete_strokedata
|
||||
from django.contrib.sessions.middleware import SessionMiddleware
|
||||
|
||||
from django.conf import settings
|
||||
from importlib import import_module
|
||||
|
||||
from redis import StrictRedis
|
||||
redis_connection = StrictRedis()
|
||||
|
||||
@@ -171,6 +175,126 @@ class WorkoutCompareTest(TestCase):
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
|
||||
class BoxPlotTest(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()
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
def test_workouts_boxplot(self, mocked_sqlalchemy,
|
||||
mocked_getsmallrowdata_db):
|
||||
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = '/rowers/user-boxplot-select/'
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
@patch('rowers.dataprep.read_cols_df_sql', side_effect = mocked_read_df_cols_sql_multi)
|
||||
def test_workouts_boxplot_submit(self, mocked_sqlalchemy,
|
||||
mocked_getsmallrowdata_db,
|
||||
mocked_df):
|
||||
|
||||
login = self.c.login(username=self.u.username,password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
form_data = {
|
||||
'workouts':['1','2','3'],
|
||||
'includereststrokes':False,
|
||||
'spmmax':55.0,
|
||||
'spmmin':15.0,
|
||||
'workmax':1500.0,
|
||||
'workmin':0.0,
|
||||
'yparam':'spm',
|
||||
}
|
||||
|
||||
form = WorkoutMultipleCompareForm(form_data)
|
||||
chartform = BoxPlotChoiceForm(form_data)
|
||||
|
||||
self.assertTrue(form.is_valid)
|
||||
self.assertTrue(chartform.is_valid)
|
||||
|
||||
response = self.c.get('/rowers/user-boxplot/',follow=True)
|
||||
self.assertEqual(response.status_code,200)
|
||||
self.assertRedirects(response,
|
||||
expected_url='/rowers/user-boxplot-select/user/1/',
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
response = self.c.post('/rowers/user-boxplot/',form_data)
|
||||
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
options = {}
|
||||
options['spmmin'] = 15
|
||||
options['spmmax'] = 55
|
||||
options['workmin'] = 0
|
||||
options['workmax'] = 5500
|
||||
options['ids'] = [1,2,3]
|
||||
options['userid'] = 1
|
||||
options['plotfield'] = 'spm'
|
||||
options['rankingonly'] = False
|
||||
|
||||
self.c.session['options'] = options
|
||||
self.c.session.save()
|
||||
|
||||
sessionoptions = self.c.session['options']
|
||||
self.assertEqual(sessionoptions['ids'],[1,2,3])
|
||||
|
||||
response = self.c.get('/rowers/user-boxplot-data/')
|
||||
|
||||
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
|
||||
class ListWorkoutTest(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()
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
def list_workouts(self, mocked_sqlalchemy,
|
||||
mocked_getsmallrowdata_db):
|
||||
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = '/rowers/list-workouts/'
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
|
||||
class PlannedSessionTests(TestCase):
|
||||
def setUp(self):
|
||||
self.u = UserFactory()
|
||||
|
||||
Reference in New Issue
Block a user