From ad372d8f92affe1f40cc6aef59e57a973794b69d Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 26 May 2024 14:51:21 +0200 Subject: [PATCH] fixing tests --- rowers/emails.py | 2 +- rowers/models.py | 9 +++++---- rowers/tests/.#test_analysis.py | 1 + rowers/tests/test_plans.py | 5 +++-- rowers/tests/test_races.py | 3 ++- rowers/tests/test_unit_tests.py | 4 +++- rowers/tests/testdata/testdata.tcx.gz | Bin 4000 -> 4000 bytes rowers/views/workoutviews.py | 10 ++++++++-- 8 files changed, 23 insertions(+), 11 deletions(-) create mode 120000 rowers/tests/.#test_analysis.py diff --git a/rowers/emails.py b/rowers/emails.py index 68c3dbfb..f0d4c0d9 100644 --- a/rowers/emails.py +++ b/rowers/emails.py @@ -117,7 +117,7 @@ def send_template_email(from_email, to_email, subject, if createmessage: for recipient in to_email: try: - soup = BeautifulSoup(html_content) + soup = BeautifulSoup(html_content, 'lxml') s2 = soup.body diff --git a/rowers/models.py b/rowers/models.py index 178394db..57b8aaee 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -48,6 +48,7 @@ from sqlalchemy import create_engine import sqlalchemy as sa from sqlite3 import OperationalError from django.utils import timezone +from datetime import timezone as dt_timezone import pandas as pd from dateutil import parser import datetime @@ -99,25 +100,25 @@ smoothingchoices = ( def half_year_from_now(ttz=None): if ttz is None: - return (datetime.datetime.now(tz=timezone.utc)+timezone.timedelta(days=182)).date() + return (datetime.datetime.now(tz=dt_timezone.utc)+timezone.timedelta(days=182)).date() return (datetime.datetime.utcnow()+timezone.timedelta(days=182)).astimezone(pytz.timezone(ttz)).date() # pragma: no cover def a_week_from_now(ttz=None): if ttz is None: - return (datetime.datetime.now(tz=timezone.utc)+timezone.timedelta(days=7)).date() + return (datetime.datetime.now(tz=dt_timezone.utc)+timezone.timedelta(days=7)).date() return (datetime.datetime.utcnow()+timezone.timedelta(days=7)).astimezone(pytz.timezone(ttz)).date() # pragma: no cover def current_day(ttz=None): if ttz is None: - return (datetime.datetime.now(tz=timezone.utc)).date() + return (datetime.datetime.now(tz=dt_timezone.utc)).date() return datetime.datetime.utcnow().astimezone(pytz.timezone(ttz)).date() # pragma: no cover def current_time(ttz=None): # pragma: no cover if ttz is None: - return datetime.datetime.now(tz=timezone.utc) + return datetime.datetime.now(tz=dt_timezone.utc) return (datetime.datetime.utcnow()).astimezone(pytz.timezone(ttz)) # pragma: no cover diff --git a/rowers/tests/.#test_analysis.py b/rowers/tests/.#test_analysis.py new file mode 120000 index 00000000..076b486b --- /dev/null +++ b/rowers/tests/.#test_analysis.py @@ -0,0 +1 @@ +sander@rowsandall-2.376838:1715854849 \ No newline at end of file diff --git a/rowers/tests/test_plans.py b/rowers/tests/test_plans.py index 2a2a870d..b8615a19 100644 --- a/rowers/tests/test_plans.py +++ b/rowers/tests/test_plans.py @@ -469,7 +469,8 @@ class SessionLinkTest(TestCase): data=form_data) # adding session - middleware = SessionMiddleware() + get_response = MagicMock() + middleware = SessionMiddleware(get_response) middleware.process_request(request) request.session.save() @@ -484,7 +485,7 @@ class SessionLinkTest(TestCase): # and adding a get request = self.factory.get(url) # adding session - middleware = SessionMiddleware() + middleware = SessionMiddleware(get_response) middleware.process_request(request) request.session.save() diff --git a/rowers/tests/test_races.py b/rowers/tests/test_races.py index e783db2e..a8d3ecbb 100644 --- a/rowers/tests/test_races.py +++ b/rowers/tests/test_races.py @@ -856,7 +856,8 @@ class ChallengesTest(TestCase): data=form_data) # adding session - middleware = SessionMiddleware() + get_response = MagicMock() + middleware = SessionMiddleware(get_response) middleware.process_request(request) request.session.save() diff --git a/rowers/tests/test_unit_tests.py b/rowers/tests/test_unit_tests.py index 4903774b..bb571703 100644 --- a/rowers/tests/test_unit_tests.py +++ b/rowers/tests/test_unit_tests.py @@ -41,7 +41,9 @@ class OtherUnitTests(TestCase): # Test get_dates_timeperiod def test_get_dates_timeperiod(self): rq = RequestFactory().get('/rowers/plannedsessions/') - middleware = SessionMiddleware() + get_response = MagicMock() + + middleware = SessionMiddleware(get_response) middleware.process_request(rq) # blanco should just run diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 33e508029c39077e2eb3cf26afed1d6938aa78d9..e0b4e763580501b26758edbc3fd9337d1d29d19e 100644 GIT binary patch delta 2689 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 u) zRYYEl6=u~u?~2ya&WgNLL_V0rU6p}p%T`nhG?^cRyhW2VPDiSir$u|+%8aV0#a2X~ zjd!{zt&Oo{PR^Xj*HdG|Irr9iM9pX~2$PZdX3r0kkA?!opdufCn{Ge-h>cM0mZFN% z3PaQFr!VtjO-Q=EO6G0Ztn1inX-6UNjj%3aBT|-p^Wlv^-X_=vy;Wshi)-ZXO5RpP zo=ot%>MHR#nfQE@`C;;6ETO8pNh^OYU(;wG4IlHEX!_ndOGR^U=S03Dd!DQzhpd|Cg(j1G%dLKXki0i&kyN9-qoVfwjL18x zhrZs=jTMeBHcb|YaCIvYMBe%qO>z0F9tw=R9((pY zdT8YDO1>i9-hyE-Do>6_TT;WjR~}x|@P^5A?tZHB-uh$-#+HFOdGcbsb*PEe`J@{Z zjMWLw$eyn#K5v7u$f(K5@#$@`6Cq!l4=>b1UNG0vs@AmdQnY@4PBLGUh9_*i5NdpQ z-no)~`&rF@^A*|iNq#w!s>a59*D5OSNWP*dtwaM%pc?Iin~ZMXytf17P~1A3JsH=<0&r30;R-XQwjlMW6q0`C@+KMpH@?^d!_M($$7 z)){*S=&eaJy=nmz0%$#Q?~2}!h5qfltPr9q?4?kV@%kA+O=l$0|o-Z$!>;B-& z-KH-Oy8Zy(_&*|?oCaB@|9^4Te|@yrAMjv*rgy(Ff4=^-+JAra{U&j|+`QfQr!Kuc zo6FbRZhhLFpYNVl`nXzupPhDnm(JVm->yXE{c%U%zU*IIZf?9L-(FpvuTHu?{q*Y> zGjY3HNB7N&>Iiu?UtwAf6^thv*70EPj_3b(`GO4_uFl_ezYH* z|LA$T>EmCP=gV%pOdRs3w~y||eH}gN)@P4@IR5dc%x3rJe*4cj=`H^0<;CyIbY}ox v0qp-hTHN?z|KxX%>G;78^=h4-!}kg0a`Qua8o#GYA3yjXkx`AS#DD<+%deg^ diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index a408421a..6385e646 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -3406,12 +3406,16 @@ def workout_data_view(request, id=0): columns = datadf.columns.values - to_be_dropped = [ + to_be_dropped_all = [ 'id', 'time', 'hr_an', 'hr_at', 'hr_bottom', 'hr_max', 'hr_tr', 'hr_ut1', 'hr_ut2', 'x_right', ] - to_be_dropped = [c for c in to_be_dropped if c in columns] + to_be_dropped = [] + + for c in to_be_dropped_all: + if c in columns: + to_be_dropped.append(c) datadf.drop(labels=to_be_dropped, inplace=True, axis=1) @@ -3854,6 +3858,8 @@ def workout_flexchart3_view(request, *args, **kwargs): favoritenr = 0 except AssertionError: favoritenr = 0 + except ValueError: + favoritenr = 0 if 'xparam' in kwargs: xparam = kwargs['xparam']