From 094efe94abcec074fe105a83e075cbeaf44772fd Mon Sep 17 00:00:00 2001 From: Lalleh Rafeei Date: Thu, 26 Jan 2023 12:37:14 -0800 Subject: [PATCH 1/3] Fix tests in starlette v0.23.1 --- tests/framework_starlette/test_bg_tasks.py | 9 +++------ tox.ini | 3 +-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/framework_starlette/test_bg_tasks.py b/tests/framework_starlette/test_bg_tasks.py index 1b909323a..6f1f4930b 100644 --- a/tests/framework_starlette/test_bg_tasks.py +++ b/tests/framework_starlette/test_bg_tasks.py @@ -12,8 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import sys - import pytest from starlette import __version__ from testing_support.validators.validate_transaction_count import ( @@ -87,10 +85,8 @@ def _test(): response = app.get("/" + route) assert response.status == 200 - BUG_COMPLETELY_FIXED = (starlette_version >= (0, 21, 0)) or ( - starlette_version >= (0, 20, 1) and sys.version_info[:2] > (3, 7) - ) - BUG_PARTIALLY_FIXED = (0, 20, 1) <= starlette_version < (0, 21, 0) and sys.version_info[:2] <= (3, 7) + BUG_COMPLETELY_FIXED = (0, 21, 0) <= starlette_version < (0, 23, 1) + BUG_PARTIALLY_FIXED = (0, 20, 1) <= starlette_version < (0, 21, 0) or starlette_version >= (0, 23, 1) if BUG_COMPLETELY_FIXED: # Assert both web transaction and background task transactions are present. @@ -103,6 +99,7 @@ def _test(): # The background task no longer blocks the completion of the web request/web transaction. # However, the BaseHTTPMiddleware causes the task to be cancelled when the web request disconnects, so there are no # longer function traces or background task transactions. + # In version 0.23.1, the check to see if more_body exists is removed, reverting behavior to this model _test = validate_transaction_metrics("_test_bg_tasks:run_%s_bg_task" % route, scoped_metrics=[route_metric])( _test ) diff --git a/tox.ini b/tox.ini index 2fd6d201a..1691740f7 100644 --- a/tox.ini +++ b/tox.ini @@ -357,8 +357,7 @@ deps = framework_starlette-starlette0015: starlette<0.16 framework_starlette-starlette0019: starlette<0.20 framework_starlette-starlette002001: starlette==0.20.1 - ; Starlette latest version temporarily pinned - framework_starlette-starlettelatest: starlette<0.23.1 + framework_starlette-starlettelatest: starlette framework_strawberry: starlette framework_strawberry-strawberrylatest: strawberry-graphql framework_tornado: pycurl From c78ecae068f511ed087ee9b230f012a51ab509f1 Mon Sep 17 00:00:00 2001 From: Lalleh Rafeei Date: Thu, 26 Jan 2023 15:05:38 -0800 Subject: [PATCH 2/3] Fix conditional tests --- tests/framework_starlette/test_bg_tasks.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/framework_starlette/test_bg_tasks.py b/tests/framework_starlette/test_bg_tasks.py index 6f1f4930b..9d3f0ca7c 100644 --- a/tests/framework_starlette/test_bg_tasks.py +++ b/tests/framework_starlette/test_bg_tasks.py @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +import sys + import pytest from starlette import __version__ from testing_support.validators.validate_transaction_count import ( @@ -85,7 +87,9 @@ def _test(): response = app.get("/" + route) assert response.status == 200 - BUG_COMPLETELY_FIXED = (0, 21, 0) <= starlette_version < (0, 23, 1) + BUG_COMPLETELY_FIXED = (0, 21, 0) <= starlette_version < (0, 23, 1) or ( + (0, 20, 1) <= starlette_version < (0, 23, 1) and sys.version_info[:2] > (3, 7) + ) BUG_PARTIALLY_FIXED = (0, 20, 1) <= starlette_version < (0, 21, 0) or starlette_version >= (0, 23, 1) if BUG_COMPLETELY_FIXED: From 8d60f5751db228140487f4aaff318cace6b26a81 Mon Sep 17 00:00:00 2001 From: Lalleh Rafeei Date: Tue, 31 Jan 2023 14:56:23 -0800 Subject: [PATCH 3/3] Add comment to bg_task test --- tests/framework_starlette/test_bg_tasks.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/framework_starlette/test_bg_tasks.py b/tests/framework_starlette/test_bg_tasks.py index 9d3f0ca7c..07a70131b 100644 --- a/tests/framework_starlette/test_bg_tasks.py +++ b/tests/framework_starlette/test_bg_tasks.py @@ -87,6 +87,8 @@ def _test(): response = app.get("/" + route) assert response.status == 200 + # The bug was fixed in version 0.21.0 but re-occured in 0.23.1. + # The bug was also not present on 0.20.1 to 0.23.1 if using Python3.7. BUG_COMPLETELY_FIXED = (0, 21, 0) <= starlette_version < (0, 23, 1) or ( (0, 20, 1) <= starlette_version < (0, 23, 1) and sys.version_info[:2] > (3, 7) )