From 5cfbda34755853780b1fbf89646bbeca54621178 Mon Sep 17 00:00:00 2001 From: Blake Mizerany Date: Sun, 2 Dec 2007 15:48:45 -0800 Subject: [PATCH] FIX: Tests passing --- lib/sinatra.rb | 8 +++++--- test/custom_error_test.rb | 8 ++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/sinatra.rb b/lib/sinatra.rb index d377a6d..9e94ef6 100644 --- a/lib/sinatra.rb +++ b/lib/sinatra.rb @@ -327,8 +327,10 @@ module Sinatra [:complete, context.instance_eval(&result.block)] end body = returned.to_result(context) + context.body = String === body ? [*body] : body + context.finish rescue => e - raise e if options.env == :test + raise e if options.raise_errors env['sinatra.error'] = e result = (events[:errors][500] || basic_error).invoke(env) returned = catch(:halt) do @@ -336,9 +338,9 @@ module Sinatra end body = returned.to_result(context) context.status(500) + context.body = String === body ? [*body] : body + context.finish end - context.body = String === body ? [*body] : body - context.finish end end diff --git a/test/custom_error_test.rb b/test/custom_error_test.rb index 6bd3f3e..0ba391a 100644 --- a/test/custom_error_test.rb +++ b/test/custom_error_test.rb @@ -2,6 +2,14 @@ require File.dirname(__FILE__) + '/helper' context "Custom Errors (in general)" do + setup do + Sinatra.application.options.raise_errors = false + end + + teardown do + Sinatra.application.options.raise_errors = true + end + specify "override the default 404" do get_it '/' -- 2.11.4.GIT