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 \ 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..97f5754e 100644 --- a/test/test_suite_13.py +++ b/test/test_suite_13.py @@ -1300,6 +1300,9 @@ def test_float_as_float(self): filter_=lambda n: n is not None and round(n, 5) or None, ) + def test_float_coerce_round_trip(self, connection): + pass + @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): """