Merge branch 'release/v7.25'
This commit is contained in:
@@ -78,21 +78,27 @@ def imports_open(user,oauth_data):
|
||||
token = getattr(r,oauth_data['tokenname'])
|
||||
try:
|
||||
refreshtoken = getattr(r,oauth_data['refreshtokenname'])
|
||||
except (AttributeError,KeyError):
|
||||
except (TypeError,AttributeError,KeyError):
|
||||
refreshtoken = None
|
||||
|
||||
try:
|
||||
tokenexpirydate = getattr(r,oauth_data['expirydatename'])
|
||||
except (AttributeError,KeyError):
|
||||
except (TypeError,AttributeError,KeyError):
|
||||
tokenexpirydate = None
|
||||
|
||||
if (token == '') or (token is None):
|
||||
s = "Token doesn't exist. Need to authorize"
|
||||
raise NoTokenError("User has no token")
|
||||
else:
|
||||
tokenname = oauth_data['tokenname']
|
||||
refreshtokenname = oauth_data['refreshtokenname']
|
||||
expirydatename = oauth_data['expirydatename']
|
||||
if tokenexpirydate and timezone.now()>tokenexpirydate:
|
||||
token = imports_token_refresh(
|
||||
user,oauth_data,
|
||||
user,
|
||||
tokenname,
|
||||
refreshtokenname,
|
||||
expirydatename,
|
||||
)
|
||||
|
||||
return token
|
||||
@@ -236,8 +242,10 @@ def imports_token_refresh(user,tokenname,refreshtokenname,expirydatename):
|
||||
expirydatetime = timezone.now()+timedelta(seconds=expires_in)
|
||||
|
||||
setattr(r,tokenname,access_token)
|
||||
setattr(r,expirydatename,expirydatetime)
|
||||
setattr(r,refreshtokenname,refresh_token)
|
||||
if expirydatename is not None:
|
||||
setattr(r,expirydatename,expirydatetime)
|
||||
if refreshtokenname is not None:
|
||||
setattr(r,refreshtokenname,refresh_token)
|
||||
|
||||
r.save()
|
||||
return r.sporttrackstoken
|
||||
|
||||
@@ -15,6 +15,8 @@ oauth_data = {
|
||||
'autorization_uri': "https://www.runkeeper.com/opps/authorize",
|
||||
'content_type': 'application/x-www-form-urlencoded',
|
||||
'tokenname': 'runkeepertoken',
|
||||
'refreshtokenname': None,
|
||||
'expirydatename': None,
|
||||
'bearer_auth': True,
|
||||
'base_url': "https://runkeeper.com/apps/token",
|
||||
}
|
||||
|
||||
@@ -5,7 +5,8 @@ import re
|
||||
from rowsandall_app.settings import (
|
||||
C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET,
|
||||
STRAVA_CLIENT_ID, STRAVA_REDIRECT_URI, STRAVA_CLIENT_SECRET,
|
||||
SPORTTRACKS_CLIENT_SECRET, SPORTTRACKS_CLIENT_ID, SPORTTRACKS_REDIRECT_URI
|
||||
SPORTTRACKS_CLIENT_SECRET, SPORTTRACKS_CLIENT_ID,
|
||||
SPORTTRACKS_REDIRECT_URI
|
||||
)
|
||||
|
||||
oauth_data = {
|
||||
@@ -232,8 +233,7 @@ def workout_sporttracks_upload(user,w):
|
||||
# ready to upload. Hurray
|
||||
r = w.user
|
||||
|
||||
res = sporttracks_open(user)
|
||||
thetoken = res[0]
|
||||
thetoken = sporttracks_open(user)
|
||||
|
||||
if (checkworkoutuser(user,w)):
|
||||
data = createsporttracksworkoutdata(w)
|
||||
|
||||
@@ -959,6 +959,59 @@ class NewUserRegistrationTest(TestCase):
|
||||
status_code=302,target_status_code=200)
|
||||
|
||||
from django_mailbox.models import Mailbox,MessageAttachment,Message
|
||||
|
||||
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,
|
||||
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
|
||||
copyfile('rowers/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):
|
||||
os.remove(path)
|
||||
|
||||
@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())
|
||||
|
||||
class EmailTests(TestCase):
|
||||
def setUp(self):
|
||||
|
||||
Reference in New Issue
Block a user