Private
Public Access
1
0

working NK sync tests

This commit is contained in:
Sander Roosendaal
2021-04-16 17:13:45 +02:00
parent 2ee31d6fc3
commit 8f81c5fc92
7 changed files with 265 additions and 181 deletions

View File

@@ -165,6 +165,70 @@ def mocked_sqlalchemy(*args, **kwargs):
return MockEngine()
from rowers import courses
def mocked_sqlalchemy_courses(*args, **kwargs):
# return object with method
cs = courses.kmltocourse('rowers/tests/testdata/thyro.kml')
course = cs[0]
cname = course['name']
cnotes = course['description']
polygons = course['polygons']
lijst = []
i=0
for polygon in polygons:
lijst.append((i,polygon['name']))
i = i+1
puntenlijst = []
i = 0
for p in polygons[0]['points']:
puntenlijst.append((i,p['latitude'],p['longitude']))
i = i+1
class MockEngine:
def connect(self):
return MockConnection()
def dispose(self):
return True
def raw_connection(self):
return True
class QueryResultPolygons:
def fetchall(self):
return lijst
class QueryResultPoints:
def fetchall(self):
return puntenlijst
class MockConnection:
def begin(self):
return True
def execute(self,query):
if 'latitude' in query:
return QueryResultPoints()
if 'polygon' in query:
return QueryResultPolygons()
return True
def close(self):
return True
def __exit__(self, *args, **kwargs):
return True
def __enter__(self, *args, **kwargs):
return True
return MockEngine()
#@pytest.mark.django_db
class DjangoTestCase(TestCase): #, MockTestCase):
def _pre_setup(self):
@@ -801,6 +865,7 @@ def mocked_requests(*args, **kwargs):
nkstrokesregex = '.*?nkrowlink\.com\/api\/v1\/sessions\/strokes'
nkstrokestester = re.compile(nkstrokesregex)
stravaathleteregex = '.*?strava\.com\/api\/v3\/athlete$'
stravaathletetester = re.compile(stravaathleteregex)
@@ -967,7 +1032,6 @@ def mocked_requests(*args, **kwargs):
if nktester.match(args[0]):
if 'token' in args[0]:
json_data = {
'access_token': 'TA3n1vrNjuQJWw0TdCDHnjSmrjIPULhTlejMIWqq',
@@ -977,6 +1041,7 @@ def mocked_requests(*args, **kwargs):
return MockResponse(json_data,200)
if nkstrokestester.match(args[0]):
params = kwargs.pop('params',{})
if 'sessionIds' in params and params['sessionIds'] == '404':
return MockResponse(nkimpellerstrokedata, 200)
return MockResponse(nkstrokedata,200)

View File

@@ -10,6 +10,8 @@ import pandas as pd
nu = datetime.datetime.now()
from rowers import tasks
import rowers.courses as courses
class fakejob:
def __init__(self):
@@ -53,6 +55,15 @@ class AsyncTaskTests(TestCase):
workouttype = 'water',
)
cs = courses.kmltocourse('rowers/tests/testdata/thyro.kml')
course = cs[0]
cname = course['name']
cnotes = course['description']
polygons = course['polygons']
self.ThyroBaantje = courses.createcourse(self.r,cname,polygons,notes=cnotes)
self.ThyroBaantje.save()
def tearDown(self):
for workout in self.user_workouts:
try:
@@ -68,6 +79,13 @@ class AsyncTaskTests(TestCase):
except:
pass
def test_polygons(self):
polygons = GeoPolygon.objects.all()
polygon = polygons[0]
obj = (polygon.id,polygon.name)
path = tasks.polygon_to_path(obj)
self.assertEqual(len(path),4)
def test_summaryfromsplitdata(self):
splitdata = [
{

View File

@@ -432,24 +432,20 @@ class NKObjects(DjangoTestCase):
self.assertEqual(response.status_code,200)
@patch('rowers.nkimportutils.requests.session', side_effect=mocked_session)
@patch('rowers.tasks.requests.get', side_effects=mocked_requests)
def test_handle_nk_get_workouts(self, mocked_session, mock_get):
@patch('rowers.tasks.requests.get', side_effect=mocked_requests)
def test_handle_nk_get_workouts(self, mock_get):
with open('rowers/tests/testdata/nk_list.json','r') as f:
data = json.load(f)
with open('rowers/tests/testdata/nk_strokes.json','r') as f:
strokeData = json.load(f)
alldata = {}
for item in data:
alldata[item['id']] = item
result = rowers.nkstuff.rower_nk_token_refresh(self.u)
res = tasks.handle_nk_async_workout(
alldata,self.r.user.id,self.r.nktoken,469,0,'UTC'
)
self.assertTrue(res>0)
@patch('rowers.nkstuff.requests.get', side_effect=mocked_requests)
@@ -570,21 +566,6 @@ class StravaObjects(DjangoTestCase):
)
# @patch('rowers.stravastuff.requests.post', side_effect=mocked_requests)
# @patch('rowers.views.stravastuff.handle_stravaexport')
#@patch('rowers.dataprep.getsmallrowdata_db')
#def test_strava_upload(self, mock_post,MockStravalibClient,
# mocked_getsmallrowdata_db):
# def test_strava_upload(self,mock_post, mocked_stravaexport):
# response = self.c.get('/rowers/workout/1/stravauploadw/')
# self.assertRedirects(response,
# expected_url = '/rowers/workout/1/edit/',
# status_code=302,target_status_code=200)
# self.assertEqual(response.url, '/rowers/workout/1/edit/')
# self.assertEqual(response.status_code, 302)
@patch('rowers.stravastuff.requests.get', side_effect=mocked_requests)
@patch('rowers.stravastuff.requests.post', side_effect=mocked_requests)
def test_strava_list(self, mock_get, mockpost):

View File

@@ -729,6 +729,20 @@ class ChallengesTest(TestCase):
self.assertEqual(response.status_code, 200)
@patch('rowers.tasks.create_engine', side_effect=mocked_sqlalchemy_courses)
def notest_virtualevent_check_view(self,mocked_sqlalchemy_courses):
res = tasks.handle_check_race_course(
self.wthyro.csvfilename,
self.wthyro.id,
self.ThyroBaantje.id,
self.result.id,
self.wthyro.user.user.email,
self.wthyro.user.user.first_name,
mode='coursetest',
)
self.assertEqual(res,1)
# add boat