From becbcc131b60c73bd2483891b69bde5b28bd6cf7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 6 Dec 2024 07:53:53 +0000 Subject: [PATCH 1/5] chore(deps): update dependency google-cloud-spanner to v3.51.0 --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 6e90193d..71ed5445 100644 --- a/requirements.txt +++ b/requirements.txt @@ -157,9 +157,9 @@ google-cloud-core==2.4.1 \ --hash=sha256:9b7749272a812bde58fff28868d0c5e2f585b82f37e09a1f6ed2d4d10f134073 \ --hash=sha256:a9e6a4422b9ac5c29f79a0ede9485473338e2ce78d91f2370c01e730eab22e61 # via google-cloud-spanner -google-cloud-spanner==3.50.1 \ - --hash=sha256:82937ea03b55de86bddf622f555aeae65ae86bb4f28ab35bd920ac505917c9bf \ - --hash=sha256:9d399aa53fae58816023a4eb31fa267333c3a879a9221229e7f06fdda543884a +google-cloud-spanner==3.51.0 \ + --hash=sha256:2d01f33582526ebe7fab62034e92e722e512c21f6bc4abe27e03d86ef7ea576a \ + --hash=sha256:346c2c20f64847883464fb0de5a6f9b48ecc6f79b032a2fb3a0aa088d9a9863f # via -r requirements.in googleapis-common-protos[grpc]==1.66.0 \ --hash=sha256:c3e7b33d15fdca5374cc0a7346dd92ffa847425cc4ea941d970f13680052ec8c \ From 9d51cae47d3b10b1dd1af0729374a16d73727c58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 6 Dec 2024 12:08:32 +0100 Subject: [PATCH 2/5] chore: update tests for float --- test/mockserver_tests/test_bit_reversed_sequence.py | 11 ++++------- test/test_suite_13.py | 10 +++++++++- test/test_suite_14.py | 10 +++++++++- test/test_suite_20.py | 10 +++++++++- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/test/mockserver_tests/test_bit_reversed_sequence.py b/test/mockserver_tests/test_bit_reversed_sequence.py index 82822d44..a18bc08e 100644 --- a/test/mockserver_tests/test_bit_reversed_sequence.py +++ b/test/mockserver_tests/test_bit_reversed_sequence.py @@ -21,7 +21,6 @@ BatchCreateSessionsRequest, ExecuteSqlRequest, CommitRequest, - GetSessionRequest, BeginTransactionRequest, ) from test.mockserver_tests.mock_server_test_base import ( @@ -128,10 +127,8 @@ def test_insert_row(self): session.commit() # Verify the requests that we got. requests = self.spanner_service.requests - eq_(5, len(requests)) + eq_(4, len(requests)) is_instance_of(requests[0], BatchCreateSessionsRequest) - # We should get rid of this extra round-trip for GetSession.... - is_instance_of(requests[1], GetSessionRequest) - is_instance_of(requests[2], BeginTransactionRequest) - is_instance_of(requests[3], ExecuteSqlRequest) - is_instance_of(requests[4], CommitRequest) + is_instance_of(requests[1], BeginTransactionRequest) + is_instance_of(requests[2], ExecuteSqlRequest) + is_instance_of(requests[3], CommitRequest) diff --git a/test/test_suite_13.py b/test/test_suite_13.py index b0cddf59..8e9ad9c4 100644 --- a/test/test_suite_13.py +++ b/test/test_suite_13.py @@ -27,7 +27,7 @@ from google.cloud.spanner_v1 import RequestOptions, Client import sqlalchemy -from sqlalchemy import create_engine +from sqlalchemy import create_engine, literal, FLOAT from sqlalchemy import inspect from sqlalchemy import testing from sqlalchemy import ForeignKey @@ -52,6 +52,7 @@ from sqlalchemy import Float from sqlalchemy import LargeBinary from sqlalchemy import String +from sqlalchemy.sql.expression import cast from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relation from sqlalchemy.orm import Session @@ -1300,6 +1301,13 @@ def test_float_as_float(self): filter_=lambda n: n is not None and round(n, 5) or None, ) + @testing.requires.literal_float_coercion + def test_float_coerce_round_trip(self, connection): + expr = 15.7563 + + val = connection.scalar(select(cast(literal(expr), FLOAT))) + eq_(val, expr) + @requires.precision_numerics_general def test_precision_decimal(self): """ diff --git a/test/test_suite_14.py b/test/test_suite_14.py index e4183821..57305157 100644 --- a/test/test_suite_14.py +++ b/test/test_suite_14.py @@ -27,7 +27,7 @@ from google.cloud.spanner_v1 import RequestOptions, Client import sqlalchemy -from sqlalchemy import create_engine +from sqlalchemy import create_engine, literal, FLOAT from sqlalchemy import inspect from sqlalchemy import testing from sqlalchemy import ForeignKey @@ -53,6 +53,7 @@ from sqlalchemy import Float from sqlalchemy import LargeBinary from sqlalchemy import String +from sqlalchemy.sql.expression import cast from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relation from sqlalchemy.orm import Session @@ -1650,6 +1651,13 @@ def test_float_as_float(self, do_numeric_test): filter_=lambda n: n is not None and round(n, 5) or None, ) + @testing.requires.literal_float_coercion + def test_float_coerce_round_trip(self, connection): + expr = 15.7563 + + val = connection.scalar(select(cast(literal(expr), FLOAT))) + eq_(val, expr) + @requires.precision_numerics_general def test_precision_decimal(self, do_numeric_test): """ diff --git a/test/test_suite_20.py b/test/test_suite_20.py index dbbc8f88..4b6849e4 100644 --- a/test/test_suite_20.py +++ b/test/test_suite_20.py @@ -26,7 +26,7 @@ from google.cloud.spanner_v1 import RequestOptions, Client import sqlalchemy -from sqlalchemy import create_engine +from sqlalchemy import create_engine, literal, FLOAT from sqlalchemy.engine import Inspector from sqlalchemy import inspect from sqlalchemy import testing @@ -55,6 +55,7 @@ from sqlalchemy import Float from sqlalchemy import LargeBinary from sqlalchemy import String +from sqlalchemy.sql.expression import cast from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relationship from sqlalchemy.orm import Session @@ -2455,6 +2456,13 @@ def test_float_as_float(self, do_numeric_test): filter_=lambda n: n is not None and round(n, 5) or None, ) + @testing.requires.literal_float_coercion + def test_float_coerce_round_trip(self, connection): + expr = 15.7563 + + val = connection.scalar(select(cast(literal(expr), FLOAT))) + eq_(val, expr) + @requires.precision_numerics_general def test_precision_decimal(self, do_numeric_test): """ From a2c2c27459874efcac9769e9b7a0dfb7eef6108b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 6 Dec 2024 12:22:04 +0100 Subject: [PATCH 3/5] chore: remove annotation --- test/test_suite_13.py | 1 - 1 file changed, 1 deletion(-) diff --git a/test/test_suite_13.py b/test/test_suite_13.py index 8e9ad9c4..2a795806 100644 --- a/test/test_suite_13.py +++ b/test/test_suite_13.py @@ -1301,7 +1301,6 @@ def test_float_as_float(self): filter_=lambda n: n is not None and round(n, 5) or None, ) - @testing.requires.literal_float_coercion def test_float_coerce_round_trip(self, connection): expr = 15.7563 From 61930b31b5016fb2e76e3e7d957ae1c7cc79a463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 6 Dec 2024 12:25:04 +0100 Subject: [PATCH 4/5] chore: just ignore for SQLAlchemy 1.3 --- test/test_suite_13.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/test/test_suite_13.py b/test/test_suite_13.py index 2a795806..5cc290e1 100644 --- a/test/test_suite_13.py +++ b/test/test_suite_13.py @@ -1302,10 +1302,7 @@ def test_float_as_float(self): ) def test_float_coerce_round_trip(self, connection): - expr = 15.7563 - - val = connection.scalar(select(cast(literal(expr), FLOAT))) - eq_(val, expr) + pass @requires.precision_numerics_general def test_precision_decimal(self): From 17f8889e106e5cbc6d032250da2507cac1803196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Fri, 6 Dec 2024 12:29:02 +0100 Subject: [PATCH 5/5] chore: fix linting problems --- test/test_suite_13.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/test_suite_13.py b/test/test_suite_13.py index 5cc290e1..97f5754e 100644 --- a/test/test_suite_13.py +++ b/test/test_suite_13.py @@ -27,7 +27,7 @@ from google.cloud.spanner_v1 import RequestOptions, Client import sqlalchemy -from sqlalchemy import create_engine, literal, FLOAT +from sqlalchemy import create_engine from sqlalchemy import inspect from sqlalchemy import testing from sqlalchemy import ForeignKey @@ -52,7 +52,6 @@ from sqlalchemy import Float from sqlalchemy import LargeBinary from sqlalchemy import String -from sqlalchemy.sql.expression import cast from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relation from sqlalchemy.orm import Session