Skip to content

Commit

Permalink
Test using sequel for sessions
Browse files Browse the repository at this point in the history
  • Loading branch information
Lori Holden committed Dec 22, 2008
1 parent cce1be9 commit 60460b2
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 43 deletions.
4 changes: 2 additions & 2 deletions merb_sequel/lib/merb/orms/sequel/connection.rb
Expand Up @@ -42,8 +42,8 @@ def connect
else else
copy_sample_config copy_sample_config
Merb.logger.set_log(STDERR) Merb.logger.set_log(STDERR)
Merb.logger.error! "No database.yml file found in #{Merb.root}/config." Merb.logger.error! "No database.yml file found at #{config_file}."
Merb.logger.error! "A sample file was created called config/database.yml.sample for you to copy and edit." Merb.logger.error! "A sample file was created called #{sample_dest} for you to copy and edit."
exit(1) exit(1)
end end
end end
Expand Down
1 change: 1 addition & 0 deletions merb_sequel/spec/.gitignore
@@ -0,0 +1 @@
test.db
11 changes: 11 additions & 0 deletions merb_sequel/spec/config/database.yml
@@ -0,0 +1,11 @@
---
development: &defaults
adapter: sqlite
encoding: utf8
database: spec/test.db

test:
<<: *defaults

production:
<<: *defaults
52 changes: 23 additions & 29 deletions merb_sequel/spec/merb_sequel_session_spec.rb
@@ -1,31 +1,25 @@
require File.dirname(__FILE__) + "/spec_helper" require File.dirname(__FILE__) + "/spec_helper"
require 'merb-core/dispatch/session/store_container'
require File.join( File.dirname(__FILE__), "..", "lib", 'merb', 'session', 'sequel_session')


# # Load up the shared specs from merb-core describe Merb::SequelSession do
# if (gem_spec = Gem.source_index.search(Gem::Dependency.new('merb-core', '>=0.9.6')).last) &&
# gem_spec.files.include?('spec/public/session/controllers/sessions.rb') before(:each) do
# require gem_spec.full_gem_path / 'spec/public/session/controllers/sessions.rb' @session_class = Merb::SequelSession
# require gem_spec.full_gem_path / 'spec/public/session/session_spec.rb' @session = @session_class.generate
# end end
#
# describe Merb::SequelSession do it "should have a session_store_type class attribute" do
# @session.class.session_store_type.should == :sequel
# before do end
# @session_class = Merb::SequelSession
# @session = @session_class.generate it "should persist values" do
# end response = request(url(:controller => :spec_controller, :action => :set))
# response.should be_successful
# it_should_behave_like "All session-store backends" response.body.should == 'value'
# response = request(url(:controller => :spec_controller, :action => :get))
# it "should have a session_store_type class attribute" do response.should be_successful
# @session.class.session_store_type.should == :sequel response.body.should == 'value'
# end end
#
# end end
#
# describe Merb::SequelSession, "mixed into Merb::Controller" do
#
# before(:all) { @session_class = Merb::SequelSession }
#
# it_should_behave_like "All session-stores mixed into Merb::Controller"
#
# end
9 changes: 9 additions & 0 deletions merb_sequel/spec/spec_controller.rb
@@ -0,0 +1,9 @@
class SpecController < Merb::Controller
def set
session[:key] = 'value'
end

def get
session[:key]
end
end
23 changes: 11 additions & 12 deletions merb_sequel/spec/spec_helper.rb
@@ -1,31 +1,30 @@
$:.push File.join(File.dirname(__FILE__), "..", "lib") $:.insert 0, File.join(File.dirname(__FILE__), "..", "lib")
require 'rubygems' require 'rubygems'
require 'spec' require 'spec'
require 'spec/mocks'
require 'sequel' require 'sequel'
require 'merb-core' require 'merb-core'
require 'merb-core/test' require 'merb-core/test'
require 'merb-core/test/helpers' require 'merb-core/test/helpers'

require File.join( File.dirname(__FILE__), "..", "lib", 'merb_sequel') require File.join( File.dirname(__FILE__), "..", "lib", 'merb_sequel')


module Merb Merb::Config.use do |c|
module Orms c[:session_store] = 'sequel'
module Sequel
class << self
def connect
::Sequel.connect(:adapter => 'sqlite')
end
end
end
end
end end


Merb.start :environment => 'test', :adapter => 'runner', :session_store => 'session' Merb.start :environment => 'test', :adapter => 'runner', :session_store => 'sequel', :merb_root => File.dirname(__FILE__)


Spec::Runner.configure do |config| Spec::Runner.configure do |config|
config.include Merb::Test::RequestHelper config.include Merb::Test::RequestHelper
end end


Merb::Router.prepare do
default_routes
end

require File.join( File.dirname(__FILE__), 'spec_model') require File.join( File.dirname(__FILE__), 'spec_model')
require File.join( File.dirname(__FILE__), 'spec_controller')






Expand Down
25 changes: 25 additions & 0 deletions merb_sequel/spec/spec_model.rb
@@ -0,0 +1,25 @@
class SpecModel < Sequel::Model
end

class CreateSpecModel < Sequel::Migration
def up
create_table! :spec_models do
primary_key :id
text :name
end
end

def down
drop_table :spec_models
end
end

describe "it has a SpecModel", :shared => true do
before(:each) do
CreateSpecModel.apply(SpecModel.db, :up)
end

after(:each) do
CreateSpecModel.apply(SpecModel.db, :down)
end
end

0 comments on commit 60460b2

Please sign in to comment.