when the Session.is_active is True.
[ticket:2241]
+- sqlite
+ - Ensured that the same ValueError is raised for
+ illegal date/time/datetime string parsed from
+ the database regardless of whether C
+ extensions are in use or not.
+
0.7.2
=====
- orm
if value is None:
return None
else:
- return type_(*map(int, rmatch(value).groups(0)))
+ m = rmatch(value)
+ if m is None:
+ raise ValueError("Couldn't parse %s string." % type_.__name__)
+ return type_(*map(int, m.groups(0)))
return process
def boolean_to_int(value):
finally:
meta.drop_all()
- def test_string_dates_raise(self):
+ def test_string_dates_passed_raise(self):
assert_raises(exc.StatementError, testing.db.execute,
select([1]).where(bindparam('date', type_=Date)),
date=str(datetime.date(2007, 10, 30)))
+ def test_cant_parse_datetime_message(self):
+ for (typ, disp) in [
+ (Time, "time"),
+ (DateTime, "datetime"),
+ (Date, "date")
+ ]:
+ assert_raises_message(
+ ValueError,
+ "Couldn't parse %s string." % disp,
+ lambda: testing.db.execute(
+ text("select 'ASDF' as value", typemap={"value":typ})
+ ).scalar()
+ )
+
def test_time_microseconds(self):
dt = datetime.datetime(2008, 6, 27, 12, 0, 0, 125, )
eq_(str(dt), '2008-06-27 12:00:00.000125')