Private
Public Access
1
0

almost passing tests

This commit is contained in:
Sander Roosendaal
2021-12-16 18:14:25 +01:00
parent 4ef13e7c83
commit 626caa9083
10 changed files with 31 additions and 130 deletions

View File

@@ -42,7 +42,9 @@ from pyarrow.lib import ArrowInvalid
from django.utils import timezone
from django.utils.timezone import get_current_timezone
#from django_mailbox.models import Message,Mailbox,MessageAttachment
from django.urls import reverse
import requests
from django.core.exceptions import ValidationError
from time import strftime
@@ -2102,21 +2104,26 @@ def new_workout_from_file(r, f2,
# Save zip files to email box for further processing
if len(fileformat) == 3 and fileformat[0] == 'zip': # pragma: no cover
uploadoptions['fromuploadform'] = True
bodyyaml = yaml.safe_dump(uploadoptions,default_flow_style=False)
f_to_be_deleted = f2
uploadoptions['secret'] = settings.UPLOAD_SERVICE_SECRET
uploadoptions['user'] = r.user.id
uploadoptions['title'] = title
try:
zip_file = zipfile.ZipFile(f2)
for id,filename in enumerate(zip_file.namelist()):
datafile = zip_file.extract(filename, path='media/')
if id>0:
uploadoptions['title'] = title+' ('+str(id+1)+')'
else:
uploadoptions['title'] = title
uploadoptions['file'] = datafile
url = settings.UPLOAD_SERVICE_URL
response = requests.post(url,uploadoptions)
except BadZipFile: # pragma: no cover
pass
workoutsbox = Mailbox.objects.filter(name='workouts')[0]
msg = Message(mailbox=workoutsbox,
from_header=r.user.email,
subject = title,body=bodyyaml)
msg.save()
f3 = 'media/mailbox_attachments/'+f2[6:]
copyfile(f2,f3)
f3 = f3[6:]
a = MessageAttachment(message=msg,document=f3)
a.save()
message = "Zip file was stored for offline processing"
return -1, message, f2

View File

@@ -12,11 +12,6 @@ from rowers.tasks import (
handle_sendemail_unrecognized,
handle_sendemail_unrecognizedowner
)
#from django_mailbox.models import Message, MessageAttachment,Mailbox
#workoutmailbox = Mailbox.objects.get(name='workouts')
#failedmailbox = Mailbox.objects.get(name='Failed')
from rowers.models import User, Rower, RowerForm

View File

@@ -195,7 +195,6 @@ def get_polar_workouts(user):
if response.status_code == 201:
workoutsbox = Mailbox.objects.filter(name='workouts')[0]
uploadoptions = {
'makeprivate':False,
}
@@ -242,8 +241,6 @@ def get_polar_workouts(user):
if response.status_code == 200:
exercise_dict['filename'] = filename
else:
print(response.status_code)
else:
exercise_dict['filename'] = ''

View File

@@ -37,10 +37,6 @@ class OwnApi(TestCase):
gdproptindate=timezone.now(),
rowerplan='coach',subscription_id=1)
workoutsbox = Mailbox.objects.create(name='workouts')
workoutsbox.save()
failbox = Mailbox.objects.create(name='Failed')
failbox.save()
self.c = Client()
self.user_workouts = WorkoutFactory.create_batch(5, user=self.r)

View File

@@ -69,10 +69,6 @@ class BraintreeUnits(TestCase):
gdproptindate=timezone.now(),
rowerplan='coach',subscription_id=1)
workoutsbox = Mailbox.objects.create(name='workouts')
workoutsbox.save()
failbox = Mailbox.objects.create(name='Failed')
failbox.save()
self.pp = PaidPlan.objects.create(price=0,paymentprocessor='braintree')
self.p2 = PaidPlan.objects.create(price=25,paymentprocessor='braintree')

View File

@@ -1258,62 +1258,3 @@ class TPObjects(DjangoTestCase):
self.assertEqual(response.url, '/rowers/workout/'+encoded1+'/edit/')
self.assertEqual(response.status_code, 302)
#@pytest.mark.django_db
@override_settings(TESTING=True)
class AutoExportTests(TestCase):
def setUp(self):
redis_connection.publish('tasks','KILL')
u = User.objects.create_user('john',
'sander@ds.ds',
'koeinsloot')
r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now()
)
r.c2_auto_export = True
r.sporttracks_auto_export = True
r.mapmyfitness_auto_export = True
r.trainingpeaks_auto_export = True
r.save()
nu = datetime.datetime.now()
workoutsbox = Mailbox.objects.create(name='workouts')
workoutsbox.save()
failbox = Mailbox.objects.create(name='Failed')
failbox.save()
filename = 'testdata.csv'
m = Message(mailbox=workoutsbox,
from_header = u.email,
subject = filename,
body="""
---
workouttype: water
boattype: 2x
...
""")
m.save()
a2 = 'media/mailbox_attachments/'+filename
copy('rowers/tests/testdata/'+filename,a2)
a = MessageAttachment(message=m,document=a2[6:])
a.save()
def tearDown(self):
for filename in os.listdir('media/mailbox_attachments'):
path = os.path.join('media/mailbox_attachments/',filename)
if not os.path.isdir(path):
try:
os.remove(path)
except (FileNotFoundError,OSError):
pass
@patch('rowers.tpstuff.requests.post', side_effect=mocked_requests)
@patch('rowers.tpstuff.requests.get', side_effect=mocked_requests)
def test_emailprocessing(self, mock_post, mock_get):
out = StringIO()
call_command('processemail', stdout=out, testing=True)
self.assertIn('Successfully processed email attachments',out.getvalue())

View File

@@ -35,10 +35,6 @@ class OtherUnitTests(TestCase):
defaulttimezone='US/Pacific',
rowerplan='coach')
workoutsbox = Mailbox.objects.create(name='workouts')
workoutsbox.save()
failbox = Mailbox.objects.create(name='Failed')
failbox.save()
# Test get_dates_timeperiod
def test_get_dates_timeperiod(self):
@@ -99,20 +95,6 @@ class OtherUnitTests(TestCase):
self.assertTrue('US/Pacific' in str(startdate.tzinfo))
@patch('rowers.tasks.requests.get',side_effect=mocked_requests)
def test_strava_asyncworkout(self,mock_get):
with open('rowers/tests/testdata/stravaworkoutlist.txt','r') as f:
s = f.read()
jsondata = json.loads(s)
alldata = {}
for item in jsondata:
alldata[item['id']] = item
theid = jsondata[0]['id']
workoutid = stravastuff.create_async_workout(alldata,self.r.user,theid)
self.assertEqual(workoutid,1)
def test_summaryfromsplitdata(self):
with open('rowers/tests/testdata/c2splits.json','r') as f:

View File

@@ -87,7 +87,6 @@
97,114,workout_undo_smoothenpace_view,unsmoothen pace,TRUE,403,pro,302,302,pro,403,403,coach,302,403,FALSE,FALSE,TRUE,TRUE,TRUE,
98,115,workout_c2import_view,list workouts to be imported (test stops at notokenerror),TRUE,302,basic,302,302,basic,403,403,coach,302,403,FALSE,TRUE,FALSE,TRUE,TRUE,
99,120,workout_stravaimport_view,list workouts to be imported (test stops at notokenerror),TRUE,302,basic,302,302,basic,403,403,coach,302,403,FALSE,TRUE,FALSE,TRUE,TRUE,
100,122,workout_getc2workout_all,gets all C2 workouts (now redirects due to NoTokenError,TRUE,302,basic,302,302,FALSE,302,302,FALSE,302,302,FALSE,FALSE,FALSE,TRUE,TRUE,
101,124,workout_getimportview,imports a workout from third party,TRUE,200,basic,200,302,FALSE,200,302,FALSE,200,302,FALSE,FALSE,FALSE,FALSE,FALSE,
102,125,workout_getstravaworkout_all,gets all C2 workouts (now redirects due to NoTokenError,TRUE,302,basic,302,302,FALSE,302,302,FALSE,302,302,FALSE,FALSE,FALSE,TRUE,TRUE,
103,126,workout_getstravaworkout_next,gets all strava workouts,TRUE,302,basic,302,302,FALSE,200,302,FALSE,200,302,FALSE,FALSE,FALSE,FALSE,FALSE,
1 id view function anonymous anonymous_response own own_response own_nonperm member member_response member_nonperm coachee coachee_response coachee_nonperm is_staff userid workoutid dotest realtest kwargs
87 97 114 workout_undo_smoothenpace_view unsmoothen pace TRUE 403 pro 302 302 pro 403 403 coach 302 403 FALSE FALSE TRUE TRUE TRUE
88 98 115 workout_c2import_view list workouts to be imported (test stops at notokenerror) TRUE 302 basic 302 302 basic 403 403 coach 302 403 FALSE TRUE FALSE TRUE TRUE
89 99 120 workout_stravaimport_view list workouts to be imported (test stops at notokenerror) TRUE 302 basic 302 302 basic 403 403 coach 302 403 FALSE TRUE FALSE TRUE TRUE
100 122 workout_getc2workout_all gets all C2 workouts (now redirects due to NoTokenError TRUE 302 basic 302 302 FALSE 302 302 FALSE 302 302 FALSE FALSE FALSE TRUE TRUE
90 101 124 workout_getimportview imports a workout from third party TRUE 200 basic 200 302 FALSE 200 302 FALSE 200 302 FALSE FALSE FALSE FALSE FALSE
91 102 125 workout_getstravaworkout_all gets all C2 workouts (now redirects due to NoTokenError TRUE 302 basic 302 302 FALSE 302 302 FALSE 302 302 FALSE FALSE FALSE TRUE TRUE
92 103 126 workout_getstravaworkout_next gets all strava workouts TRUE 302 basic 302 302 FALSE 200 302 FALSE 200 302 FALSE FALSE FALSE FALSE FALSE

View File

@@ -271,7 +271,6 @@ from rq import Queue,cancel_job
from django.utils.crypto import get_random_string
from django.core.cache import cache
#from django_mailbox.models import Message,Mailbox,MessageAttachment
from rules.contrib.views import permission_required, objectgetter

View File

@@ -5435,26 +5435,15 @@ def workout_upload_view(request,
title = t,
notes=notes,
)
else: # pragma: no cover
workoutsbox = Mailbox.objects.filter(name='workouts')[0]
uploadoptions['fromuploadform'] = True
bodyyaml = yaml.safe_dump(
uploadoptions,
default_flow_style=False
)
msg = Message(mailbox=workoutsbox,
from_header=r.user.email,
subject = t,body=bodyyaml)
msg.save()
f3 = 'media/mailbox_attachments/'+f2[6:]
copyfile(f2,f3)
f3 = f3[6:]
a = MessageAttachment(message=msg,document=f3)
try:
a.save()
except DataError:
pass
os.remove(f2)
else:
uploadoptions['secret'] = settings.UPLOAD_SERVICE_SECRET
uploadoptions['user'] = r.user.id
uploadoptions['title'] = t
uploadoptions['file'] = f2
url = settings.UPLOAD_SERVICE_URL
response = requests.post(url,uploadoptions)
messages.info(
request,