]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
add precision interval test
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 25 Oct 2023 13:53:21 +0000 (09:53 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 25 Oct 2023 13:55:15 +0000 (09:55 -0400)
Change-Id: I11a50f245a66fa9df62c736ce24dd57501d58dbe
References: https://github.com/sqlalchemy/sqlalchemy/pull/10383#discussion_r1371771358

lib/sqlalchemy/testing/suite/test_types.py

index 4c7e45ac07723cfb23564d815aaa2aaf8d04f36b..5debb450f603d0f210d0561ccc6108580ed1f0e0 100644 (file)
@@ -465,7 +465,7 @@ class StringTest(_LiteralRoundTripFixture, fixtures.TestBase):
 class IntervalTest(_LiteralRoundTripFixture, fixtures.TestBase):
     __requires__ = ("datetime_interval",)
     __backend__ = True
-    compare = None
+
     datatype = Interval
     data = datetime.timedelta(days=1, seconds=4)
 
@@ -518,16 +518,16 @@ class IntervalTest(_LiteralRoundTripFixture, fixtures.TestBase):
             interval_table.insert(), {"id": 1, "interval_data": data}
         )
         # Subtraction Operation
-        row = connection.execute(
+        value = connection.execute(
             select(interval_table.c.interval_data - literal(self.data))
         ).scalar()
-        eq_(row, datetime.timedelta(days=1, seconds=1))
+        eq_(value, data - self.data)
 
         # Addition Operation
-        row = connection.execute(
+        value = connection.execute(
             select(interval_table.c.interval_data + literal(self.data))
         ).scalar()
-        eq_(row, datetime.timedelta(days=3, seconds=9))
+        eq_(value, data + self.data)
 
     def test_arithmetic_operation_table_date_and_literal_interval(
         self, connection, arithmetic_table_fixture
@@ -538,16 +538,24 @@ class IntervalTest(_LiteralRoundTripFixture, fixtures.TestBase):
             interval_table.insert(), {"id": 1, "date_data": now}
         )
         # Subtraction Operation
-        row = connection.execute(
+        value = connection.execute(
             select(interval_table.c.date_data - literal(self.data))
         ).scalar()
-        eq_(row, (now - self.data))
+        eq_(value, (now - self.data))
 
         # Addition Operation
-        row = connection.execute(
+        value = connection.execute(
             select(interval_table.c.date_data + literal(self.data))
         ).scalar()
-        eq_(row, (now + self.data))
+        eq_(value, (now + self.data))
+
+
+class PrecisionIntervalTest(IntervalTest):
+    __requires__ = ("datetime_interval",)
+    __backend__ = True
+
+    datatype = Interval(day_precision=9, second_precision=9)
+    data = datetime.timedelta(days=103, seconds=4)
 
 
 class _DateFixture(_LiteralRoundTripFixture, fixtures.TestBase):
@@ -2039,6 +2047,7 @@ __all__ = (
     "NumericTest",
     "IntegerTest",
     "IntervalTest",
+    "PrecisionIntervalTest",
     "CastTypeDecoratorTest",
     "DateTimeHistoricTest",
     "DateTimeCoercedToDateTimeTest",