From 5becabb216d9ad420084cb09102a937edad9c524 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 10 Feb 2019 15:54:09 +0100 Subject: [PATCH] mocking myqueue in most tests --- rowers/tests/mocks.py | 11 +++++++++++ rowers/tests/test_analysis.py | 4 +++- rowers/tests/test_aworkouts.py | 9 +++++++-- rowers/tests/test_cpchart.py | 3 ++- rowers/tests/test_emails.py | 3 +++ rowers/tests/test_imports.py | 8 ++++++++ rowers/tests/test_newusers.py | 1 + rowers/tests/test_plans.py | 6 ++++++ rowers/tests/test_team.py | 4 +++- rowers/tests/test_uploads.py | 1 + rowers/tests/test_urls.py | 9 +++++---- rowers/tests/testdata/testdata.csv.gz | Bin 12525 -> 12525 bytes rowers/utils.py | 11 +++++++++++ rowers/views/statements.py | 15 +++++++++++++-- rowsandall_app/settings.py | 1 + 15 files changed, 75 insertions(+), 11 deletions(-) diff --git a/rowers/tests/mocks.py b/rowers/tests/mocks.py index 33401cba..142be407 100644 --- a/rowers/tests/mocks.py +++ b/rowers/tests/mocks.py @@ -49,6 +49,17 @@ redis_connection = StrictRedis() from django_mailbox.models import Mailbox,MessageAttachment,Message +def mocked_myqueue(*args, **kwargs): + class Job: + def __init__(self,*args, **kwargs): + self.result = 1 + self.id = 1 + + def revoke(self): + return 1 + + return Job() + def mocked_sqlalchemy(*args, **kwargs): # return object with method diff --git a/rowers/tests/test_analysis.py b/rowers/tests/test_analysis.py index befeb69a..1f976d11 100644 --- a/rowers/tests/test_analysis.py +++ b/rowers/tests/test_analysis.py @@ -193,8 +193,10 @@ class ListWorkoutTest(TestCase): @patch('rowers.dataprep.create_engine') @patch('rowers.dataprep.getsmallrowdata_db') + @patch('rowers.dataprep.myqueue') def test_list_workouts(self, mocked_sqlalchemy, - mocked_getsmallrowdata_db): + mocked_getsmallrowdata_db, + mocked_myqueue): login = self.c.login(username=self.u.username, password=self.password) self.assertTrue(login) diff --git a/rowers/tests/test_aworkouts.py b/rowers/tests/test_aworkouts.py index e8bbe294..6d7db3cb 100644 --- a/rowers/tests/test_aworkouts.py +++ b/rowers/tests/test_aworkouts.py @@ -2,6 +2,7 @@ from statements import * nu = datetime.datetime.now() +@override_settings(TESTING=True) class WorkoutViewTest(TestCase): def setUp(self): self.u = UserFactory() @@ -68,7 +69,9 @@ class WorkoutViewTest(TestCase): @patch('rowers.dataprep.create_engine') @patch('rowers.dataprep.getsmallrowdata_db') - def test_forcecurve(self, mocked_sqlalchemy, mocked_getsmallrowdata_db): + @patch('rowers.middleware.myqueue') + def test_forcecurve(self, mocked_sqlalchemy, mocked_getsmallrowdata_db, + mocked_myqueue): login = self.c.login(username=self.u.username, password=self.password) self.assertTrue(login) @@ -142,7 +145,9 @@ class WorkoutViewTest(TestCase): @patch('rowers.dataprep.create_engine') @patch('rowers.dataprep.getsmallrowdata_db') - def test_compares(self, mocked_sqlalchemy, mocked_getsmallrowdata_db): + @patch('rowers.middleware.myqueue') + def test_compares(self, mocked_sqlalchemy, mocked_getsmallrowdata_db, + mocked_myqueue): login = self.c.login(username=self.u.username, password=self.password) self.assertTrue(login) diff --git a/rowers/tests/test_cpchart.py b/rowers/tests/test_cpchart.py index e9785dda..251a0ab0 100644 --- a/rowers/tests/test_cpchart.py +++ b/rowers/tests/test_cpchart.py @@ -10,7 +10,7 @@ from rowers.utils import calculate_age import rowers.dataprep as dataprep - +@override_settings(TESTING=True) class OTWCPChartTest(TestCase): def setUp(self): self.u = UserFactory() @@ -102,6 +102,7 @@ class OTWCPChartTest(TestCase): self.assertEqual(response.status_code, 200) +@override_settings(TESTING=True) class CPChartTest(TestCase): def setUp(self): self.u = UserFactory() diff --git a/rowers/tests/test_emails.py b/rowers/tests/test_emails.py index 145cc272..31530e46 100644 --- a/rowers/tests/test_emails.py +++ b/rowers/tests/test_emails.py @@ -1,6 +1,7 @@ #from __future__ import print_function from statements import * +@override_settings(TESTING=True) class EmailUpload(TestCase): def setUp(self): redis_connection.publish('tasks','KILL') @@ -64,6 +65,7 @@ workout run #@pytest.mark.django_db +@override_settings(TESTING=True) class EmailTests(TestCase): def setUp(self): redis_connection.publish('tasks','KILL') @@ -146,6 +148,7 @@ race 1 +@override_settings(TESTING=True) class EmailAdminUpload(TestCase): def setUp(self): redis_connection.publish('tasks','KILL') diff --git a/rowers/tests/test_imports.py b/rowers/tests/test_imports.py index 9c7b0cb5..d8e9db5b 100644 --- a/rowers/tests/test_imports.py +++ b/rowers/tests/test_imports.py @@ -5,6 +5,7 @@ nu = datetime.datetime.now() import rowers @pytest.mark.django_db +@override_settings(TESTING=True) class C2Objects(DjangoTestCase): def setUp(self): self.c = Client() @@ -139,6 +140,7 @@ class C2Objects(DjangoTestCase): res = add_workout_from_strokedata(self.u,1,data,strokedata,source='c2') +@override_settings(TESTING=True) class C2ObjectsTokenExpired(DjangoTestCase): def setUp(self): self.c = Client() @@ -217,6 +219,7 @@ class C2ObjectsTokenExpired(DjangoTestCase): #@pytest.mark.django_db +@override_settings(TESTING=True) class StravaObjects(DjangoTestCase): def setUp(self): self.c = Client() @@ -322,6 +325,7 @@ class StravaObjects(DjangoTestCase): #@pytest.mark.django_db +@override_settings(TESTING=True) class STObjects(DjangoTestCase): def setUp(self): self.c = Client() @@ -453,6 +457,7 @@ class STObjects(DjangoTestCase): res = add_workout_from_data(self.u,1,data,data) #@pytest.mark.django_db +@override_settings(TESTING=True) class RunKeeperObjects(DjangoTestCase): def setUp(self): self.c = Client() @@ -545,6 +550,7 @@ class RunKeeperObjects(DjangoTestCase): @pytest.mark.django_db +@override_settings(TESTING=True) class UAObjects(DjangoTestCase): def setUp(self): self.c = Client() @@ -647,6 +653,7 @@ class UAObjects(DjangoTestCase): #@pytest.mark.django_db +@override_settings(TESTING=True) class TPObjects(DjangoTestCase): def setUp(self): self.c = Client() @@ -731,6 +738,7 @@ class TPObjects(DjangoTestCase): #@pytest.mark.django_db +@override_settings(TESTING=True) class AutoExportTests(TestCase): def setUp(self): redis_connection.publish('tasks','KILL') diff --git a/rowers/tests/test_newusers.py b/rowers/tests/test_newusers.py index fd416012..2a7ecd72 100644 --- a/rowers/tests/test_newusers.py +++ b/rowers/tests/test_newusers.py @@ -4,6 +4,7 @@ from statements import * nu = datetime.datetime.now() #@pytest.mark.django_db +@override_settings(TESTING=True) class NewUserRegistrationTest(TestCase): def setUp(self): self.c = Client() diff --git a/rowers/tests/test_plans.py b/rowers/tests/test_plans.py index db832a4f..0f4fe9c6 100644 --- a/rowers/tests/test_plans.py +++ b/rowers/tests/test_plans.py @@ -5,6 +5,7 @@ from rowers.utils import allmonths,allsundays import rowers.plannedsessions as plannedsessions +@override_settings(TESTING=True) class TrainingPlanTest(TestCase): def setUp(self): self.u = UserFactory() @@ -162,6 +163,7 @@ class TrainingPlanTest(TestCase): +@override_settings(TESTING=True) class SessionLinkTest(TestCase): def setUp(self): self.u = UserFactory() @@ -327,6 +329,7 @@ class SessionLinkTest(TestCase): # 2019-01-12, HM +@override_settings(TESTING=True) class SessionCompleteTest(TestCase): def setUp(self): self.u = UserFactory() @@ -562,6 +565,7 @@ class SessionCompleteTest(TestCase): self.assertEqual(response.status_code,200) +@override_settings(TESTING=True) class ChallengeCompleteTest(TestCase): def setUp(self): self.u = UserFactory() @@ -785,6 +789,7 @@ class ChallengeCompleteTest(TestCase): response = self.c.get(url) self.assertEqual(response.status_code,200) +@override_settings(TESTING=True) class MandatoryTestCompleteTest(TestCase): def setUp(self): self.u = UserFactory() @@ -996,6 +1001,7 @@ class MandatoryTestCompleteTest(TestCase): response = self.c.get(url,follow=True) self.assertEqual(response.status_code,200) +@override_settings(TESTING=True) class PlannedSessionsView(TestCase): def setUp(self): # user diff --git a/rowers/tests/test_team.py b/rowers/tests/test_team.py index 93667f8a..9da7098e 100644 --- a/rowers/tests/test_team.py +++ b/rowers/tests/test_team.py @@ -13,6 +13,8 @@ class TeamFactory(factory.DjangoModelFactory): private = 'open' viewing = 'allmembers' + +@override_settings(TESTING=True) class TeamTest(TestCase): def setUp(self): redis_connection.publish('tasks','KILL') @@ -235,7 +237,7 @@ class TeamTest(TestCase): response = self.c.post(url, form_data) self.assertEqual(response.status_code, 200) - +@override_settings(TESTING=True) class TeamTestLowLevel(TestCase): def setUp(self): redis_connection.publish('tasks','KILL') diff --git a/rowers/tests/test_uploads.py b/rowers/tests/test_uploads.py index 30a06913..3a796244 100644 --- a/rowers/tests/test_uploads.py +++ b/rowers/tests/test_uploads.py @@ -5,6 +5,7 @@ nu = datetime.datetime.now() from rowers.views import add_defaultfavorites #@pytest.mark.django_db +@override_settings(TESTING=True) class ViewTest(TestCase): def setUp(self): redis_connection.publish('tasks','KILL') diff --git a/rowers/tests/test_urls.py b/rowers/tests/test_urls.py index 63f740de..90ae81c1 100644 --- a/rowers/tests/test_urls.py +++ b/rowers/tests/test_urls.py @@ -8,6 +8,7 @@ tested = [ ] #@pytest.mark.django_db +@override_settings(TESTING=True) class URLTests(TestCase): def setUp(self): redis_connection.publish('tasks','KILL') @@ -98,8 +99,8 @@ class URLTests(TestCase): '/rowers/histo/user/1/', '/rowers/histo/user/1/2016-01-01/2016-12-31/', '/rowers/histodata/', - '/rowers/job-kill/1/', - '/rowers/jobs-status/', +# '/rowers/job-kill/1/', +# '/rowers/jobs-status/', '/rowers/laboratory/', '/rowers/laboratory/user/1/', '/rowers/legal/', @@ -167,8 +168,8 @@ class URLTests(TestCase): '/rowers/team-compare-select/', '/rowers/team-compare-select/workout/1/', '/rowers/team-compare-select/2016-01-01/2016-12-31/', - '/rowers/test-job/2/', - '/rowers/test-job2/2/', +# '/rowers/test-job/2/', +# '/rowers/test-job2/2/', # '/rowers/test_callback/', # '/rowers/updatefitness/', # '/rowers/updatefitness/rower/', diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 6b6a669608cf3406141f6e43ee93a12bb38da616..3b413a486a84a91c1064b804ff471b5d35f1e966 100644 GIT binary patch delta 15 WcmaEx_%@MEzMF$%meoeK=LP^YItBj# delta 15 WcmaEx_%@MEzMF&Njp9bO=LP^ZsRlRz diff --git a/rowers/utils.py b/rowers/utils.py index 868ac109..53194091 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -287,6 +287,17 @@ def isbreakthrough(delta,cpvalues,p0,p1,p2,p3,ratio): def myqueue(queue,function,*args,**kwargs): + class MockJob: + def __init__(self,*args, **kwargs): + self.result = 1 + self.id = 1 + + def revoke(self): + return 1 + + if settings.TESTING: + return MockJob() + if settings.DEBUG: kwargs['debug'] = True diff --git a/rowers/views/statements.py b/rowers/views/statements.py index df6e2f3d..2af32b38 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -437,7 +437,9 @@ def remove_asynctask(request,id): request.session['async_tasks'] = newtasks def get_job_result(jobid): - if settings.DEBUG: + if settings.TESTING: + return None + elif settings.DEBUG: result = celery_result.AsyncResult(jobid).result else: running_job_ids = rq_registry.get_job_ids() @@ -467,7 +469,16 @@ verbose_job_status = { } def get_job_status(jobid): - if settings.DEBUG: + if settings.TESTING: + summary = { + 'status': 'failed', + 'result': 0, + 'finished': True, + 'failed': True, + 'started_at':None, + } + return summary + elif settings.DEBUG: job = celery_result.AsyncResult(jobid) jobresult = job.result diff --git a/rowsandall_app/settings.py b/rowsandall_app/settings.py index 16ad7e68..ed27b557 100644 --- a/rowsandall_app/settings.py +++ b/rowsandall_app/settings.py @@ -34,6 +34,7 @@ SECRET_KEY = CFG['secret_key'] # SECURITY WARNING: don't run with debug turned on in production! DEBUG = False +TESTING = False ALLOWED_HOSTS = CFG['allowed_hosts']