Skip to content

Commit 1b3d296

Browse files
author
James William Pye
committed
And once more...
Factor out the common tests by parameterizing the typname.
1 parent a1c91f4 commit 1b3d296

1 file changed

Lines changed: 23 additions & 27 deletions

File tree

postgresql/test/test_driver.py

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1037,34 +1037,30 @@ def testUUID(self):
10371037
x = uuid.uuid1()
10381038
self.failUnlessEqual(ps(x), x)
10391039

1040+
def _infinity_test(self, typname, inf, neg):
1041+
ps = self.db.prepare('SELECT $1::' + typname).first
1042+
val = ps('infinity')
1043+
self.failUnlessEqual(val, inf)
1044+
val = ps('-infinity')
1045+
self.failUnlessEqual(val, neg)
1046+
val = ps(inf)
1047+
self.failUnlessEqual(val, inf)
1048+
val = ps(neg)
1049+
self.failUnlessEqual(val, neg)
1050+
ps = self.db.prepare('SELECT $1::' + typname + '::text').first
1051+
self.failUnlessEqual(ps('infinity'), 'infinity')
1052+
self.failUnlessEqual(ps('-infinity'), '-infinity')
1053+
10401054
def testInfinity_stdlib_datetime(self):
1041-
ps = self.db.prepare('SELECT $1::timestamp, $2::timestamptz, $3::date').first
1042-
# Can't test the special text case because we don't get the text back.
1043-
ts, tstz, date = ps('infinity', 'infinity', 'infinity')
1044-
self.failUnlessEqual(ts, infinity_datetime)
1045-
self.failUnlessEqual(tstz, infinity_datetime)
1046-
self.failUnlessEqual(date, infinity_date)
1047-
ts, tstz, date = ps('-infinity', '-infinity', '-infinity')
1048-
self.failUnlessEqual(ts, negative_infinity_datetime)
1049-
self.failUnlessEqual(tstz, negative_infinity_datetime)
1050-
self.failUnlessEqual(date, negative_infinity_date)
1051-
self.failUnlessEqual(
1052-
ps(infinity_datetime, infinity_datetime, infinity_date),
1053-
(infinity_datetime, infinity_datetime, infinity_date),
1054-
)
1055-
self.failUnlessEqual(
1056-
ps(negative_infinity_datetime, negative_infinity_datetime, negative_infinity_date),
1057-
(negative_infinity_datetime, negative_infinity_datetime, negative_infinity_date),
1058-
)
1059-
ps = self.db.prepare('SELECT $1::timestamp::text, $2::timestamptz::text, $3::date::text').first
1060-
self.failUnlessEqual(
1061-
ps('infinity', 'infinity', 'infinity'),
1062-
('infinity', 'infinity', 'infinity')
1063-
)
1064-
self.failUnlessEqual(
1065-
ps('-infinity', '-infinity', '-infinity'),
1066-
('-infinity', '-infinity', '-infinity')
1067-
)
1055+
self._infinity_test("timestamptz", infinity_datetime, negative_infinity_datetime)
1056+
self._infinity_test("timestamp", infinity_datetime, negative_infinity_datetime)
1057+
1058+
def testInfinity_stdlib_date(self):
1059+
try:
1060+
self.db.prepare("SELECT 'infinity'::date")()
1061+
self._infinity_test('date', infinity_date, negative_infinity_date)
1062+
except:
1063+
pass
10681064

10691065
def testTypeIOError(self):
10701066
original = dict(self.db.typio._cache)

0 commit comments

Comments
 (0)