From 3c92132dbc3b79cf098ed608d6766b9afc494edf Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 20 Jul 2023 11:00:31 +0200 Subject: [PATCH] fix --- rowers/nkimportutils.py | 4 ++-- rowers/tasks.py | 9 ++++++--- rowers/tests/mocks.py | 3 +-- rowers/tests/testdata/testdata.tcx.gz | Bin 4002 -> 3999 bytes rowers/views/workoutviews.py | 1 + 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/rowers/nkimportutils.py b/rowers/nkimportutils.py index 55aacb67..e8394bec 100644 --- a/rowers/nkimportutils.py +++ b/rowers/nkimportutils.py @@ -117,14 +117,14 @@ def add_workout_from_data(userid, nkid, data, strokedata, source='nk', splitdata session.headers.update(newHeaders) response = session.post(UPLOAD_SERVICE_URL, json=uploadoptions) - + if response.status_code != 200: # pragma: no cover return 0, response.text try: workoutid = response.json()['id'] except KeyError: # pragma: no cover - workoutid = 1 + workoutid = 0 # dologging('nklog.log','Workout ID {id}'.format(id=workoutid)) diff --git a/rowers/tasks.py b/rowers/tasks.py index e34d100e..41e28396 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -3411,9 +3411,12 @@ def handle_nk_async_workout(alldata, userid, nktoken, nkid, delaysec, defaulttim if workoutid == 0: return 0 - workout = Workout.objects.get(id=workoutid) - newnkid = workout.uploadedtonk - sr = create_or_update_syncrecord(workout.user, workout, nkid=newnkid) + try: + workout = Workout.objects.get(id=workoutid) + newnkid = workout.uploadedtonk + sr = create_or_update_syncrecord(workout.user, workout, nkid=newnkid) + except Workout.DoesNotExist: + pass return workoutid diff --git a/rowers/tests/mocks.py b/rowers/tests/mocks.py index 64f9d64e..49fd34f6 100644 --- a/rowers/tests/mocks.py +++ b/rowers/tests/mocks.py @@ -105,7 +105,7 @@ def mocked_session(*args, **kwargs): self.headers = MockHeaders() def post(self, *args, **kwargs): - return MockResponse({},200) + return MockResponse({'id':1},200) class MockHeaders: def update(*args, **kwargs): @@ -133,7 +133,6 @@ def mocked_session(*args, **kwargs): self.ok = True - return MockEngine() def mocked_sqlalchemy(*args, **kwargs): diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 9b241176dd7ed42ad834d8d3024b5907345e4ea0..cf1a7d645ac7eacb009da34982c10fa62667f728 100644 GIT binary patch literal 3999 zcmV;Q4`A>giwFoO_PAsM|8!+@bYx+4VJ>uIcmVC4TW=Ic7J%RR6&4T4!zwlBQl~DC zaYP`iMFKVoD4VxcV&?BpuloLcf3bM` z_N_VYE>2f#b98pPNMCM_UM)|%&EopQ7jNk9?iBmoyKgwl{iA;MX4Sv{fJ=Ir8lK>)b;iX@kz0nQq>5qCt z=H2GyUmy7Qu7A*-oL#Jzo5dUa>;3=i`lH?c%gamQw_R!w&`l5B{l>e8clP!UK0JW* zGxEnz8{Y3dJ3qVV@7?`p|7v-0clTxb`q9fn0(3us{6O#=dEeqbITIamguemo0~{>U zP9OJw+@0?|>${8o`Ra6e@9tk6dwHRB=<~C_JIRMVTOOUQUv3VC{lVg^t)C8fxZ1rz zPnPM&Zqj|`d--DHr@cSoJ46fzi_1@+cDSEJtvg=+W0~&$x2|9Qe15upHT(DH>6ct? zezg91+4Y-Wmlsb~>(~AA-~E*zkxuh_ck+69h&Ekh_vfc8EUvl4m9L+4?^dU;PybIh zAnuwQxaJa9zJ9dczN-EE!|hwKOk^*&Tz!x)m+1i?66VLa`}+#Ti`DUQy0vBh>g?s= zlWzUGJ4qBj+j@2H?&!at-TijU`PpjSU)`L)NbkTmyo=l2K0oq{S3-;(eoeLq+>*dm z3go|{up@Cjg3lf>T=RUlJ6w)lo3AeW{MSFec_z4a4FB?s>74)S`aX$GJXq}h`tq8K zbkQ$=-u1VbUxe%MYN<1rB<*4q)R7HN1ABhZ6>%q55%&ZU!370(N_ta4?&0R#sV;f9 zQW1A&h*34lry+t1a*wm&?rcTeW0H3(Uc)_>ly`>NaQ78)x3nGSor1d!h6-}WTX4s! zxCf|+yCm*Os5IKVH*O-_>yr1t6>;|_cyJnh-no)y9MgQb`+B$w7$4AT?9gyotqY+EP1{Kd8&&% zRWrrYJ|t64bfz4ll=R)OosZ13R7BpIn3Q^z%#)ZBb!3eIqDsSyv7|jeC-OE_ zL_X>1OsGn}f><(2XK6;GJyt|MntwZS#CZQCb^}Pp_iNo{wOB)9|J~&kLF)@+y0t0g6U! zW;EK@B=cfTdbU6s@`#hs?OT*~n7lJyFleH*Ojy*OpA-3t?D=e=u~p6U%xL07$YY!5 zuP4tr_m%-kzdzw6!Kz#A*f_tsA$BdkspV=Hz7$pYREfoGJiwzTn~8! zBLRY{Nrva5GVhyiKMHv^Y*AG6eBh!Qo^LWg3VCNRqNrp(+M?duCiCNv-{#(`TAZ3-tx8#b-d}vnPDCE7Nh)(0Zwd{)K z+lMyVk3pVc+Y(Eo+gt03>h__<=SLw=#xX=y6FezPeohsYt|IbctT3zQc~`WSc2?x2 zBJ#l`?y3w-TehN7pvn9gE)pb8_ZHzMdKz z&bhbFBWgx_L70rpH+z1Vd^8jw1{L|(bo=Q?Y=m;R6jhW~7@BTBeVG?)LelM3GH=Uf zUB^~SI|_Mkgmn=ck+S5Q4{rqWHo-RNtt#tUTqA!|^0p%KWP;aKSBb~T#OIsL50e*T z302iq63W)qwH}z`kPn6sRh<(gmaVbzO}8I|Jc5ZxtnuDDz?OSEeVIo#5{NWWT8Gmi z&&`uFNZ#eFYgH#iM_5$1pA-3-M*C<0F=*oRj;UxBwQuqHG05lK+kipS_tse|ntMAZ z@)gGl>3dr^6EJlc{P z-mUWRnua$_o^$t8mG{;sOE9(!%*m4%&^;Z!Fe$azfcPDuo*PQOL7F z()GX$q3Eh*b0S~UJWpbRVANz_hKNNoGiXNhyswCSFp^|mQ)v-_n#@lzJ2t*=xFcS zTGV5Z-{s!w=J^ncT6J?GUy&zAl7+?uD)KQD&B<|Xo*#w0Gri5Z8t}0q^ql5;0@YlP5GI4ZwgJB;sdt6}Nj29a zmMyoL6MC))easqu)Jc8WRSO&XanR>ZsE$>cS(s+5rs2;3z2pI36|zMXDjKbylbTnN zamT@s$Dq>i(KT=0O^v%y5BfBAgUkK#H0XWNKDf8a$b@Fx4WhROfLJH>!A=G}Hsfv( zy-(gS5frb(2s&XnrM|S9RgR>xTEIH8v}h()+6f5ZjiF$ze)Y%(Tj0ji=N81 zN}H3^Lq+I=5g}CrY@}on`i6emE*+mcV_GMoGVUlT2r`lOIoOt^A4G2rdtLjSyfDUO zIwv)|ei*$s6eQ>dd=Etn>#?bMW1z<*z{-LI;Pa}Yfnbh@rtNU`X`rL!9F zsUq~wfF)f-w7Gs1^n@l7fhs|ZX*z3~H6Q*kdTRnJ zt8bXyWSXY6ES+KW-gqml((u`qUFU{c&D|L2bB3j$uD+h7Y&#WdYThX5*$80NNxch` z8St?sXbqxw#-eU5Lu4O|Hcq2v*N=ie8j5Ij8h$7nzTxK08w0(i+&@d_&EpuGnm7Fc z---cI7G7C|$;9hxOUAA!Xls+kh7_X;JyDzMr;lF1MCHQ8Xqk#e?wSvO9Q16WL(-wQ zJelRqnj?1@{kCPISE+ecY;);M-;uj*nTTFD*E^X^f>uk*96%qoEfYbvIKR!SI;w2^PnR1 zcH3G(rRGWDHcE4+oZMUA`GRbw3VAxpj24fviXBlT^-A4Jb+g0L=LFTobo@LSM! z9Q4*WL{xRvkZ7AXZ~Bg0_Qo?=RnXRfn@p-kQ}YJVCp*nL)Me>7bZx+&dTw4q&qgRa zX*B3*IwcsbjnXiBXDsAIOAUGsZNQ(tBiF`+o=8=AKYLZ4T%1`Im%94CXmtzSQko=p(a zMefpzQc}auohTam5zss1*+!L1CpawW(wP-{sR(_{YubWN>OB@6@O>-67z4eKaTbFr zODBY)mA1D+-)ioL(Mztr395|T5Q|pY-fF;ay>y1rhrFh(E^-&4=wfHH((r4^(h=CM zWDV$5j@*bc8J7;UzIlV_w<}re*13yRHfRfNt{(-x&($|d^z0|Ix@DW|2hr!1tQkq= z&5PC-t-hhwH*Xa5yj{dxW!y!HZFS3ud-F1SmkY0y=v^!-^{r9rIOt<8ywchAF+gjc zHgRuWLcd+fS{b>E5nE^M8KAc&&Gf1TPza#)$h|3gKNk8ATR(0%SUm2|FF!mz>zA9u z?@sz3e>qv6F4z6u_uEb1?{)niyz_r{Rwx|F3x@BG`yUS$y94g*&h+s&=FgX(R=e*H z9$X}jXBQv#ecGkB=i=<`rdz-4PENK@D}7w8k6(6um(JVm-mXOD({Ts)U-z%hF0Q;L z_s`EyR!3c*e){E$ae3~qPL{s=`St4L<>k-)J-v_V&?^t;!BHZaC(CZLOdRs350CE3eH}dR*2j+?9{%z)v)TT++x}~M zi=VzeeX&e;2Ji#G?*D_ul`nQre*2gX?`%=8*6BGsNGO*V57X0lkuH6B=YJ;OT4Kb2 F0RWK*80!E4 literal 4002 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 Ih{S*a06}y?T>t<8 diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 62b0b96b..dda1a6c9 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -5390,6 +5390,7 @@ def workout_upload_api(request): } ) _ = send_confirm(r.user, t, link, '') + return JSONResponse(status=statuscode, data=message)