FIX: Tests passing
authorBlake Mizerany <blakemizerany@blake-mizeranys-computer.local>
Sun, 2 Dec 2007 23:48:45 +0000 (2 15:48 -0800)
committerBlake Mizerany <blakemizerany@blake-mizeranys-computer.local>
Sun, 2 Dec 2007 23:48:45 +0000 (2 15:48 -0800)
lib/sinatra.rb
test/custom_error_test.rb

index d377a6d..9e94ef6 100644 (file)
@@ -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
index 6bd3f3e..0ba391a 100644 (file)
@@ -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 '/'