From 2124933dec41d93570bb5bec96d1c26c4280f141 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 8 Mar 2019 13:39:43 +0100 Subject: [PATCH] runkeeper stuff --- rowers/runkeeperstuff.py | 6 ++++++ rowers/tests/test_staticcharts.py | 1 + rowers/tests/testdata/testdata.csv.gz | Bin 12543 -> 12509 bytes rowers/utils.py | 3 +-- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/rowers/runkeeperstuff.py b/rowers/runkeeperstuff.py index 0800c08a..f4a38f10 100644 --- a/rowers/runkeeperstuff.py +++ b/rowers/runkeeperstuff.py @@ -145,8 +145,14 @@ def createrunkeeperworkoutdata(w): except KeyError: haslatlon = 0 + t = t.tolist() + hr = hr.tolist() + d = d.tolist() + # path data if haslatlon: + lat = lat.tolist() + lon = lon.tolist() locdata = [] for e in zip(t,lat,lon): point = {'timestamp':e[0], diff --git a/rowers/tests/test_staticcharts.py b/rowers/tests/test_staticcharts.py index 552c048c..db0b4235 100644 --- a/rowers/tests/test_staticcharts.py +++ b/rowers/tests/test_staticcharts.py @@ -10,6 +10,7 @@ nu = datetime.datetime.now() #@pytest.mark.django_db +@override_settings(TESTING=True) class PlotTests(TestCase): def setUp(self): redis_connection.publish('tasks','KILL') diff --git a/rowers/tests/testdata/testdata.csv.gz b/rowers/tests/testdata/testdata.csv.gz index 7d8b5367dd2bcfdbd4f4962d558cf104c84ae534..764671d16ae7358001dbf4ae5372e2e8dbf01c3d 100644 GIT binary patch literal 12509 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 zʩ#=1hb_}VRZ>xe7ZaMW6yPtn@>A+Q@%LOfFfy)Fm_xH(`J$-2~OP)gF7NL@BK zX0A0p)Ouqy?~`6Ze@x_iBV@Ythd_bDd?3o@(y^vncAri7*&srq8U};h9kQ*SHC+q? zSFPodmwHUJon=2mtfOLmJkM4%f8tX*#xWm9+V%sVDwi@y%~tj!F~@$kTHHHR61RDA zI%hJiJ$;c3sk3edR33runKoOS($lLE;&@q`gHXIzj>LDI)^$Dpk+eV7-Z zaHxEQYRVHT>>J&^a