first pass straightforward testing workviews
This commit is contained in:
@@ -2,6 +2,28 @@ from statements import *
|
||||
|
||||
nu = datetime.datetime.now()
|
||||
|
||||
from django.core.files import File
|
||||
from django.utils.six import BytesIO
|
||||
|
||||
from PIL import Image
|
||||
from io import StringIO
|
||||
|
||||
|
||||
def create_image(storage, filename, size=(100, 100), image_mode='RGB', image_format='PNG'):
|
||||
"""
|
||||
Generate a test image, returning the filename that it was saved as.
|
||||
|
||||
If ``storage`` is ``None``, the BytesIO containing the image data
|
||||
will be passed instead.
|
||||
"""
|
||||
data = BytesIO()
|
||||
Image.new(image_mode, size).save(data, image_format)
|
||||
data.seek(0)
|
||||
if not storage:
|
||||
return data
|
||||
image_file = ContentFile(data.read())
|
||||
return storage.save(filename, image_file)
|
||||
|
||||
@override_settings(TESTING=True)
|
||||
class WorkoutViewTest(TestCase):
|
||||
def setUp(self):
|
||||
@@ -69,6 +91,18 @@ class WorkoutViewTest(TestCase):
|
||||
workouttype = 'rower',
|
||||
)
|
||||
|
||||
result = get_random_file(filename='rowers/tests/testdata/erg2.csv')
|
||||
|
||||
self.werg2copy = WorkoutFactory(user=self.r,
|
||||
csvfilename=result['filename'],
|
||||
starttime=result['starttime'],
|
||||
startdatetime=result['startdatetime'],
|
||||
duration=result['duration'],
|
||||
distance=result['totaldist'],
|
||||
workouttype = 'rower',
|
||||
)
|
||||
|
||||
|
||||
result = get_random_file(filename='rowers/tests/testdata/erg3.csv')
|
||||
|
||||
self.werg3 = WorkoutFactory(user=self.r,
|
||||
@@ -152,7 +186,7 @@ class WorkoutViewTest(TestCase):
|
||||
|
||||
expected_url = reverse(self.r.defaultlandingpage,
|
||||
kwargs = {
|
||||
'id':11
|
||||
'id':12
|
||||
})
|
||||
|
||||
self.assertRedirects(response,
|
||||
@@ -390,6 +424,10 @@ class WorkoutViewTest(TestCase):
|
||||
|
||||
response = self.c.post(url,form_data,follow=True)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
url = reverse('workout_unsubscribe_view',kwargs={'id':self.wwater.id})
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
@@ -402,3 +440,165 @@ class WorkoutViewTest(TestCase):
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
def notworking_test_workout_image(self, mocked_sqlalchemy,
|
||||
mocked_getsmallrowdata_db):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('workout_uploadimage_view',kwargs={'id':self.werg1.id})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
with open('rowers/tests/testdata/lofoten.jpg','rb') as screenshot_file:
|
||||
file_data = {'file':screenshot_file}
|
||||
form_data = {
|
||||
'file':screenshot_file,
|
||||
}
|
||||
|
||||
#form = ImageForm(form_data, file_data)
|
||||
#if not form.is_valid():
|
||||
# print form.errors
|
||||
#self.assertTrue(form.is_valid())
|
||||
|
||||
response = self.c.post(url,form_data,format='multipart',follow=True)
|
||||
|
||||
expected_url = reverse(self.r.defaultlandingpage,kwargs={'id':self.werg1.id})
|
||||
|
||||
self.assertRedirects(response,
|
||||
expected_url=expected_url,
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
@patch('rowers.dataprep.getrowdata_db',side_effect=mocked_getrowdata_db)
|
||||
def test_workout_split(self, mocked_sqlalchemy, mocked_getsmallrowdata_db,
|
||||
mocked_getrowdata_db):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('workout_split_view',kwargs={'id':self.werg1.id})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
form_data = {
|
||||
'splittime': '2:00',
|
||||
'splitmode': ['keep original','keep first','keep second']
|
||||
}
|
||||
|
||||
form = WorkoutSplitForm(form_data)
|
||||
|
||||
self.assertTrue(form.is_valid())
|
||||
|
||||
response = self.c.post(url, form_data,follow=True)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getrowdata_db',side_effect=mocked_getrowdata_db)
|
||||
@patch('rowers.dataprep.getsmallrowdata_db',side_effect=mocked_getsmallrowdata_forfusion)
|
||||
def test_workout_fusion(self, mocked_sqlalchemy, mocked_getrowdata_db,
|
||||
mocked_getsmallrowdata_db):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('workout_fusion_view',kwargs={'id1':self.werg2.id,
|
||||
'id2':self.werg2copy.id})
|
||||
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
form_data = {
|
||||
'posneg':'pos',
|
||||
'offset': datetime.timedelta(seconds=0),
|
||||
'columns': ['power','hr'
|
||||
]
|
||||
}
|
||||
|
||||
form = FusionMetricChoiceForm(form_data,instance=self.werg2copy)
|
||||
|
||||
self.assertTrue(form.is_valid())
|
||||
|
||||
response = self.c.post(url,form_data,follow=True)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
def test_editsummaryview(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
|
||||
url = reverse('workout_summary_edit_view',kwargs={'id':self.wwater.id})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
form_data = {
|
||||
'intervalstring':'4x2min/1min',
|
||||
}
|
||||
|
||||
form = SummaryStringForm(form_data)
|
||||
self.assertTrue(form.is_valid())
|
||||
|
||||
response = self.c.post(url,form_data)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
form_data = {
|
||||
'powerorpace':'power',
|
||||
'value_pace':'2:23',
|
||||
'value_power':'200',
|
||||
'value_work':'400',
|
||||
'savepowerpaceform':True,
|
||||
}
|
||||
|
||||
response = self.c.post(url,form_data)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
form_data = {
|
||||
'savestringform':'4x2min/1min',
|
||||
}
|
||||
|
||||
response = self.c.post(url,form_data)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
form_data = {
|
||||
'selector':'power',
|
||||
'power': 200,
|
||||
'pace': '2:30',
|
||||
'work': 400,
|
||||
}
|
||||
|
||||
form = PowerIntervalUpdateForm(form_data)
|
||||
self.assertTrue(form.is_valid())
|
||||
|
||||
response = self.c.post(url,form_data)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
|
||||
@patch('rowers.dataprep.create_engine')
|
||||
@patch('rowers.dataprep.getsmallrowdata_db')
|
||||
def test_workout_delete(self, mocked_sqlalchemy, mocked_getsmallrowdata_db):
|
||||
login = self.c.login(username=self.u.username, password=self.password)
|
||||
self.assertTrue(login)
|
||||
|
||||
url = reverse('workout_delete',kwargs={'pk':self.wwater.id})
|
||||
|
||||
response = self.c.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
|
||||
post_data = {}
|
||||
|
||||
response = self.c.post(url,follow=True)
|
||||
|
||||
expected_url = reverse('workouts_view')
|
||||
|
||||
self.assertRedirects(response,
|
||||
expected_url=expected_url,
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user