X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Finflate%2Fdatetime.t;fp=t%2Finflate%2Fdatetime.t;h=fe35c0ecd48281723002a3f790168d497d2b9a8b;hb=07d6018a48520d6edfc5e2d97e8a07ef1fb20351;hp=9fa7648e548ac38180b082a941b6965486c38241;hpb=626282428d929eeb4f3947ebafbcbc1e0be2898e;p=dbsrgits%2FDBIx-Class.git diff --git a/t/inflate/datetime.t b/t/inflate/datetime.t index 9fa7648..fe35c0e 100644 --- a/t/inflate/datetime.t +++ b/t/inflate/datetime.t @@ -7,6 +7,9 @@ use Try::Tiny; use lib qw(t/lib); use DBICTest; +# so user's env doesn't screw us +undef $ENV{DBIC_DT_SEARCH_OK}; + my $schema = DBICTest->init_schema(); plan skip_all => 'DT inflation tests need ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_dt_sqlite') @@ -21,13 +24,22 @@ isa_ok($event->starts_at, 'DateTime', 'DateTime returned'); my $starts = $event->starts_at; is("$starts", '2006-04-25T22:24:33', 'Correct date/time'); +my $dt_warn_re = qr/DateTime objects.+not supported properly/; + my $row; -warnings_exist { - $row = try { - $schema->resultset('Event')->search({ starts_at => $starts })->single +{ + local $ENV{DBIC_DT_SEARCH_OK} = 1; + local $SIG{__WARN__} = sub { + fail('Disabled warning still issued') if $_[0] =~ $dt_warn_re; + warn @_; }; -} [qr/DateTime objects.+not supported/], + $row = $schema->resultset('Event')->search({ starts_at => $starts })->single +} + +warnings_exist { + $row = $schema->resultset('Event')->search({ starts_at => $starts })->single +} [$dt_warn_re], 'using a DateTime object in ->search generates a warning'; TODO: { @@ -35,9 +47,7 @@ TODO: { is(eval { $row->id }, 1, 'DT in search'); - local $SIG{__WARN__} = sub { - warn @_ unless $_[0] =~ /DateTime objects.+not supported/; - }; + local $ENV{DBIC_DT_SEARCH_OK} = 1; ok($row = $schema->resultset('Event')->search({ starts_at => { '>=' => $starts } })