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 33e50802..e0b4e763 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ 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']