diff --git a/CHANGELOG b/CHANGELOG index 638b4765ac..41bb07e83c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,7 @@ === HEAD +* Make specs support both RSpec 1 and RSpec 2 (jeremyevans) + * Work with ruby-informix versions >= 0.7.3 in the informix adapter (jeremyevans) (#326) === 3.20.0 (2011-02-01) diff --git a/Rakefile b/Rakefile index 675af010cb..1417f1cd30 100644 --- a/Rakefile +++ b/Rakefile @@ -87,14 +87,24 @@ end ### Specs begin - require "spec/rake/spectask" + begin + # RSpec 1 + require "spec/rake/spectask" + spec_class = Spec::Rake::SpecTask + spec_files_meth = :spec_files= + rescue LoadError + # RSpec 2 + require "rspec/core/rake_task" + spec_class = RSpec::Core::RakeTask + spec_files_meth = :pattern= + end spec = lambda do |name, files, d| lib_dir = File.join(File.dirname(File.expand_path(__FILE__)), 'lib') ENV['RUBYLIB'] ? (ENV['RUBYLIB'] += ":#{lib_dir}") : (ENV['RUBYLIB'] = lib_dir) desc d - Spec::Rake::SpecTask.new(name) do |t| - t.spec_files = files + spec_class.new(name) do |t| + t.send spec_files_meth, files t.spec_opts = ENV['SEQUEL_SPEC_OPTS'].split if ENV['SEQUEL_SPEC_OPTS'] end end diff --git a/spec/adapters/firebird_spec.rb b/spec/adapters/firebird_spec.rb index 09a51100f6..0f5a9e9b13 100644 --- a/spec/adapters/firebird_spec.rb +++ b/spec/adapters/firebird_spec.rb @@ -43,7 +43,7 @@ def logger.method_missing(m, msg) String :val4, :text=>true end -context "A Firebird database" do +describe "A Firebird database" do before do @db = FIREBIRD_DB end @@ -60,7 +60,7 @@ def logger.method_missing(m, msg) end end -context "A Firebird dataset" do +describe "A Firebird dataset" do before do @d = FIREBIRD_DB[:test] @d.delete # remove all records @@ -230,7 +230,7 @@ def FIREBIRD_DB.ret_commit end end -context "A Firebird dataset with a timestamp field" do +describe "A Firebird dataset with a timestamp field" do before do @d = FIREBIRD_DB[:test3] @d.delete @@ -244,7 +244,7 @@ def FIREBIRD_DB.ret_commit end end -context "A Firebird database" do +describe "A Firebird database" do before do @db = FIREBIRD_DB @db.drop_table(:posts) rescue nil @@ -353,7 +353,7 @@ def FIREBIRD_DB.ret_commit end end -context "Postgres::Dataset#insert" do +describe "Postgres::Dataset#insert" do before do @ds = FIREBIRD_DB[:test5] @ds.delete @@ -387,7 +387,7 @@ def FIREBIRD_DB.ret_commit end end -context "Postgres::Dataset#insert" do +describe "Postgres::Dataset#insert" do before do @ds = FIREBIRD_DB[:test6] @ds.delete diff --git a/spec/adapters/informix_spec.rb b/spec/adapters/informix_spec.rb index 10813cca27..ad0d08d0fa 100644 --- a/spec/adapters/informix_spec.rb +++ b/spec/adapters/informix_spec.rb @@ -15,7 +15,7 @@ index :value end -context "A Informix database" do +describe "A Informix database" do specify "should provide disconnect functionality" do INFORMIX_DB.execute("select user from dual") INFORMIX_DB.pool.size.should == 1 @@ -24,7 +24,7 @@ end end -context "A Informix dataset" do +describe "A Informix dataset" do before do @d = INFORMIX_DB[:test] @d.delete # remove all records diff --git a/spec/adapters/mssql_spec.rb b/spec/adapters/mssql_spec.rb index 8f8ffa6a32..5277a74f5e 100644 --- a/spec/adapters/mssql_spec.rb +++ b/spec/adapters/mssql_spec.rb @@ -34,7 +34,7 @@ def logger.method_missing(m, msg) varbinary :value end -context "A MSSQL database" do +describe "A MSSQL database" do before do @db = MSSQL_DB end @@ -59,7 +59,7 @@ def logger.method_missing(m, msg) end end -context "MSSQL Dataset#join_table" do +describe "MSSQL Dataset#join_table" do specify "should emulate the USING clause with ON" do MSSQL_DB[:items].join(:categories, [:id]).sql.should == 'SELECT * FROM ITEMS INNER JOIN CATEGORIES ON (CATEGORIES.ID = ITEMS.ID)' @@ -71,7 +71,7 @@ def logger.method_missing(m, msg) end end -context "MSSQL Dataset#output" do +describe "MSSQL Dataset#output" do before do @db = MSSQL_DB @db.create_table!(:items){String :name; Integer :value} @@ -150,13 +150,13 @@ def logger.method_missing(m, msg) end end -context "MSSQL dataset" do +describe "MSSQL dataset" do before do @db = MSSQL_DB @ds = MSSQL_DB[:t] end - context "using #with and #with_recursive" do + describe "using #with and #with_recursive" do before do @ds1 = @ds.with(:t, @db[:x]) @ds2 = @ds.with_recursive(:t, @db[:x], @db[:t]) @@ -177,7 +177,7 @@ def logger.method_missing(m, msg) @ds2.insert_sql(@db[:t]).should == 'WITH T AS (SELECT * FROM X UNION ALL SELECT * FROM T) INSERT INTO T SELECT * FROM T' end - context "on #import" do + describe "on #import" do before do @db = @db.clone class << @db @@ -213,7 +213,7 @@ def transaction(opts={}) end end -context "MSSQL joined datasets" do +describe "MSSQL joined datasets" do before do @db = MSSQL_DB end @@ -325,7 +325,7 @@ def transaction(opts={}) end end -context "MSSSQL::Dataset#insert" do +describe "MSSSQL::Dataset#insert" do before do @db = MSSQL_DB @db.create_table!(:test5){primary_key :xid; Integer :value} @@ -352,13 +352,13 @@ def transaction(opts={}) end end -context "MSSSQL::Dataset#disable_insert_output" do +describe "MSSSQL::Dataset#disable_insert_output" do specify "should play nicely with simple_select_all?" do MSSQL_DB[:test].disable_insert_output.send(:simple_select_all?).should == true end end -context "MSSSQL::Dataset#into" do +describe "MSSSQL::Dataset#into" do before do @db = MSSQL_DB end @@ -377,7 +377,7 @@ def transaction(opts={}) end end -context "A MSSQL database" do +describe "A MSSQL database" do before do @db = MSSQL_DB end @@ -403,7 +403,7 @@ def transaction(opts={}) end end -context "MSSQL::Database#rename_table" do +describe "MSSQL::Database#rename_table" do specify "should work on non-schema bound tables which need escaping" do MSSQL_DB.quote_identifiers = true MSSQL_DB.create_table! :'foo bar' do @@ -426,7 +426,7 @@ def transaction(opts={}) end end -context "MSSQL::Dataset#count" do +describe "MSSQL::Dataset#count" do specify "should work with a distinct query with an order clause" do MSSQL_DB.create_table!(:items){String :name; Integer :value} MSSQL_DB[:items].insert(:name => "name", :value => 1) diff --git a/spec/adapters/mysql_spec.rb b/spec/adapters/mysql_spec.rb index 854a7c3424..5ad6da4b19 100644 --- a/spec/adapters/mysql_spec.rb +++ b/spec/adapters/mysql_spec.rb @@ -34,7 +34,7 @@ def logger.method_missing(m, msg) SQL_ROLLBACK = 'ROLLBACK' SQL_COMMIT = 'COMMIT' -context "MySQL", '#create_table' do +describe "MySQL", '#create_table' do before do @db = MYSQL_DB MYSQL_DB.sqls.clear @@ -84,7 +84,7 @@ def logger.method_missing(m, msg) end end -context "A MySQL database" do +describe "A MySQL database" do specify "should provide the server version" do MYSQL_DB.server_version.should >= 40000 end @@ -99,7 +99,7 @@ def logger.method_missing(m, msg) end if MYSQL_DB.adapter_scheme == :mysql - context "Sequel::MySQL.convert_tinyint_to_bool" do + describe "Sequel::MySQL.convert_tinyint_to_bool" do before do @db = MYSQL_DB @db.create_table(:booltest){column :b, 'tinyint(1)'; column :i, 'tinyint(4)'} @@ -148,7 +148,7 @@ def logger.method_missing(m, msg) end end -context "A MySQL dataset" do +describe "A MySQL dataset" do before do MYSQL_DB.create_table(:items){String :name; Integer :value} @d = MYSQL_DB[:items] @@ -243,7 +243,7 @@ def logger.method_missing(m, msg) end end -context "MySQL datasets" do +describe "MySQL datasets" do before do @d = MYSQL_DB[:orders] end @@ -282,7 +282,7 @@ def logger.method_missing(m, msg) end end -context "MySQL join expressions" do +describe "MySQL join expressions" do before do @ds = MYSQL_DB[:nodes] @ds.db.meta_def(:server_version) {50014} @@ -333,7 +333,7 @@ def logger.method_missing(m, msg) end end -context "Joined MySQL dataset" do +describe "Joined MySQL dataset" do before do @ds = MYSQL_DB[:nodes] end @@ -357,7 +357,7 @@ def logger.method_missing(m, msg) end end -context "A MySQL database" do +describe "A MySQL database" do before do @db = MYSQL_DB end @@ -424,7 +424,7 @@ def logger.method_missing(m, msg) end end -context "A MySQL database with table options" do +describe "A MySQL database with table options" do before do @options = {:engine=>'MyISAM', :charset=>'latin1', :collate => 'latin1_swedish_ci'} @@ -461,7 +461,7 @@ def logger.method_missing(m, msg) end end -context "A MySQL database" do +describe "A MySQL database" do before do @db = MYSQL_DB @db.drop_table(:items) rescue nil @@ -547,7 +547,7 @@ def logger.method_missing(m, msg) # Socket tests should only be run if the MySQL server is on localhost if %w'localhost 127.0.0.1 ::1'.include?(MYSQL_URI.host) and MYSQL_DB.adapter_scheme == :mysql - context "A MySQL database" do + describe "A MySQL database" do specify "should accept a socket option" do db = Sequel.mysql(MYSQL_DB.opts[:database], :host => 'localhost', :user => MYSQL_DB.opts[:user], :password => MYSQL_DB.opts[:password], :socket => MYSQL_SOCKET_FILE) proc {db.test_connection}.should_not raise_error @@ -565,7 +565,7 @@ def logger.method_missing(m, msg) end end -context "A MySQL database" do +describe "A MySQL database" do specify "should accept a read_timeout option when connecting" do db = Sequel.connect(MYSQL_DB.opts.merge(:read_timeout=>22342)) proc {db.test_connection}.should_not raise_error @@ -577,7 +577,7 @@ def logger.method_missing(m, msg) end end -context "A grouped MySQL dataset" do +describe "A grouped MySQL dataset" do before do MYSQL_DB[:test2].delete MYSQL_DB[:test2] << {:name => '11', :value => 10} @@ -599,7 +599,7 @@ def logger.method_missing(m, msg) end end -context "A MySQL database" do +describe "A MySQL database" do before do @db = MYSQL_DB @db.drop_table(:posts) rescue nil @@ -668,7 +668,7 @@ def logger.method_missing(m, msg) end end -context "MySQL::Dataset#insert and related methods" do +describe "MySQL::Dataset#insert and related methods" do before do MYSQL_DB.create_table(:items){String :name; Integer :value} @d = MYSQL_DB[:items] @@ -853,7 +853,7 @@ def logger.method_missing(m, msg) end -context "MySQL::Dataset#replace" do +describe "MySQL::Dataset#replace" do before do MYSQL_DB.create_table(:items){Integer :id, :unique=>true; Integer :value} @d = MYSQL_DB[:items] @@ -895,7 +895,7 @@ def logger.method_missing(m, msg) end end -context "MySQL::Dataset#complex_expression_sql" do +describe "MySQL::Dataset#complex_expression_sql" do before do @d = MYSQL_DB.dataset end @@ -924,7 +924,7 @@ def logger.method_missing(m, msg) end if MYSQL_DB.adapter_scheme == :mysql or MYSQL_DB.adapter_scheme == :jdbc - context "MySQL Stored Procedures" do + describe "MySQL Stored Procedures" do before do MYSQL_DB.create_table(:items){Integer :id; Integer :value} @d = MYSQL_DB[:items] @@ -969,7 +969,7 @@ def logger.method_missing(m, msg) end if MYSQL_DB.adapter_scheme == :mysql - context "MySQL bad date/time conversions" do + describe "MySQL bad date/time conversions" do after do Sequel::MySQL.convert_invalid_date_time = false end @@ -1000,7 +1000,7 @@ def logger.method_missing(m, msg) end end - context "MySQL multiple result sets" do + describe "MySQL multiple result sets" do before do MYSQL_DB.create_table!(:a){Integer :a} MYSQL_DB.create_table!(:b){Integer :b} diff --git a/spec/adapters/oracle_spec.rb b/spec/adapters/oracle_spec.rb index 7897daf74e..281d9c344b 100644 --- a/spec/adapters/oracle_spec.rb +++ b/spec/adapters/oracle_spec.rb @@ -32,7 +32,7 @@ varchar2 :cat_name, :size => 50 end -context "An Oracle database" do +describe "An Oracle database" do specify "should provide disconnect functionality" do ORACLE_DB.execute("select user from dual") ORACLE_DB.pool.size.should == 1 @@ -74,7 +74,7 @@ end end -context "An Oracle dataset" do +describe "An Oracle dataset" do before do @d = ORACLE_DB[:items] @d.delete # remove all records @@ -222,7 +222,7 @@ end end -context "Joined Oracle dataset" do +describe "Joined Oracle dataset" do before do @d1 = ORACLE_DB[:books] @d1.delete # remove all records @@ -263,7 +263,7 @@ end end -context "Oracle aliasing" do +describe "Oracle aliasing" do before do @d1 = ORACLE_DB[:books] @d1.delete # remove all records diff --git a/spec/adapters/postgres_spec.rb b/spec/adapters/postgres_spec.rb index b64eef8169..ef817d225a 100644 --- a/spec/adapters/postgres_spec.rb +++ b/spec/adapters/postgres_spec.rb @@ -33,7 +33,7 @@ def logger.method_missing(m, msg) bytea :value end -context "A PostgreSQL database" do +describe "A PostgreSQL database" do before do @db = POSTGRES_DB end @@ -54,7 +54,7 @@ def logger.method_missing(m, msg) end end -context "A PostgreSQL dataset" do +describe "A PostgreSQL dataset" do before do @d = POSTGRES_DB[:test] @d.delete # remove all records @@ -234,7 +234,7 @@ def logger.method_missing(m, msg) end end -context "A PostgreSQL dataset with a timestamp field" do +describe "A PostgreSQL dataset with a timestamp field" do before do @d = POSTGRES_DB[:test3] @d.delete @@ -259,7 +259,7 @@ def logger.method_missing(m, msg) end end -context "PostgreSQL's EXPLAIN and ANALYZE" do +describe "PostgreSQL's EXPLAIN and ANALYZE" do specify "should not raise errors" do @d = POSTGRES_DB[:test3] proc{@d.explain}.should_not raise_error @@ -267,7 +267,7 @@ def logger.method_missing(m, msg) end end -context "A PostgreSQL database" do +describe "A PostgreSQL database" do before do @db = POSTGRES_DB end @@ -310,7 +310,7 @@ def logger.method_missing(m, msg) end end -context "A PostgreSQL database" do +describe "A PostgreSQL database" do before do @db = POSTGRES_DB @db.drop_table(:posts) rescue nil @@ -424,7 +424,7 @@ def logger.method_missing(m, msg) end end -context "Postgres::Dataset#import" do +describe "Postgres::Dataset#import" do before do @db = POSTGRES_DB @db.create_table!(:test){Integer :x; Integer :y} @@ -463,7 +463,7 @@ def logger.method_missing(m, msg) end end -context "Postgres::Dataset#insert" do +describe "Postgres::Dataset#insert" do before do @db = POSTGRES_DB @db.create_table!(:test5){primary_key :xid; Integer :value} @@ -551,7 +551,7 @@ def logger.method_missing(m, msg) end end -context "Postgres::Database schema qualified tables" do +describe "Postgres::Database schema qualified tables" do before do POSTGRES_DB << "CREATE SCHEMA schema_test" POSTGRES_DB.instance_variable_set(:@primary_keys, {}) @@ -656,7 +656,7 @@ def logger.method_missing(m, msg) end end -context "Postgres::Database schema qualified tables and eager graphing" do +describe "Postgres::Database schema qualified tables and eager graphing" do before(:all) do @db = POSTGRES_DB @db.run "DROP SCHEMA s CASCADE" rescue nil @@ -844,7 +844,7 @@ def @Member.name; :Member; end full_text_index [:title, :body] end - context "PostgreSQL tsearch2" do + describe "PostgreSQL tsearch2" do before do @ds = POSTGRES_DB[:test6] end @@ -873,7 +873,7 @@ def @Member.name; :Member; end end if POSTGRES_DB.dataset.supports_window_functions? - context "Postgres::Dataset named windows" do + describe "Postgres::Dataset named windows" do before do @db = POSTGRES_DB @db.create_table!(:i1){Integer :id; Integer :group_id; Integer :amount} @@ -902,7 +902,7 @@ def @Member.name; :Member; end end end -context "Postgres::Database functions, languages, and triggers" do +describe "Postgres::Database functions, languages, and triggers" do before do @d = POSTGRES_DB end @@ -973,7 +973,7 @@ def @Member.name; :Member; end end if POSTGRES_DB.adapter_scheme == :postgres -context "Postgres::Dataset #use_cursor" do +describe "Postgres::Dataset #use_cursor" do before(:all) do @db = POSTGRES_DB @db.create_table!(:test_cursor){Integer :x} diff --git a/spec/adapters/spec_helper.rb b/spec/adapters/spec_helper.rb index 3dc09d041b..96af77b876 100644 --- a/spec/adapters/spec_helper.rb +++ b/spec/adapters/spec_helper.rb @@ -16,7 +16,7 @@ def log_duration(duration, message) end end -class Spec::Example::ExampleGroup +(defined?(RSpec) ? RSpec::Core::ExampleGroup : Spec::Example::ExampleGroup).class_eval do def log begin INTEGRATION_DB.loggers << Logger.new(STDOUT) diff --git a/spec/adapters/sqlite_spec.rb b/spec/adapters/sqlite_spec.rb index 60d79832fb..4bf0c0bb21 100644 --- a/spec/adapters/sqlite_spec.rb +++ b/spec/adapters/sqlite_spec.rb @@ -6,7 +6,7 @@ end INTEGRATION_DB = SQLITE_DB unless defined?(INTEGRATION_DB) -context "An SQLite database" do +describe "An SQLite database" do before do @db = SQLITE_DB @fk = @db.foreign_keys @@ -128,7 +128,7 @@ end end -context "An SQLite dataset" do +describe "An SQLite dataset" do before do @d = SQLITE_DB[:items] end @@ -148,7 +148,7 @@ end end -context "An SQLite numeric column" do +describe "An SQLite numeric column" do specify "should handle and return BigDecimal values" do SQLITE_DB.create_table!(:d){numeric :d} d = SQLITE_DB[:d] @@ -162,7 +162,7 @@ end end -context "An SQLite dataset AS clause" do +describe "An SQLite dataset AS clause" do specify "should use a string literal for :col___alias" do SQLITE_DB.literal(:c___a).should == "c AS 'a'" end @@ -188,7 +188,7 @@ end end -context "SQLite::Dataset#delete" do +describe "SQLite::Dataset#delete" do before do SQLITE_DB.create_table! :items do primary_key :id @@ -220,7 +220,7 @@ end end -context "SQLite::Dataset#update" do +describe "SQLite::Dataset#update" do before do SQLITE_DB.create_table! :items do primary_key :id @@ -243,7 +243,7 @@ end end -context "SQLite dataset" do +describe "SQLite dataset" do before do SQLITE_DB.create_table! :test do primary_key :id @@ -282,7 +282,7 @@ end end -context "A SQLite database" do +describe "A SQLite database" do before do @db = SQLITE_DB @db.create_table! :test2 do diff --git a/spec/core/connection_pool_spec.rb b/spec/core/connection_pool_spec.rb index 80e518fa98..61a2614edd 100644 --- a/spec/core/connection_pool_spec.rb +++ b/spec/core/connection_pool_spec.rb @@ -1,7 +1,7 @@ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper') CONNECTION_POOL_DEFAULTS = {:pool_timeout=>5, :pool_sleep_time=>0.001, :max_connections=>4} -context "An empty ConnectionPool" do +describe "An empty ConnectionPool" do before do @cpool = Sequel::ConnectionPool.get_pool(CONNECTION_POOL_DEFAULTS){} end @@ -19,7 +19,7 @@ end end -context "ConnectionPool options" do +describe "ConnectionPool options" do specify "should support string option values" do cpool = Sequel::ConnectionPool.get_pool({:max_connections=>'5', :pool_timeout=>'3', :pool_sleep_time=>'0.01'}){} cpool.max_size.should == 5 @@ -35,7 +35,7 @@ end end -context "A connection pool handling connections" do +describe "A connection pool handling connections" do before do @max_size = 2 @cpool = Sequel::ConnectionPool.get_pool(CONNECTION_POOL_DEFAULTS.merge(:disconnection_proc=>proc{|c| @max_size=3}, :max_connections=>@max_size)) {:got_connection} @@ -107,7 +107,7 @@ end end -context "A connection pool handling connection errors" do +describe "A connection pool handling connection errors" do specify "#hold should raise a Sequel::DatabaseConnectionError if an exception is raised by the connection_proc" do cpool = Sequel::ConnectionPool.get_pool(CONNECTION_POOL_DEFAULTS){raise Interrupt} proc{cpool.hold{:block_return}}.should raise_error(Sequel::DatabaseConnectionError) @@ -132,7 +132,7 @@ def value end end -context "ConnectionPool#hold" do +describe "ConnectionPool#hold" do before do @pool = Sequel::ConnectionPool.get_pool(CONNECTION_POOL_DEFAULTS) {DummyConnection.new} end @@ -158,7 +158,7 @@ def value end end -context "A connection pool with a max size of 1" do +describe "A connection pool with a max size of 1" do before do @invoked_count = 0 @pool = Sequel::ConnectionPool.get_pool(CONNECTION_POOL_DEFAULTS.merge(:max_connections=>1)) {@invoked_count += 1; 'herro'} @@ -290,7 +290,7 @@ def value cc[7].should be_nil stop = true - sleep 0.05 + sleep 0.1 threads.each {|t| t.should_not be_alive} @@ -301,7 +301,7 @@ def value end end -context "Threaded Unsharded Connection Pool" do +describe "Threaded Unsharded Connection Pool" do before do @invoked_count = 0 @pool = Sequel::ConnectionPool.get_pool(CONNECTION_POOL_DEFAULTS.merge(:max_connections=>5)) {@invoked_count += 1} @@ -310,7 +310,7 @@ def value it_should_behave_like "A threaded connection pool" end -context "Threaded Sharded Connection Pool" do +describe "Threaded Sharded Connection Pool" do before do @invoked_count = 0 @pool = Sequel::ConnectionPool.get_pool(CONNECTION_POOL_DEFAULTS.merge(:max_connections=>5, :servers=>{})) {@invoked_count += 1} @@ -319,7 +319,7 @@ def value it_should_behave_like "A threaded connection pool" end -context "ConnectionPool#disconnect" do +describe "ConnectionPool#disconnect" do before do @count = 0 @pool = Sequel::ConnectionPool.get_pool(CONNECTION_POOL_DEFAULTS.merge(:max_connections=>5, :servers=>{})) {{:id => @count += 1}} @@ -385,7 +385,7 @@ def value end end -context "A connection pool with multiple servers" do +describe "A connection pool with multiple servers" do before do @invoked_counts = Hash.new(0) @pool = Sequel::ConnectionPool.get_pool(CONNECTION_POOL_DEFAULTS.merge(:servers=>{:read_only=>{}})){|server| "#{server}#{@invoked_counts[server] += 1}"} @@ -616,7 +616,7 @@ def value ST_CONNECTION_POOL_DEFAULTS = CONNECTION_POOL_DEFAULTS.merge(:single_threaded=>true) -context "SingleConnectionPool" do +describe "SingleConnectionPool" do before do @pool = Sequel::ConnectionPool.get_pool(ST_CONNECTION_POOL_DEFAULTS){1234} end @@ -638,7 +638,7 @@ def value end end -context "A single threaded pool with multiple servers" do +describe "A single threaded pool with multiple servers" do before do @max_size=2 @pool = Sequel::ConnectionPool.get_pool(ST_CONNECTION_POOL_DEFAULTS.merge(:disconnection_proc=>proc{|c| @max_size=3}, :servers=>{:read_only=>{}})){|server| server} diff --git a/spec/core/core_sql_spec.rb b/spec/core/core_sql_spec.rb index 60f53b04e9..82f479a00a 100644 --- a/spec/core/core_sql_spec.rb +++ b/spec/core/core_sql_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper') -context "Array#all_two_pairs?" do +describe "Array#all_two_pairs?" do specify "should return false if empty" do [].all_two_pairs?.should == false end @@ -23,7 +23,7 @@ end end -context "Array#case and Hash#case" do +describe "Array#case and Hash#case" do before do @d = Sequel::Dataset.new(nil) end @@ -55,7 +55,7 @@ end end -context "Array#sql_value_list and #sql_array" do +describe "Array#sql_value_list and #sql_array" do before do @d = Sequel::Dataset.new(nil) end @@ -73,7 +73,7 @@ end end -context "String#lit" do +describe "String#lit" do before do @ds = ds = MockDatabase.new.dataset end @@ -111,7 +111,7 @@ end end -context "String#to_sequel_blob" do +describe "String#to_sequel_blob" do specify "should return a Blob object" do 'xyz'.to_sequel_blob.should be_a_kind_of(::Sequel::SQL::Blob) 'xyz'.to_sequel_blob.should == 'xyz' @@ -122,7 +122,7 @@ end end -context "#desc" do +describe "#desc" do before do @ds = Sequel::Dataset.new(nil) end @@ -138,7 +138,7 @@ end end -context "#asc" do +describe "#asc" do before do @ds = Sequel::Dataset.new(nil) end @@ -154,7 +154,7 @@ end end -context "#as" do +describe "#as" do before do @ds = Sequel::Dataset.new(nil) end @@ -174,7 +174,7 @@ end end -context "Column references" do +describe "Column references" do before do @c = Class.new(Sequel::Dataset) do def quoted_identifier(c); "`#{c}`"; end @@ -211,7 +211,7 @@ def quoted_identifier(c); "`#{c}`"; end end end -context "Blob" do +describe "Blob" do specify "#to_sequel_blob should return self" do blob = "x".to_sequel_blob blob.to_sequel_blob.object_id.should == blob.object_id @@ -219,7 +219,7 @@ def quoted_identifier(c); "`#{c}`"; end end if RUBY_VERSION < '1.9.0' - context "Symbol#[]" do + describe "Symbol#[]" do specify "should format an SQL Function" do ds = Sequel::Dataset.new(nil) ds.literal(:xyz[]).should == 'xyz()' @@ -229,7 +229,7 @@ def quoted_identifier(c); "`#{c}`"; end end end -context "Symbol#*" do +describe "Symbol#*" do before do @ds = Sequel::Dataset.new(nil) end @@ -249,7 +249,7 @@ def quoted_identifier(c); "`#{c}`"; end end end -context "Symbol" do +describe "Symbol" do before do @ds = Sequel::Dataset.new(nil) @ds.quote_identifiers = true @@ -287,7 +287,7 @@ def quoted_identifier(c); "`#{c}`"; end end end -context "Dataset#literal" do +describe "Dataset#literal" do before do @ds = MockDataset.new(nil) end @@ -323,7 +323,7 @@ def quoted_identifier(c); "`#{c}`"; end end end -context "Symbol" do +describe "Symbol" do before do @ds = Sequel::Dataset.new(MockDatabase.new) end @@ -390,7 +390,7 @@ def cast_type_literal(type) end end -context "Sequel::SQL::Function#==" do +describe "Sequel::SQL::Function#==" do specify "should be true for functions with the same name and arguments, false otherwise" do a = :date.sql_function(:t) b = :date.sql_function(:t) @@ -407,7 +407,7 @@ def cast_type_literal(type) end end -context "Sequel::SQL::OrderedExpression" do +describe "Sequel::SQL::OrderedExpression" do specify "should #desc" do @oe = :column.asc @oe.descending.should == false @@ -427,7 +427,7 @@ def cast_type_literal(type) end end -context "Expression" do +describe "Expression" do specify "should consider objects == only if they have the same attributes" do :column.qualify(:table).cast(:type).*(:numeric_column).asc.should == :column.qualify(:table).cast(:type).*(:numeric_column).asc :other_column.qualify(:table).cast(:type).*(:numeric_column).asc.should_not == :column.qualify(:table).cast(:type).*(:numeric_column).asc diff --git a/spec/core/database_spec.rb b/spec/core/database_spec.rb index 5de658a216..4fa0a61e0d 100644 --- a/spec/core/database_spec.rb +++ b/spec/core/database_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper') -context "A new Database" do +describe "A new Database" do before do @db = Sequel::Database.new(1 => 2, :logger => 3) end @@ -198,7 +198,7 @@ class Sequel::Database end end -context "Database#disconnect" do +describe "Database#disconnect" do specify "should call pool.disconnect" do d = Sequel::Database.new p = d.pool @@ -207,19 +207,19 @@ class Sequel::Database end end -context "Sequel.extension" do +describe "Sequel.extension" do specify "should attempt to load the given extension" do proc{Sequel.extension :blah}.should raise_error(LoadError) end end -context "Database#connect" do +describe "Database#connect" do specify "should raise Sequel::NotImplemented" do proc {Sequel::Database.new.connect(:default)}.should raise_error(Sequel::NotImplemented) end end -context "Database#log_info" do +describe "Database#log_info" do before do @o = Object.new def @o.logs; @logs || []; end @@ -239,7 +239,7 @@ def @o.method_missing(*args); (@logs ||= []) << args; end end end -context "Database#log_yield" do +describe "Database#log_yield" do before do @o = Object.new def @o.logs; @logs || []; end @@ -312,7 +312,7 @@ def @o.to_ary; [self]; end end end -context "Database#uri" do +describe "Database#uri" do before do @c = Class.new(Sequel::Database) do set_adapter_scheme :mau @@ -330,7 +330,7 @@ def @o.to_ary; [self]; end end end -context "Database.adapter_scheme and #adapter_scheme" do +describe "Database.adapter_scheme and #adapter_scheme" do specify "should return the database schema" do Sequel::Database.adapter_scheme.should be_nil @@ -343,7 +343,7 @@ def @o.to_ary; [self]; end end end -context "Database#dataset" do +describe "Database#dataset" do before do @db = Sequel::Database.new @ds = @db.dataset @@ -384,26 +384,26 @@ def @o.to_ary; [self]; end end end -context "Database#execute" do +describe "Database#execute" do specify "should raise Sequel::NotImplemented" do proc {Sequel::Database.new.execute('blah blah')}.should raise_error(Sequel::NotImplemented) proc {Sequel::Database.new << 'blah blah'}.should raise_error(Sequel::NotImplemented) end end -context "Database#tables" do +describe "Database#tables" do specify "should raise Sequel::NotImplemented" do proc {Sequel::Database.new.tables}.should raise_error(Sequel::NotImplemented) end end -context "Database#indexes" do +describe "Database#indexes" do specify "should raise Sequel::NotImplemented" do proc {Sequel::Database.new.indexes(:table)}.should raise_error(Sequel::NotImplemented) end end -context "Database#<< and run" do +describe "Database#<< and run" do before do sqls = @sqls = [] @c = Class.new(Sequel::Database) do @@ -430,7 +430,7 @@ def @o.to_ary; [self]; end end end -context "Database#synchronize" do +describe "Database#synchronize" do before do @db = Sequel::Database.new(:max_connections => 1){12345} end @@ -453,7 +453,7 @@ def @o.to_ary; [self]; end end end -context "Database#test_connection" do +describe "Database#test_connection" do before do @db = Sequel::Database.new{@test = rand(100)} end @@ -494,7 +494,7 @@ def dataset end end -context "Database#create_table" do +describe "Database#create_table" do before do @db = DummyDatabase.new end @@ -525,7 +525,7 @@ def dataset end end -context "Database#alter_table" do +describe "Database#alter_table" do before do @db = DummyDatabase.new end @@ -555,7 +555,7 @@ def dataset end end -context "Database#add_column" do +describe "Database#add_column" do before do @db = DummyDatabase.new end @@ -568,7 +568,7 @@ def dataset end end -context "Database#drop_column" do +describe "Database#drop_column" do before do @db = DummyDatabase.new end @@ -581,7 +581,7 @@ def dataset end end -context "Database#rename_column" do +describe "Database#rename_column" do before do @db = DummyDatabase.new end @@ -594,7 +594,7 @@ def dataset end end -context "Database#set_column_type" do +describe "Database#set_column_type" do before do @db = DummyDatabase.new end @@ -607,7 +607,7 @@ def dataset end end -context "Database#set_column_default" do +describe "Database#set_column_default" do before do @db = DummyDatabase.new end @@ -620,7 +620,7 @@ def dataset end end -context "Database#add_index" do +describe "Database#add_index" do before do @db = DummyDatabase.new end @@ -640,7 +640,7 @@ def dataset end end -context "Database#drop_index" do +describe "Database#drop_index" do before do @db = DummyDatabase.new end @@ -660,7 +660,7 @@ def execute(sql); @sql = sql; end def transaction; yield; end end -context "Database#drop_table" do +describe "Database#drop_table" do before do @db = DummyDatabase.new end @@ -680,7 +680,7 @@ def transaction; yield; end end end -context "Database#rename_table" do +describe "Database#rename_table" do before do @db = DummyDatabase.new end @@ -691,7 +691,7 @@ def transaction; yield; end end end -context "Database#table_exists?" do +describe "Database#table_exists?" do specify "should try to select the first record from the table's dataset" do db2 = DummyDatabase.new db2.table_exists?(:a).should be_false @@ -709,7 +709,7 @@ def execute(sql); @db.execute(sql); end end end -context "Database#transaction" do +describe "Database#transaction" do before do @db = Dummy3Database.new{Dummy3Database::DummyConnection.new(@db)} end @@ -797,7 +797,7 @@ def @db.ret_commit end end -context "Database#transaction with savepoints" do +describe "Database#transaction with savepoints" do before do @db = Dummy3Database.new{Dummy3Database::DummyConnection.new(@db)} @db.meta_def(:supports_savepoints?){true} @@ -896,7 +896,7 @@ def @db.ret_commit end end -context "A Database adapter with a scheme" do +describe "A Database adapter with a scheme" do before do class CCC < Sequel::Database if defined?(DISCONNECTS) @@ -1034,14 +1034,14 @@ def disconnect end end -context "Sequel::Database.connect" do +describe "Sequel::Database.connect" do specify "should raise an Error if not given a String or Hash" do proc{Sequel::Database.connect(nil)}.should raise_error(Sequel::Error) proc{Sequel::Database.connect(Object.new)}.should raise_error(Sequel::Error) end end -context "An unknown database scheme" do +describe "An unknown database scheme" do specify "should raise an error in Sequel::Database.connect" do proc {Sequel::Database.connect('ddd://localhost/db')}.should raise_error(Sequel::AdapterNotFound) end @@ -1051,7 +1051,7 @@ def disconnect end end -context "A broken adapter (lib is there but the class is not)" do +describe "A broken adapter (lib is there but the class is not)" do before do @fn = File.join(File.dirname(__FILE__), '../../lib/sequel/adapters/blah.rb') File.open(@fn,'a'){} @@ -1066,7 +1066,7 @@ def disconnect end end -context "A single threaded database" do +describe "A single threaded database" do after do Sequel::Database.single_threaded = false end @@ -1094,7 +1094,7 @@ def disconnect end end -context "A single threaded database" do +describe "A single threaded database" do before do conn = 1234567 @db = Sequel::Database.new(:single_threaded => true) do @@ -1128,7 +1128,7 @@ def @db.dc; @dc end end end -context "A database" do +describe "A database" do before do Sequel::Database.single_threaded = false end @@ -1175,7 +1175,7 @@ def @db.dc; @dc end end end -context "Database#fetch" do +describe "Database#fetch" do before do @db = Sequel::Database.new c = Class.new(Sequel::Dataset) do @@ -1226,7 +1226,7 @@ def fetch_rows(sql); yield({:sql => sql}); end end -context "Database#[]" do +describe "Database#[]" do before do @db = Sequel::Database.new end @@ -1249,7 +1249,7 @@ def fetch_rows(sql); yield({:sql => sql}); end end end -context "Database#create_view" do +describe "Database#create_view" do before do @db = DummyDatabase.new end @@ -1271,7 +1271,7 @@ def fetch_rows(sql); yield({:sql => sql}); end end end -context "Database#create_or_replace_view" do +describe "Database#create_or_replace_view" do before do @db = DummyDatabase.new end @@ -1293,7 +1293,7 @@ def fetch_rows(sql); yield({:sql => sql}); end end end -context "Database#drop_view" do +describe "Database#drop_view" do before do @db = DummyDatabase.new end @@ -1307,7 +1307,7 @@ def fetch_rows(sql); yield({:sql => sql}); end end end -context "Database#alter_table_sql" do +describe "Database#alter_table_sql" do before do @db = DummyDatabase.new end @@ -1317,7 +1317,7 @@ def fetch_rows(sql); yield({:sql => sql}); end end end -context "Database#inspect" do +describe "Database#inspect" do before do @db = DummyDatabase.new @@ -1329,7 +1329,7 @@ def fetch_rows(sql); yield({:sql => sql}); end end end -context "Database#get" do +describe "Database#get" do before do @c = Class.new(DummyDatabase) do def dataset @@ -1362,7 +1362,7 @@ def ds.get(*args, &block) end end -context "Database#call" do +describe "Database#call" do specify "should call the prepared statement with the given name" do db = MockDatabase.new db[:items].prepare(:select, :select_all) @@ -1373,7 +1373,7 @@ def ds.get(*args, &block) end end -context "Database#server_opts" do +describe "Database#server_opts" do specify "should return the general opts if no :servers option is used" do opts = {:host=>1, :database=>2} MockDatabase.new(opts).send(:server_opts, :server1)[:host].should == 1 @@ -1400,7 +1400,7 @@ def ds.get(*args, &block) end end -context "Database#add_servers" do +describe "Database#add_servers" do before do @db = MockDatabase.new(:host=>1, :database=>2, :servers=>{:server1=>{:host=>3}}) def @db.connect(server) @@ -1443,7 +1443,7 @@ def @db.disconnect_connection(c) end end -context "Database#remove_servers" do +describe "Database#remove_servers" do before do @db = MockDatabase.new(:host=>1, :database=>2, :servers=>{:server1=>{:host=>3}, :server2=>{:host=>4}}) def @db.connect(server) @@ -1498,7 +1498,7 @@ def @db.disconnect_connection(c) end end -context "Database#each_server with do/jdbc adapter connection string without :adapter option" do +describe "Database#each_server with do/jdbc adapter connection string without :adapter option" do before do klass = Class.new(Sequel::Database) klass.should_receive(:adapter_class).once.with(:jdbc).and_return(MockDatabase) @@ -1523,7 +1523,7 @@ def @db.disconnect_connection(c) end end -context "Database#each_server" do +describe "Database#each_server" do before do @db = Sequel.connect(:adapter=>:mock, :host=>1, :database=>2, :servers=>{:server1=>{:host=>3}, :server2=>{:host=>4}}) def @db.connect(server) @@ -1560,7 +1560,7 @@ def @db.disconnect_connection(c) end end -context "Database#raise_error" do +describe "Database#raise_error" do specify "should reraise if the exception class is not in opts[:classes]" do e = Class.new(StandardError) proc{MockDatabase.new.send(:raise_error, e.new(''), :classes=>[])}.should raise_error(e) @@ -1579,7 +1579,7 @@ def @db.disconnect_connection(c) end end -context "Database#typecast_value" do +describe "Database#typecast_value" do before do @db = Sequel::Database.new end @@ -1613,7 +1613,7 @@ def @db.disconnect_connection(c) end end -context "Database#blank_object?" do +describe "Database#blank_object?" do specify "should return whether the object is considered blank" do db = Sequel::Database.new c = lambda{|meth, value| Class.new{define_method(meth){value}}.new} @@ -1638,7 +1638,7 @@ def @db.disconnect_connection(c) end end -context "Database#schema_autoincrementing_primary_key?" do +describe "Database#schema_autoincrementing_primary_key?" do specify "should whether the parsed schema row indicates a primary key" do m = Sequel::Database.new.method(:schema_autoincrementing_primary_key?) m.call(:primary_key=>true).should == true @@ -1646,25 +1646,25 @@ def @db.disconnect_connection(c) end end -context "Database#supports_savepoints?" do +describe "Database#supports_savepoints?" do specify "should be false by default" do Sequel::Database.new.supports_savepoints?.should == false end end -context "Database#supports_prepared_transactions?" do +describe "Database#supports_prepared_transactions?" do specify "should be false by default" do Sequel::Database.new.supports_prepared_transactions?.should == false end end -context "Database#supports_transaction_isolation_levels?" do +describe "Database#supports_transaction_isolation_levels?" do specify "should be false by default" do Sequel::Database.new.supports_transaction_isolation_levels?.should == false end end -context "Database#input_identifier_meth" do +describe "Database#input_identifier_meth" do specify "should be the input_identifer method of a default dataset for this database" do db = Sequel::Database.new db.send(:input_identifier_meth).call(:a).should == 'a' @@ -1673,7 +1673,7 @@ def @db.disconnect_connection(c) end end -context "Database#output_identifier_meth" do +describe "Database#output_identifier_meth" do specify "should be the output_identifer method of a default dataset for this database" do db = Sequel::Database.new db.send(:output_identifier_meth).call('A').should == :A @@ -1682,7 +1682,7 @@ def @db.disconnect_connection(c) end end -context "Database#metadata_dataset" do +describe "Database#metadata_dataset" do specify "should be a dataset with the default settings for identifier_input_method and identifier_output_method" do ds = Sequel::Database.new.send(:metadata_dataset) ds.literal(:a).should == 'A' @@ -1690,7 +1690,7 @@ def @db.disconnect_connection(c) end end -context "Database#column_schema_to_ruby_default" do +describe "Database#column_schema_to_ruby_default" do specify "should handle converting many default formats" do db = Sequel::Database.new m = db.method(:column_schema_to_ruby_default) diff --git a/spec/core/dataset_spec.rb b/spec/core/dataset_spec.rb index eea4b0d8fa..3a4562b702 100644 --- a/spec/core/dataset_spec.rb +++ b/spec/core/dataset_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper") -context "Dataset" do +describe "Dataset" do before do @dataset = Sequel::Dataset.new("db") end @@ -62,7 +62,7 @@ end end -context "Dataset" do +describe "Dataset" do before do @dataset = Sequel::Dataset.new("db") end @@ -104,7 +104,7 @@ end end -context "Dataset#clone" do +describe "Dataset#clone" do before do @dataset = Sequel::Dataset.new(nil).from(:items) end @@ -159,7 +159,7 @@ def __xyz__; "xyz"; end end end -context "Dataset#==" do +describe "Dataset#==" do before do @db = MockDatabase.new @h = {} @@ -184,7 +184,7 @@ def __xyz__; "xyz"; end end end -context "Dataset#hash" do +describe "Dataset#hash" do before do @db = MockDatabase.new @h = {} @@ -211,7 +211,7 @@ def __xyz__; "xyz"; end end end -context "A simple dataset" do +describe "A simple dataset" do before do @dataset = Sequel::Dataset.new(nil).from(:test) end @@ -293,7 +293,7 @@ def v.values; {}; end end end -context "A dataset with multiple tables in its FROM clause" do +describe "A dataset with multiple tables in its FROM clause" do before do @dataset = Sequel::Dataset.new(nil).from(:t1, :t2) end @@ -319,7 +319,7 @@ def v.values; {}; end end end -context "Dataset#unused_table_alias" do +describe "Dataset#unused_table_alias" do before do @ds = Sequel::Dataset.new(nil).from(:test) end @@ -346,7 +346,7 @@ def v.values; {}; end end end -context "Dataset#exists" do +describe "Dataset#exists" do before do @ds1 = Sequel::Dataset.new(nil).from(:test) @ds2 = @ds1.filter(:price.sql_number < 100) @@ -366,7 +366,7 @@ def v.values; {}; end end end -context "Dataset#where" do +describe "Dataset#where" do before do @dataset = Sequel::Dataset.new(nil).from(:test) @d1 = @dataset.where(:region => 'Asia') @@ -647,7 +647,7 @@ def d1.fetch_rows(sql) end end -context "Dataset#or" do +describe "Dataset#or" do before do @dataset = Sequel::Dataset.new(nil).from(:test) @d1 = @dataset.where(:x => 1) @@ -688,7 +688,7 @@ def d1.fetch_rows(sql) end end -context "Dataset#and" do +describe "Dataset#and" do before do @dataset = Sequel::Dataset.new(nil).from(:test) @d1 = @dataset.where(:x => 1) @@ -728,7 +728,7 @@ def d1.fetch_rows(sql) end end -context "Dataset#exclude" do +describe "Dataset#exclude" do before do @dataset = Sequel::Dataset.new(nil).from(:test) end @@ -772,7 +772,7 @@ def d1.fetch_rows(sql) end end -context "Dataset#invert" do +describe "Dataset#invert" do before do @d = Sequel::Dataset.new(nil).from(:test) end @@ -790,7 +790,7 @@ def d1.fetch_rows(sql) end end -context "Dataset#having" do +describe "Dataset#having" do before do @dataset = Sequel::Dataset.new(nil).from(:test) @grouped = @dataset.group(:region).select(:region, :sum.sql_function(:population), :avg.sql_function(:gdp)) @@ -821,7 +821,7 @@ def d1.fetch_rows(sql) end end -context "a grouped dataset" do +describe "a grouped dataset" do before do @dataset = Sequel::Dataset.new(nil).from(:test).group(:type_id) end @@ -854,7 +854,7 @@ def d1.fetch_rows(sql) end end -context "Dataset#group_by" do +describe "Dataset#group_by" do before do @dataset = Sequel::Dataset.new(nil).from(:test).group_by(:type_id) end @@ -896,7 +896,7 @@ def d1.fetch_rows(sql) end end -context "Dataset#as" do +describe "Dataset#as" do specify "should set up an alias" do dataset = Sequel::Dataset.new(nil).from(:test) dataset.select(dataset.limit(1).select(:name).as(:n)).sql.should == \ @@ -904,7 +904,7 @@ def d1.fetch_rows(sql) end end -context "Dataset#literal" do +describe "Dataset#literal" do before do @dataset = Sequel::Dataset.new(nil).from(:test) end @@ -1058,7 +1058,7 @@ def d.to_s; "adsf" end end end -context "Dataset#from" do +describe "Dataset#from" do before do @dataset = Sequel::Dataset.new(nil) end @@ -1121,7 +1121,7 @@ def d.to_s; "adsf" end end end -context "Dataset#select" do +describe "Dataset#select" do before do @d = Sequel::Dataset.new(nil).from(:test) end @@ -1185,7 +1185,7 @@ def d.to_s; "adsf" end end end -context "Dataset#select_all" do +describe "Dataset#select_all" do before do @d = Sequel::Dataset.new(nil).from(:test) end @@ -1199,7 +1199,7 @@ def d.to_s; "adsf" end end end -context "Dataset#select_more" do +describe "Dataset#select_more" do before do @d = Sequel::Dataset.new(nil).from(:test) end @@ -1221,7 +1221,7 @@ def d.to_s; "adsf" end end end -context "Dataset#select_append" do +describe "Dataset#select_append" do before do @d = Sequel::Dataset.new(nil).from(:test) end @@ -1243,7 +1243,7 @@ def d.to_s; "adsf" end end end -context "Dataset#order" do +describe "Dataset#order" do before do @dataset = Sequel::Dataset.new(nil).from(:test) end @@ -1298,31 +1298,31 @@ def d.to_s; "adsf" end end end -context "Dataset#unfiltered" do +describe "Dataset#unfiltered" do specify "should remove filtering from the dataset" do Sequel::Dataset.new(nil).from(:test).filter(:score=>1).unfiltered.sql.should == 'SELECT * FROM test' end end -context "Dataset#unlimited" do +describe "Dataset#unlimited" do specify "should remove limit and offset from the dataset" do Sequel::Dataset.new(nil).from(:test).limit(1, 2).unlimited.sql.should == 'SELECT * FROM test' end end -context "Dataset#ungrouped" do +describe "Dataset#ungrouped" do specify "should remove group and having clauses from the dataset" do Sequel::Dataset.new(nil).from(:test).group(:a).having(:b).ungrouped.sql.should == 'SELECT * FROM test' end end -context "Dataset#unordered" do +describe "Dataset#unordered" do specify "should remove ordering from the dataset" do Sequel::Dataset.new(nil).from(:test).order(:name).unordered.sql.should == 'SELECT * FROM test' end end -context "Dataset#with_sql" do +describe "Dataset#with_sql" do before do @dataset = Sequel::Dataset.new(nil).from(:test) end @@ -1344,7 +1344,7 @@ def d.to_s; "adsf" end end end -context "Dataset#order_by" do +describe "Dataset#order_by" do before do @dataset = Sequel::Dataset.new(nil).from(:test) end @@ -1375,7 +1375,7 @@ def d.to_s; "adsf" end end end -context "Dataset#order_more and order_append" do +describe "Dataset#order_more and order_append" do before do @dataset = Sequel::Dataset.new(nil).from(:test) end @@ -1398,7 +1398,7 @@ def d.to_s; "adsf" end end end -context "Dataset#order_prepend" do +describe "Dataset#order_prepend" do before do @dataset = Sequel::Dataset.new(nil).from(:test) end @@ -1419,7 +1419,7 @@ def d.to_s; "adsf" end end end -context "Dataset#reverse_order" do +describe "Dataset#reverse_order" do before do @dataset = Sequel::Dataset.new(nil).from(:test) end @@ -1467,7 +1467,7 @@ def d.to_s; "adsf" end end end -context "Dataset#limit" do +describe "Dataset#limit" do before do @dataset = Sequel::Dataset.new(nil).from(:test) end @@ -1521,7 +1521,7 @@ def d.to_s; "adsf" end end end -context "Dataset#naked" do +describe "Dataset#naked" do before do @d1 = Sequel::Dataset.new(nil, {1 => 2, 3 => 4}) @d2 = @d1.clone @@ -1534,7 +1534,7 @@ def d.to_s; "adsf" end end end -context "Dataset#qualified_column_name" do +describe "Dataset#qualified_column_name" do before do @dataset = Sequel::Dataset.new(nil).from(:test) end @@ -1569,7 +1569,7 @@ def fetch_rows(sql, &block) end end -context "Dataset#map" do +describe "Dataset#map" do before do @d = DummyDataset.new(nil).from(:items) end @@ -1587,7 +1587,7 @@ def fetch_rows(sql, &block) end end -context "Dataset#to_hash" do +describe "Dataset#to_hash" do before do @d = DummyDataset.new(nil).from(:items) end @@ -1603,7 +1603,7 @@ def fetch_rows(sql, &block) end end -context "Dataset#distinct" do +describe "Dataset#distinct" do before do @db = MockDatabase.new @dataset = @db[:test].select(:name) @@ -1630,7 +1630,7 @@ def fetch_rows(sql, &block) end end -context "Dataset#count" do +describe "Dataset#count" do before do @c = Class.new(Sequel::Dataset) do def self.sql @@ -1692,7 +1692,7 @@ def fetch_rows(sql) end -context "Dataset#group_and_count" do +describe "Dataset#group_and_count" do before do @c = Class.new(Sequel::Dataset) do def self.sql @@ -1742,7 +1742,7 @@ def fetch_rows(sql) end end -context "Dataset#empty?" do +describe "Dataset#empty?" do specify "should return true if records exist in the dataset" do @c = Class.new(Sequel::Dataset) do def self.sql @@ -1761,7 +1761,7 @@ def fetch_rows(sql) end end -context "Dataset#first_source_alias" do +describe "Dataset#first_source_alias" do before do @ds = Sequel::Dataset.new(nil) end @@ -1791,7 +1791,7 @@ def fetch_rows(sql) end end -context "Dataset#first_source_table" do +describe "Dataset#first_source_table" do before do @ds = Sequel::Dataset.new(nil) end @@ -1814,7 +1814,7 @@ def fetch_rows(sql) end end -context "Dataset#from_self" do +describe "Dataset#from_self" do before do @ds = Sequel::Dataset.new(nil).from(:test).select(:name).limit(1) end @@ -1842,7 +1842,7 @@ def fetch_rows(sql) end -context "Dataset#join_table" do +describe "Dataset#join_table" do before do @d = MockDataset.new(nil).from(:items) @d.quote_identifiers = true @@ -2156,7 +2156,7 @@ def ds.table_name; :categories end end end -context "Dataset#[]=" do +describe "Dataset#[]=" do before do c = Class.new(Sequel::Dataset) do def last_sql @@ -2177,7 +2177,7 @@ def update(*args) end end -context "Dataset#set" do +describe "Dataset#set" do before do c = Class.new(Sequel::Dataset) do def last_sql @@ -2199,7 +2199,7 @@ def update(*args, &block) end -context "Dataset#insert_multiple" do +describe "Dataset#insert_multiple" do before do c = Class.new(Sequel::Dataset) do attr_reader :inserts @@ -2224,7 +2224,7 @@ def insert(arg) end end -context "Dataset aggregate methods" do +describe "Dataset aggregate methods" do before do c = Class.new(Sequel::Dataset) do def fetch_rows(sql) @@ -2263,7 +2263,7 @@ def fetch_rows(sql) end end -context "Dataset#range" do +describe "Dataset#range" do before do c = Class.new(Sequel::Dataset) do class_variable_set(:@@sql, nil) @@ -2296,7 +2296,7 @@ def fetch_rows(sql) end end -context "Dataset#interval" do +describe "Dataset#interval" do before do c = Class.new(Sequel::Dataset) do class_variable_set(:@@sql, nil) @@ -2329,7 +2329,7 @@ def fetch_rows(sql) end end -context "Dataset #first and #last" do +describe "Dataset #first and #last" do before do @c = Class.new(Sequel::Dataset) do def each(&block) @@ -2392,7 +2392,7 @@ def each(&block) end end -context "Dataset compound operations" do +describe "Dataset compound operations" do before do @a = Sequel::Dataset.new(nil).from(:a).filter(:z => 1) @b = Sequel::Dataset.new(nil).from(:b).filter(:z => 2) @@ -2506,7 +2506,7 @@ def each(&block) end -context "Dataset#[]" do +describe "Dataset#[]" do before do @c = Class.new(Sequel::Dataset) do class_variable_set(:@@last_dataset, nil) @@ -2532,7 +2532,7 @@ def single_record end end -context "Dataset#single_record" do +describe "Dataset#single_record" do before do @c = Class.new(Sequel::Dataset) do def fetch_rows(sql) @@ -2556,7 +2556,7 @@ def fetch_rows(sql); end end end -context "Dataset#single_value" do +describe "Dataset#single_value" do before do @c = Class.new(Sequel::Dataset) do def fetch_rows(sql) @@ -2585,7 +2585,7 @@ def fetch_rows(sql); end end end -context "Dataset#get" do +describe "Dataset#get" do before do @c = Class.new(Sequel::Dataset) do attr_reader :last_sql @@ -2622,7 +2622,7 @@ def fetch_rows(sql) end end -context "Dataset#set_row_proc" do +describe "Dataset#set_row_proc" do before do @c = Class.new(Sequel::Dataset) do def fetch_rows(sql, &block) @@ -2649,7 +2649,7 @@ def fetch_rows(sql, &block) end end -context "Dataset#<<" do +describe "Dataset#<<" do before do @d = Sequel::Dataset.new(nil) @d.meta_def(:insert) do |*args| @@ -2662,7 +2662,7 @@ def fetch_rows(sql, &block) end end -context "Dataset#columns" do +describe "Dataset#columns" do before do @dataset = DummyDataset.new(nil).from(:items) @dataset.meta_def(:columns=) {|c| @columns = c} @@ -2689,7 +2689,7 @@ def fetch_rows(sql, &block) end end -context "Dataset#columns!" do +describe "Dataset#columns!" do before do @dataset = DummyDataset.new(nil).from(:items) i = 'a' @@ -2704,7 +2704,7 @@ def fetch_rows(sql, &block) end end -context "Dataset#import" do +describe "Dataset#import" do before do @dbc = Class.new(Sequel::Database) do attr_reader :sqls @@ -2784,7 +2784,7 @@ def transaction(opts={}) end end -context "Dataset#multi_insert" do +describe "Dataset#multi_insert" do before do @dbc = Class.new do attr_reader :sqls @@ -2897,7 +2897,7 @@ def transaction(opts={}) end end -context "Dataset" do +describe "Dataset" do before do @d = Sequel::Dataset.new(nil).from(:x) end @@ -2944,7 +2944,7 @@ def transaction(opts={}) end end -context "Dataset#to_csv" do +describe "Dataset#to_csv" do before do @c = Class.new(Sequel::Dataset) do attr_accessor :data @@ -2976,7 +2976,7 @@ def naked end end -context "Dataset#update_sql" do +describe "Dataset#update_sql" do before do @ds = Sequel::Dataset.new(nil).from(:items) end @@ -2998,7 +2998,7 @@ def naked end end -context "Dataset#insert_sql" do +describe "Dataset#insert_sql" do before do @ds = Sequel::Dataset.new(nil).from(:items) end @@ -3092,7 +3092,7 @@ def dataset end end -context "Dataset#inspect" do +describe "Dataset#inspect" do before do @ds = Sequel::Dataset.new(nil).from(:blah) end @@ -3102,7 +3102,7 @@ def dataset end end -context "Dataset#all" do +describe "Dataset#all" do before do @c = Class.new(Sequel::Dataset) do def fetch_rows(sql, &block) @@ -3133,7 +3133,7 @@ def fetch_rows(sql, &block) end end -context "Dataset#grep" do +describe "Dataset#grep" do before do @ds = Sequel::Dataset.new(nil).from(:posts) end @@ -3207,7 +3207,7 @@ def fetch_rows(sql, &block) end end -context "Dataset default #fetch_rows, #insert, #update, #delete, #truncate, #execute" do +describe "Dataset default #fetch_rows, #insert, #update, #delete, #truncate, #execute" do before do @db = Sequel::Database.new @ds = @db[:items] @@ -3255,7 +3255,7 @@ def fetch_rows(sql, &block) end end -context "Dataset prepared statements and bound variables " do +describe "Dataset prepared statements and bound variables " do before do @db = Sequel::Database.new @db.meta_def(:sqls){@sqls||=[]} @@ -3342,7 +3342,7 @@ def ds.fetch_rows(sql, &block) end end -context Sequel::Dataset::UnnumberedArgumentMapper do +describe Sequel::Dataset::UnnumberedArgumentMapper do before do @db = Sequel::Database.new @db.meta_def(:sqls){@sqls||=[]} @@ -3388,7 +3388,7 @@ def @ds.execute_insert(*args, &block) end end -context "Sequel::Dataset#server" do +describe "Sequel::Dataset#server" do specify "should set the server to use for the dataset" do @db = Sequel::Database.new @ds = @db[:items].server(:s) @@ -3410,7 +3410,7 @@ def @ds.fetch_rows(sql, &block) end end -context "Sequel::Dataset#each_server" do +describe "Sequel::Dataset#each_server" do before do @db = Sequel::Database.new(:servers=>{:s=>{}, :i=>{}}) @ds = @db[:items] @@ -3434,7 +3434,7 @@ def @ds.fetch_rows(sql, &block) end end -context "Sequel::Dataset #set_defaults" do +describe "Sequel::Dataset #set_defaults" do before do @ds = Sequel::Dataset.new(nil).from(:items).set_defaults(:x=>1) end @@ -3456,7 +3456,7 @@ def @ds.fetch_rows(sql, &block) end end -context "Sequel::Dataset #set_overrides" do +describe "Sequel::Dataset #set_overrides" do before do @ds = Sequel::Dataset.new(nil).from(:items).set_overrides(:x=>1) end @@ -3478,7 +3478,7 @@ def @ds.fetch_rows(sql, &block) end end -context "Sequel::Dataset#qualify" do +describe "Sequel::Dataset#qualify" do specify "should qualify to the given table" do MockDatabase.new[:t].filter{a 2) @ds.meta_def(:supports_modifying_joins?){true} @@ -3947,7 +3947,7 @@ def @ds.fetch_rows(sql) end end -context "Dataset#lock_style and for_update" do +describe "Dataset#lock_style and for_update" do before do @ds = MockDatabase.new[:t] end diff --git a/spec/core/expression_filters_spec.rb b/spec/core/expression_filters_spec.rb index 3eb11f478f..492f8f19d5 100644 --- a/spec/core/expression_filters_spec.rb +++ b/spec/core/expression_filters_spec.rb @@ -3,7 +3,7 @@ Regexp.send(:include, Sequel::SQL::StringMethods) String.send(:include, Sequel::SQL::StringMethods) -context "Blockless Ruby Filters" do +describe "Blockless Ruby Filters" do before do db = Sequel::Database.new db.quote_identifiers = false @@ -481,7 +481,7 @@ def @d.lit(*args) end end -context Sequel::SQL::VirtualRow do +describe Sequel::SQL::VirtualRow do before do db = Sequel::Database.new db.quote_identifiers = true diff --git a/spec/core/schema_spec.rb b/spec/core/schema_spec.rb index ba79c94008..c31d59b1af 100644 --- a/spec/core/schema_spec.rb +++ b/spec/core/schema_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper') -context "DB#create_table" do +describe "DB#create_table" do before do @db = SchemaDummyDatabase.new end @@ -543,7 +543,7 @@ end end -context "DB#create_table!" do +describe "DB#create_table!" do before do @db = SchemaDummyDatabase.new end @@ -554,7 +554,7 @@ end end -context "DB#create_table?" do +describe "DB#create_table?" do before do @db = SchemaDummyDatabase.new end @@ -572,7 +572,7 @@ end end -context "DB#drop_table" do +describe "DB#drop_table" do before do @db = SchemaDummyDatabase.new end @@ -583,7 +583,7 @@ end end -context "DB#alter_table" do +describe "DB#alter_table" do before do @db = SchemaDummyDatabase.new end @@ -763,7 +763,7 @@ end end -context "Schema Parser" do +describe "Schema Parser" do before do @sqls = [] @db = Sequel::Database.new diff --git a/spec/core/version_spec.rb b/spec/core/version_spec.rb index c1beece269..f1a7262af8 100644 --- a/spec/core/version_spec.rb +++ b/spec/core/version_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper') -context "Sequel.version" do +describe "Sequel.version" do specify "should be in the form X.Y.Z with all being numbers" do Sequel.version.should =~ /\A\d+\.\d+\.\d+\z/ end diff --git a/spec/extensions/blank_spec.rb b/spec/extensions/blank_spec.rb index 2a74b23466..e98b7cd854 100644 --- a/spec/extensions/blank_spec.rb +++ b/spec/extensions/blank_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper') -context "Object#blank?" do +describe "Object#blank?" do specify "it should be true if the object responds true to empty?" do [].blank?.should == true {}.blank?.should == true @@ -16,7 +16,7 @@ def o.empty?; true; end end end -context "Numeric#blank?" do +describe "Numeric#blank?" do specify "it should always be false" do 1.blank?.should == false 0.blank?.should == false @@ -31,25 +31,25 @@ def o.empty?; true; end end end -context "NilClass#blank?" do +describe "NilClass#blank?" do specify "it should always be true" do nil.blank?.should == true end end -context "TrueClass#blank?" do +describe "TrueClass#blank?" do specify "it should always be false" do true.blank?.should == false end end -context "FalseClass#blank?" do +describe "FalseClass#blank?" do specify "it should always be true" do false.blank?.should == true end end -context "String#blank?" do +describe "String#blank?" do specify "it should be true if the string is empty" do ''.blank?.should == true end diff --git a/spec/extensions/looser_typecasting_spec.rb b/spec/extensions/looser_typecasting_spec.rb index abffd5ac54..e32d58b2dd 100644 --- a/spec/extensions/looser_typecasting_spec.rb +++ b/spec/extensions/looser_typecasting_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper") -context "LooserTypecasting Extension" do +describe "LooserTypecasting Extension" do before do @db = Sequel::Database.new({}) def @db.schema(*args) diff --git a/spec/extensions/migration_spec.rb b/spec/extensions/migration_spec.rb index e301e5cf32..e5fd1bd42c 100644 --- a/spec/extensions/migration_spec.rb +++ b/spec/extensions/migration_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper') -context "Migration.descendants" do +describe "Migration.descendants" do before do Sequel::Migration.descendants.clear end @@ -28,7 +28,7 @@ end end -context "Migration.apply" do +describe "Migration.apply" do before do @c = Class.new do define_method(:one) {|x| [1111, x]} @@ -57,7 +57,7 @@ end end -context "SimpleMigration#apply" do +describe "SimpleMigration#apply" do before do @c = Class.new do define_method(:one) {|x| [1111, x]} @@ -86,7 +86,7 @@ end end -context "Reversible Migrations with Sequel.migration{change{}}" do +describe "Reversible Migrations with Sequel.migration{change{}}" do before do @c = Class.new do self::AT = Class.new do @@ -193,7 +193,7 @@ def alter_table(*args, &block) end end -context "Sequel::IntegerMigrator" do +describe "Sequel::IntegerMigrator" do before do dbc = Class.new(MockDatabase) do attr_reader :drops, :tables_created, :columns_created, :versions @@ -313,7 +313,7 @@ def table_exists?(name) end end -context "Sequel::TimestampMigrator" do +describe "Sequel::TimestampMigrator" do before do $sequel_migration_version = 0 $sequel_migration_files = [] diff --git a/spec/extensions/pagination_spec.rb b/spec/extensions/pagination_spec.rb index 91b4e023c0..29775c606c 100644 --- a/spec/extensions/pagination_spec.rb +++ b/spec/extensions/pagination_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper") -context "A paginated dataset" do +describe "A paginated dataset" do before do @d = Sequel::Dataset.new(nil) @d.meta_def(:count) {153} @@ -76,7 +76,7 @@ end end -context "Dataset#each_page" do +describe "Dataset#each_page" do before do @d = Sequel::Dataset.new(nil).from(:items) @d.meta_def(:count) {153} diff --git a/spec/extensions/pretty_table_spec.rb b/spec/extensions/pretty_table_spec.rb index d0685397e3..63d0a20da0 100644 --- a/spec/extensions/pretty_table_spec.rb +++ b/spec/extensions/pretty_table_spec.rb @@ -2,7 +2,7 @@ require 'stringio' -context "Dataset#print" do +describe "Dataset#print" do before do @output = StringIO.new @orig_stdout = $stdout @@ -35,7 +35,7 @@ def @dataset.fetch_rows(sql) end end -context "PrettyTable" do +describe "PrettyTable" do before do @data1 = [ {:x => 3, :y => 4} diff --git a/spec/extensions/query_spec.rb b/spec/extensions/query_spec.rb index 03f55df94e..1888615c72 100644 --- a/spec/extensions/query_spec.rb +++ b/spec/extensions/query_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper") -context "Database#dataset" do +describe "Database#dataset" do before do @db = Sequel::Database.new end @@ -12,7 +12,7 @@ end end -context "Dataset#query" do +describe "Dataset#query" do before do @d = Sequel::Dataset.new(nil) end diff --git a/spec/extensions/single_table_inheritance_spec.rb b/spec/extensions/single_table_inheritance_spec.rb index 7dbc480521..6eca7f1326 100644 --- a/spec/extensions/single_table_inheritance_spec.rb +++ b/spec/extensions/single_table_inheritance_spec.rb @@ -114,7 +114,7 @@ class ::StiTestSub1B < StiTestSub1A; end StiTestSub1B.dataset.sql.should == "SELECT * FROM sti_tests WHERE (sti_tests.kind IN ('StiTestSub1B'))" end - context "with custom options" do + describe "with custom options" do before do class ::StiTest2 < Sequel::Model columns :id, :kind diff --git a/spec/extensions/sql_expr_spec.rb b/spec/extensions/sql_expr_spec.rb index cd310514e3..7a30a1ff76 100644 --- a/spec/extensions/sql_expr_spec.rb +++ b/spec/extensions/sql_expr_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper') -context "Sequel sql_expr extension" do +describe "Sequel sql_expr extension" do specify "Object#sql_expr should wrap the object in a GenericComplexExpression" do o = Object.new s = o.sql_expr diff --git a/spec/extensions/string_date_time_spec.rb b/spec/extensions/string_date_time_spec.rb index 1d36353285..69ea850747 100644 --- a/spec/extensions/string_date_time_spec.rb +++ b/spec/extensions/string_date_time_spec.rb @@ -1,6 +1,6 @@ require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper') -context "String#to_time" do +describe "String#to_time" do specify "should convert the string into a Time object" do "2007-07-11".to_time.should == Time.parse("2007-07-11") "06:30".to_time.should == Time.parse("06:30") @@ -11,7 +11,7 @@ end end -context "String#to_date" do +describe "String#to_date" do after do Sequel.convert_two_digit_years = true end @@ -34,7 +34,7 @@ end end -context "String#to_datetime" do +describe "String#to_datetime" do after do Sequel.convert_two_digit_years = true end @@ -57,7 +57,7 @@ end end -context "String#to_sequel_time" do +describe "String#to_sequel_time" do after do Sequel.datetime_class = Time Sequel.convert_two_digit_years = true diff --git a/spec/extensions/validation_class_methods_spec.rb b/spec/extensions/validation_class_methods_spec.rb index 79c13669d2..dbbea426f6 100644 --- a/spec/extensions/validation_class_methods_spec.rb +++ b/spec/extensions/validation_class_methods_spec.rb @@ -583,7 +583,7 @@ def dont_skip; true; end end end -context "Superclass validations" do +describe "Superclass validations" do before do @c1 = Class.new(Sequel::Model) @c1.class_eval do @@ -635,7 +635,7 @@ def dont_skip; true; end end end -context ".validates with block" do +describe ".validates with block" do specify "should support calling .each" do @c = Class.new(Sequel::Model) @c.class_eval do diff --git a/spec/integration/dataset_test.rb b/spec/integration/dataset_test.rb index 631de455ef..4d9610941c 100644 --- a/spec/integration/dataset_test.rb +++ b/spec/integration/dataset_test.rb @@ -191,7 +191,7 @@ end end -context Sequel::Dataset do +describe Sequel::Dataset do before do INTEGRATION_DB.create_table! :items do primary_key :id diff --git a/spec/integration/spec_helper.rb b/spec/integration/spec_helper.rb index 342b813416..dd3c817a87 100644 --- a/spec/integration/spec_helper.rb +++ b/spec/integration/spec_helper.rb @@ -16,7 +16,7 @@ def clear_sqls $sqls.clear end -class Spec::Example::ExampleGroup +(defined?(RSpec) ? RSpec::Core::ExampleGroup : Spec::Example::ExampleGroup).class_eval do def log begin INTEGRATION_DB.loggers << Logger.new(STDOUT) diff --git a/spec/model/model_spec.rb b/spec/model/model_spec.rb index 4abd9bed27..a2f3ec70ab 100644 --- a/spec/model/model_spec.rb +++ b/spec/model/model_spec.rb @@ -511,7 +511,7 @@ def fetch_rows(sql) end end -context "Model#inspect" do +describe "Model#inspect" do before do @o = Sequel::Model.load(:x => 333) end @@ -521,7 +521,7 @@ def fetch_rows(sql) end end -context "Model.db_schema" do +describe "Model.db_schema" do before do @c = Class.new(Sequel::Model(:items)) do def self.columns; orig_columns; end @@ -618,7 +618,7 @@ def @c.columns; [:x]; end end end -context "Model#use_transactions" do +describe "Model#use_transactions" do before do @c = Class.new(Sequel::Model(:items)) end