No Backtrace on request specs with Rspec - testing

I have a request spec like this
require 'rails_helper'
describe 'People API' do
describe 'GET /api/v1/people/lookup.json?phone_number=PHONE_NUMBER', :wip do
it 'returns a 200 status code' do
auth_get '/api/v1/people/lookup.json', phone_number: '91900199'
expect(response.status).to eq(200)
end
end
end
and if the specs fail for some reason I just get a 500 status code in the response, and that's it, so I have to check the log/test.log file to get to know what went wrong, that is pretty annoying.
Why rspec is not showing the backtrace like in other types of specs?
Here is how I run my specs, notice that I include the -b option
$ rspec -b -t wip -f documentation
Run options: include {:wip=>true}
People API
GET /api/v1/people/lookup.json?phone_number=PHONE_NUMBER
returns a 200 status code
Failures:
1) People API GET /api/v1/people/lookup.json?phone_number=PHONE_NUMBER with an empty phone number returns a empty response
Failure/Error: expect(response.status).to eq(200)
expected: 200
got: 500
(compared using ==)
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-expectations-3.0.1/lib/rspec/expectations/fail_with.rb:30:in `fail_with'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-expectations-3.0.1/lib/rspec/expectations/handler.rb:35:in `handle_failure'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-expectations-3.0.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-expectations-3.0.1/lib/rspec/expectations/expectation_target.rb:54:in `to'
# ./spec/requests/api/v1/people_spec.rb:15:in `block (4 levels) in <top (required)>'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example.rb:148:in `instance_exec'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example.rb:148:in `block in run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example.rb:210:in `call'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example.rb:210:in `block (2 levels) in <class:Procsy>'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-rails-3.0.1/lib/rspec/rails/adapters.rb:68:in `block (2 levels) in <module:MinitestLifecycleAdapter>'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example.rb:294:in `instance_exec'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example.rb:294:in `instance_exec'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/hooks.rb:430:in `block (2 levels) in run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example.rb:210:in `call'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example.rb:210:in `block (2 levels) in <class:Procsy>'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/hooks.rb:432:in `run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/hooks.rb:485:in `run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example.rb:303:in `with_around_example_hooks'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example.rb:145:in `run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example_group.rb:494:in `block in run_examples'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example_group.rb:490:in `map'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example_group.rb:490:in `run_examples'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example_group.rb:457:in `run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example_group.rb:458:in `block in run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example_group.rb:458:in `map'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example_group.rb:458:in `run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example_group.rb:458:in `block in run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example_group.rb:458:in `map'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/example_group.rb:458:in `run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/runner.rb:112:in `block (2 levels) in run_specs'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/runner.rb:112:in `map'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/runner.rb:112:in `block in run_specs'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/reporter.rb:54:in `report'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/runner.rb:108:in `run_specs'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/runner.rb:86:in `run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/runner.rb:70:in `run'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/lib/rspec/core/runner.rb:38:in `invoke'
# /Users/fespinoza/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rspec-core-3.0.1/exe/rspec:4:in `<top (required)>'
# /Users/fespinoza/.rbenv/versions/2.1.1/bin/rspec:23:in `load'
# /Users/fespinoza/.rbenv/versions/2.1.1/bin/rspec:23:in `<main>'
Finished in 0.46863 seconds (files took 3.59 seconds to load)
1 examples, 1 failures
but it does not contain the real reason of the 500 error

Your request specs interact with your full stack, including middleware. When an error occurs inside one of your controller methods, it is caught higher up the stack so that a 500 error can be returned to the client. This is what you are seeing in the assertion failure.
You might be able to write your own middleware for testing purposes which prints errors to stderr if you really want this.

Related

Getting Failure/Error: Puppet::SSL::CertificateAuthority.new in puppet

I built the puppet from source code ,on a solo architecture with both puppet master and agent on the same node , when i run the rspec test cases , i am getting a lot of SSL certs issues , and almost all of the have same failure.
Puppet::Face[:ca, v0.1.0]
Failure/Error: Puppet::SSL::CertificateAuthority.new
Errno::EACCES:
Permission denied # rb_sysopen - /tmp/rspecrun20150617-23070-1ls4i9z/face-ca-ssldir20150617-23070-hwwl9f/ca/ca_key.pem
# ./lib/puppet/file_system/file_impl.rb:26:in `initialize'
# ./lib/puppet/file_system/file_impl.rb:26:in `open'
# ./lib/puppet/file_system/file_impl.rb:26:in `open'
# ./lib/puppet/file_system.rb:37:in `open'
# ./lib/puppet/settings/file_setting.rb:197:in `block in open'
# ./lib/puppet/settings/file_setting.rb:230:in `block (2 levels) in controlled_access'
# ./lib/puppet/util.rb:48:in `withumask'
# ./lib/puppet/settings/file_setting.rb:221:in `block in controlled_access'
# ./lib/puppet/util/suidmanager.rb:72:in `asuser'
# ./lib/puppet/settings/file_setting.rb:219:in `controlled_access'
# ./lib/puppet/settings/file_setting.rb:196:in `open'
# ./lib/puppet/indirector/ssl_file.rb:162:in `write'
# ./lib/puppet/indirector/ssl_file.rb:98:in `save'
# ./lib/puppet/indirector/indirection.rb:276:in `save'
# ./lib/puppet/ssl/host.rb:151:in `generate_key'
# ./lib/puppet/ssl/host.rb:197:in `certificate'
# ./lib/puppet/ssl/certificate_authority.rb:270:in `setup'
# ./lib/puppet/ssl/certificate_authority.rb:161:in `initialize'
# ./spec/integration/faces/ca_spec.rb:20:in `new'
# ./spec/integration/faces/ca_spec.rb:20:in `block (2 levels) in <top (required)>'

Heroku console giving Encoding::UndefinedConversionError

Running a heroku console with
heroku run console
all commands returning UTF-8 characters (like german Umlauts) will result in the following error:
irb(main):004:0> Play.all[-2]
Play Load (27.5ms) SELECT "plays".* FROM "plays" ORDER BY name asc
Encoding::UndefinedConversionError: U+00E4 from UTF-8 to US-ASCII
from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `write'
from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `printf'
from /usr/local/lib/ruby/1.9.1/irb.rb:311:in `output_value'
from /usr/local/lib/ruby/1.9.1/irb.rb:160:in `block (2 levels) in eval_input'
from /usr/local/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
from /usr/local/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input'
from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement'
from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
from /usr/local/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
from /usr/local/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
from /usr/local/lib/ruby/1.9.1/irb.rb:70:in `block in start'
from /usr/local/lib/ruby/1.9.1/irb.rb:69:in `catch'
from /usr/local/lib/ruby/1.9.1/irb.rb:69:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/commands/console.rb:47:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/commands/console.rb:8:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'Maybe IRB bug!!
I do not really understand the cause of this.
Is there a workaround?
I am using iTerm with a setting of "UTF-8 xterm-color".
Update
This error completely disappeared for no reason known to me and I can reproduce it neither under ruby 1.9.2p320 nor 1.9.3p448
Typing "\u00E4" into the console now yields "ä" as expected:
irb(main):001:0> "\u00E4"
=> "ä"

Custom rake tasks are running when I run 'rake db:migrate'. How do I prevent this?

I'm running rails on ubuntu 12.04. When I run the code below I get an error from one of my custom tasks. Problem is I didn't want my custom tasks to run in the first place. Just the db migrations.
rake db:migrate --trace
rake aborted!
cannot load such file -- CSV
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `block in require'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
/var/www/myapp/lib/tasks/import_inventory.rake:1:in `<top (required)>'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:245:in `load'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:245:in `block in load'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:245:in `load'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/engine.rb:425:in `block in load_tasks'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/engine.rb:425:in `each'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/engine.rb:425:in `load_tasks'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/application.rb:145:in `load_tasks'
/home/js/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/railtie/configurable.rb:30:in `method_missing'
/var/www/myapp/Rakefile:7:in `<top (required)>'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `block in load_rakefile'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `block in run'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/bin/rake:19:in `load'
/home/js/.rvm/gems/ruby-1.9.3-p194#global/bin/rake:19:in `<main>'
/home/js/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval'
/home/js/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>'
Rake task being ran:
require 'CSV'
namespace :db do
desc 'Prepare transition database.'
task :import_inventory => :environment do
desc 'Import Assets Table'
file_path = "/Users/js/data/TSI/inventory.csv"
CSV.foreach(file_path, :headers => true) do |row|
asset = Asset.new
asset.asid_tag = row[0]
asset.description = row[1]
asset.qty = row[2]
asset.manufactuer = row[3]
asset.model = row[4]
asset.save
end
end
end
When you run Rake all the task files (lib/tasks/*.rb) are loaded and parsed before rake can determine what tasks are available. This means, whether you call the import task or not, the file import_inventory.rake is being parsed by ruby before the actual task you requested (db:migrate) is run. As a result require 'CSV' is executed, regardless of what task you are really trying to run.
As for a fix, I'm guessing it should be require 'csv' (lowercase) rather than require 'CSV' (uppercase)?

heroku db:push issue

I am having some issues getting db:push to work with heroku.
As I have read else where, there is an issue with ruby versions > 1.9.3-p0, so I've downgraded to 1.9.2-p290, as it seems that that is the most common suggestion.
This can be confirmed via running ruby -v and getting ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.4.0]
[teacherjoy (master)]$ heroku db:push
Loaded Taps v0.3.24
Auto-detected local database: sqlite://db/development.sqlite3
Warning: Data in the app 'teacherjoy' will be overwritten and will not be recoverable.
! WARNING: Destructive Action
! This command will affect the app: teacherjoy
! To proceed, type "teacherjoy" or re-run this command with --confirm teacherjoy
> teacherjoy
Sending schema
Schema: 100% |==========================================| Time: 00:00:05
Sending indexes
users: 100% |==========================================| Time: 00:00:02
schema_migrat: 100% |==========================================| Time: 00:00:01
Sending data
4 tables, 76 records
holders: 0% | | ETA: --:--:--
Saving session to push_201207160342.dat..
!!! Caught Server Exception
HTTP CODE: 500
Taps Server Error: PGError: ERROR: time zone displacement out of range: "2012-07-10 12:00:00.000000+5894685600"
["/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:175:in `async_exec'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:175:in `block (2 levels) in execute'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/logging.rb:28:in `log_yield'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:175:in `block in execute'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:158:in `check_disconnect_errors'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:175:in `execute'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:240:in `block (2 levels) in execute'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/connection_pool/threaded.rb:71:in `hold'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/connecting.rb:226:in `synchronize'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:240:in `block in execute'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:261:in `check_database_errors'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/adapters/postgres.rb:238:in `execute'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/query.rb:71:in `execute_dui'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:552:in `execute_dui'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:243:in `block (2 levels) in import'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:243:in `each'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:243:in `block in import'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/query.rb:223:in `_transaction'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/query.rb:209:in `block in transaction'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/connection_pool/threaded.rb:84:in `hold'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/connecting.rb:226:in `synchronize'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/query.rb:207:in `transaction'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:243:in `import'",
"/app/lib/taps/data_stream.rb:315:in `import_rows'",
"/app/lib/taps/data_stream.rb:158:in `fetch_remote_in_server'",
"/app/lib/taps/server.rb:114:in `block (3 levels) in <class:Server>'",
"/app/lib/taps/utils.rb:161:in `call'", "/app/lib/taps/utils.rb:161:in `server_error_handling'",
"/app/lib/taps/server.rb:112:in `block (2 levels) in <class:Server>'",
"/app/lib/taps/db_session.rb:15:in `block in conn'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/connecting.rb:76:in `connect'",
"/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/core.rb:119:in `connect'",
"/app/lib/taps/db_session.rb:14:in `conn'",
"/app/lib/taps/server.rb:111:in `block in <class:Server>'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:865:in `call'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:865:in `block in route'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:521:in `instance_eval'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:521:in `route_eval'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:500:in `block (2 levels) in route!'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:497:in `catch'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:497:in `block in route!'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:476:in `each'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:476:in `route!'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:601:in `dispatch!'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:411:in `block in call!'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `instance_eval'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `block in invoke'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `catch'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `invoke'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:411:in `call!'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:399:in `call'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:979:in `block in call'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:1005:in `synchronize'",
"/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:979:in `call'",
"/home/heroku_rack/lib/static_assets.rb:9:in `call'",
"/home/heroku_rack/lib/last_access.rb:15:in `call'",
"/app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/urlmap.rb:47:in `block in call'",
"/app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/urlmap.rb:41:in `each'",
"/app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/urlmap.rb:41:in `call'",
"/home/heroku_rack/lib/date_header.rb:14:in `call'",
"/app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/builder.rb:77:in `call'",
"/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:76:in `block in pre_process'",
"/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:74:in `catch'",
"/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:74:in `pre_process'",
"/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:57:in `process'",
"/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:42:in `receive_data'",
"/app/.bundle/gems/ruby/1.9.1/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine'",
"/app/.bundle/gems/ruby/1.9.1/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run'",
"/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/backends/base.rb:57:in `start'",
"/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/server.rb:156:in `start'",
"/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/controllers/controller.rb:80:in `start'",
"/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/runner.rb:177:in `run_command'",
"/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/runner.rb:143:in `run!'",
"/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/bin/thin:6:in `<top (required)>'",
"/app/.bundle/gems/ruby/1.9.1/bin/thin:19:in `load'",
"/app/.bundle/gems/ruby/1.9.1/bin/thin:19:in `<main>'"]
What is causing this issue and/or how can I fix it?
I guess this is due to date format of holders table(field is time zone displacement).
Not sure exactly what fixed it, but I was trying to push via a local seeds file. When I tried to run db:seed, I kept getting migration errors. When I tried to run the migrations, I got migration errors. So I ran the following: and then kept running db:migrate as I got new errors.
heroku run rake db:reset
heroku run rake db:migrate

Where do I put Sinatra files intended to be embedded in a Rails3 app?

I want to use the new Rails3 feature that allows you to embed a Sinatra app inside rails.
In my routes file, I have:
# app names changed to protect the (not so) innocent
MyApp::Application.routes.draw do
match "/service", :to => MyService
...
end
And in /lib/my_service.rb I have
class MyService < Sinatra::Base
get "/" do
"Hello World"
end
end
When I try to start the Rails server I get Uninitialized constant MyService (NameError), which I suspect means my Sinatra file is in the wrong directory. Where am I supposed to put it?
Full error text:
rails/my_app » rails server
=> Booting WEBrick
=> Rails 3.0.1 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/Users/marshallyount/Projects/clients/method/rails/my_app/config/routes.rb:2:in `block in <top (required)>': uninitialized constant MyService (NameError)
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/actionpack-3.0.1/lib/action_dispatch/routing/route_set.rb:233:in `instance_exec'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/actionpack-3.0.1/lib/action_dispatch/routing/route_set.rb:233:in `draw'
from /Users/marshallyount/Projects/clients/method/rails/my_app/config/routes.rb:1:in `<top (required)>'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/application.rb:127:in `block in reload_routes!'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/application.rb:127:in `each'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/application.rb:127:in `reload_routes!'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/application.rb:120:in `block in routes_reloader'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/activesupport-3.0.1/lib/active_support/file_update_checker.rb:32:in `call'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/activesupport-3.0.1/lib/active_support/file_update_checker.rb:32:in `execute_if_updated'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/actionpack-3.0.1/lib/action_dispatch/railtie.rb:14:in `block (2 levels) in <class:Railtie>'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/activesupport-3.0.1/lib/active_support/callbacks.rb:419:in `_run_prepare_callbacks'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/actionpack-3.0.1/lib/action_dispatch/middleware/callbacks.rb:40:in `initialize'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/actionpack-3.0.1/lib/action_dispatch/middleware/stack.rb:33:in `new'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/actionpack-3.0.1/lib/action_dispatch/middleware/stack.rb:33:in `build'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/actionpack-3.0.1/lib/action_dispatch/middleware/stack.rb:79:in `block in build'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/actionpack-3.0.1/lib/action_dispatch/middleware/stack.rb:79:in `each'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/actionpack-3.0.1/lib/action_dispatch/middleware/stack.rb:79:in `inject'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/actionpack-3.0.1/lib/action_dispatch/middleware/stack.rb:79:in `build'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/application.rb:162:in `app'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/application/finisher.rb:35:in `block in <module:Finisher>'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/initializable.rb:25:in `instance_exec'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/initializable.rb:25:in `run'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/initializable.rb:50:in `block in run_initializers'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/initializable.rb:49:in `each'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/initializable.rb:49:in `run_initializers'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/application.rb:134:in `initialize!'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/application.rb:77:in `method_missing'
from /Users/marshallyount/Projects/clients/method/rails/my_app/config/environment.rb:5:in `<top (required)>'
from /Users/marshallyount/Projects/clients/method/rails/my_app/config.ru:3:in `require'
from /Users/marshallyount/Projects/clients/method/rails/my_app/config.ru:3:in `block in <main>'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/rack-1.2.1/lib/rack/builder.rb:46:in `instance_eval'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/rack-1.2.1/lib/rack/builder.rb:46:in `initialize'
from /Users/marshallyount/Projects/clients/method/rails/my_app/config.ru:1:in `new'
from /Users/marshallyount/Projects/clients/method/rails/my_app/config.ru:1:in `<main>'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/rack-1.2.1/lib/rack/builder.rb:35:in `eval'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/rack-1.2.1/lib/rack/builder.rb:35:in `parse_file'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/rack-1.2.1/lib/rack/server.rb:162:in `app'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/rack-1.2.1/lib/rack/server.rb:248:in `wrapped_app'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/rack-1.2.1/lib/rack/server.rb:213:in `start'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/commands/server.rb:65:in `start'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/commands.rb:30:in `block in <top (required)>'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/commands.rb:27:in `tap'
from /Users/marshallyount/.rvm/gems/ruby-1.9.2-p0#my_app/gems/railties-3.0.1/lib/rails/commands.rb:27:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
I found a good answer for this question, thanks to this article.
I was missing the all important requires header at the top of my routes file:
require 'my_service.rb'
# app names changed to protect the (not so) innocent
MyApp::Application.routes.draw do
match "/service", :to => MyService
...
end