diff --git a/rowers/management/commands/processemail.py b/rowers/management/commands/processemail.py index 8a891e60..23b640b7 100644 --- a/rowers/management/commands/processemail.py +++ b/rowers/management/commands/processemail.py @@ -196,18 +196,23 @@ class Command(BaseCommand): rowers = [] for rower in rowers: if extension == 'zip': - zip_file = zipfile.ZipFile(attachment.document) - for id,filename in enumerate(zip_file.namelist()): - datafile = zip_file.extract(filename, path='media/') - if id>0: - title = name+' ('+str(id+1)+')' - else: - title = name + try: + zip_file = zipfile.ZipFile(attachment.document) + for id,filename in enumerate(zip_file.namelist()): + datafile = zip_file.extract( + filename, path='media/') + if id>0: + title = name+' ('+str(id+1)+')' + else: + title = name - workoutid = processattachment( - rower, datafile, title, uploadoptions, - testing=testing - ) + workoutid = processattachment( + rower, datafile, title, uploadoptions, + testing=testing + ) + except: + print "Bad ZIP file" + print attachment.document.name else: # move attachment and make workout if testing: diff --git a/rowers/tests/mocks.py b/rowers/tests/mocks.py index afd73bb1..3f445c1b 100644 --- a/rowers/tests/mocks.py +++ b/rowers/tests/mocks.py @@ -91,8 +91,11 @@ class DjangoTestCase(TestCase, MockTestCase): def _post_teardown(self): TestCase._post_teardown(self) MockTestCase.tearDown(self) - delete_strokedata(1) + # delete_strokedata(1) +def mocked_polar_notifications(*args, **kwargs): + return [] + # to be done add polar mocks (for email processing) def mocked_requests(*args, **kwargs): with open('rowers/tests/testdata/c2jsonworkoutdata.txt','r') as infile: diff --git a/rowers/tests/test_zemails.py b/rowers/tests/test_zemails.py index 3d17c8ce..bed7a8ec 100644 --- a/rowers/tests/test_zemails.py +++ b/rowers/tests/test_zemails.py @@ -154,7 +154,9 @@ workout water @patch('requests.get', side_effect=mocked_requests) @patch('rowers.dataprep.create_engine') - def test_emailprocessing(self, mock_get, mocked_sqlalchemy): + @patch('rowers.polarstuff.get_polar_notifications') + def test_emailprocessing( + self, mock_get, mocked_sqlalchemy,mocked_polar_notifications): out = StringIO() call_command('processemail', stdout=out,testing=True) self.assertIn('Successfully processed email attachments',out.getvalue()) diff --git a/rowers/tests/tests.py b/rowers/tests/tests.py index e51b9a7f..b1ad33b0 100644 --- a/rowers/tests/tests.py +++ b/rowers/tests/tests.py @@ -345,7 +345,8 @@ class ViewTest(TestCase): self.assertEqual(response.status_code, 200) - def test_upload_view_sled(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_sled(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/testdata.csv' @@ -421,7 +422,8 @@ class ViewTest(TestCase): self.assertEqual(response.status_code, 200) - def test_upload_view_sled_negativetime(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_sled_negativetime(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/tim.csv' @@ -468,8 +470,8 @@ class ViewTest(TestCase): - - def test_upload_view_sled_noname(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_sled_noname(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/testdata.csv' @@ -504,7 +506,8 @@ class ViewTest(TestCase): except WindowsError: pass - def test_upload_view_logcard(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_logcard(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/logcard.csv' @@ -536,7 +539,8 @@ class ViewTest(TestCase): - def test_upload_view_TCX_CN(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_TCX_CN(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/crewnerddata.tcx' @@ -583,7 +587,8 @@ class ViewTest(TestCase): except WindowsError: pass - def test_upload_view_TCX_SpeedCoach2a(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_TCX_SpeedCoach2a(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/Speedcoach2example.csv' @@ -617,7 +622,8 @@ class ViewTest(TestCase): except WindowsError: pass - def test_upload_view_TCX_SpeedCoach2b(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_TCX_SpeedCoach2b(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/Speedcoach2example.csv' @@ -653,7 +659,8 @@ class ViewTest(TestCase): - def test_upload_view_TCX_SpeedCoach2c(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_TCX_SpeedCoach2c(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/speedcoach3test3.csv' @@ -688,7 +695,8 @@ class ViewTest(TestCase): pass - def test_upload_view_SpeedCoach2v127(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_SpeedCoach2v127(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/SpeedCoach2Linkv1.27.csv' @@ -724,7 +732,8 @@ class ViewTest(TestCase): - def test_upload_view_SpeedCoach2v127intervals(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_SpeedCoach2v127intervals(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/SpeedCoach2Link_interval.csv' @@ -760,7 +769,8 @@ class ViewTest(TestCase): - def test_upload_view_TCX_NoHR(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_TCX_NoHR(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/NoHR.tcx' @@ -795,7 +805,8 @@ class ViewTest(TestCase): pass - def test_upload_view_TCX_CN(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_TCX_CN(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/rowinginmotionexample.tcx' @@ -827,7 +838,8 @@ class ViewTest(TestCase): pass - def test_upload_view_RP(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_RP(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/RP_testdata.csv' @@ -859,7 +871,8 @@ class ViewTest(TestCase): pass - def test_upload_view_Mystery(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_Mystery(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/mystery.csv' @@ -891,7 +904,8 @@ class ViewTest(TestCase): pass - def test_upload_view_RP_interval(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_RP_interval(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/RP_interval.csv' @@ -924,7 +938,8 @@ class ViewTest(TestCase): - def test_upload_view_sled_desktop(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_sled_desktop(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/painsled_desktop_example.csv' @@ -955,7 +970,8 @@ class ViewTest(TestCase): except WindowsError: pass - def test_upload_view_sled_ergdata(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_sled_ergdata(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/ergdata_example.csv' @@ -986,7 +1002,8 @@ class ViewTest(TestCase): except WindowsError: pass - def test_upload_view_sled_boatcoach(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_sled_boatcoach(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/boatcoach.csv' @@ -1017,7 +1034,8 @@ class ViewTest(TestCase): except WindowsError: pass - def test_upload_view_sled_ergstick(self): + @patch('rowers.dataprep.create_engine') + def test_upload_view_sled_ergstick(self, mocked_sqlalchemy): self.c.login(username='john',password='koeinsloot') filename = 'rowers/tests/testdata/ergstick.csv'