From b435f04528c1107708f52f6110c7bce63fe6f37e Mon Sep 17 00:00:00 2001 From: Dan Peterson Date: Fri, 23 Nov 2007 21:06:46 -0700 Subject: fix socket argument to AR and add rails spec --- spec/unit/rails.rb | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 spec/unit/rails.rb (limited to 'spec/unit') diff --git a/spec/unit/rails.rb b/spec/unit/rails.rb new file mode 100644 index 000000000..9ffb4b537 --- /dev/null +++ b/spec/unit/rails.rb @@ -0,0 +1,47 @@ +#!/usr/bin/env ruby + +require File.dirname(__FILE__) + '/../spec_helper' +require 'puppet/rails' + +describe Puppet::Rails, " when using sqlite3" do + setup do + @old_adapter = Puppet[:dbadapter] + @old_dbsocket = Puppet[:dbsocket] + + Puppet[:dbadapter] = "sqlite3" + end + + teardown do + Puppet[:dbadapter] = @old_adapter + Puppet[:dbsocket] = @old_dbsocket + end + + it "should ignore the database socket argument" do + Puppet[:dbsocket] = "blah" + Puppet::Rails.database_arguments[:socket].should be_nil + end +end + +describe Puppet::Rails, " when not using sqlite3" do + setup do + @old_adapter = Puppet[:dbadapter] + @old_dbsocket = Puppet[:dbsocket] + + Puppet[:dbadapter] = "mysql" + end + + teardown do + Puppet[:dbadapter] = @old_adapter + Puppet[:dbsocket] = @old_dbsocket + end + + it "should set the dbsocket argument if not empty " do + Puppet[:dbsocket] = "blah" + Puppet::Rails.database_arguments[:socket].should == "blah" + end + + it "should not set the dbsocket argument if empty" do + Puppet[:dbsocket] = "" + Puppet::Rails.database_arguments[:socket].should be_nil + end +end \ No newline at end of file -- cgit From e69e0c32031e297ae62dd822a925b38e93bdd84f Mon Sep 17 00:00:00 2001 From: Dan Peterson Date: Fri, 23 Nov 2007 21:47:20 -0700 Subject: fix spacing --- spec/unit/rails.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'spec/unit') diff --git a/spec/unit/rails.rb b/spec/unit/rails.rb index 9ffb4b537..41fc3a11e 100644 --- a/spec/unit/rails.rb +++ b/spec/unit/rails.rb @@ -13,7 +13,7 @@ describe Puppet::Rails, " when using sqlite3" do teardown do Puppet[:dbadapter] = @old_adapter - Puppet[:dbsocket] = @old_dbsocket + Puppet[:dbsocket] = @old_dbsocket end it "should ignore the database socket argument" do @@ -24,7 +24,7 @@ end describe Puppet::Rails, " when not using sqlite3" do setup do - @old_adapter = Puppet[:dbadapter] + @old_adapter = Puppet[:dbadapter] @old_dbsocket = Puppet[:dbsocket] Puppet[:dbadapter] = "mysql" @@ -32,7 +32,7 @@ describe Puppet::Rails, " when not using sqlite3" do teardown do Puppet[:dbadapter] = @old_adapter - Puppet[:dbsocket] = @old_dbsocket + Puppet[:dbsocket] = @old_dbsocket end it "should set the dbsocket argument if not empty " do -- cgit From c19d08a37632410b1835350dfaacedde974b1003 Mon Sep 17 00:00:00 2001 From: Dan Peterson Date: Fri, 23 Nov 2007 22:12:15 -0700 Subject: mock all use of Puppet[] in Puppet::Rails.database_arguments --- spec/unit/rails.rb | 61 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 26 deletions(-) (limited to 'spec/unit') diff --git a/spec/unit/rails.rb b/spec/unit/rails.rb index 41fc3a11e..76fb311c5 100644 --- a/spec/unit/rails.rb +++ b/spec/unit/rails.rb @@ -5,43 +5,52 @@ require 'puppet/rails' describe Puppet::Rails, " when using sqlite3" do setup do - @old_adapter = Puppet[:dbadapter] - @old_dbsocket = Puppet[:dbsocket] - - Puppet[:dbadapter] = "sqlite3" - end - - teardown do - Puppet[:dbadapter] = @old_adapter - Puppet[:dbsocket] = @old_dbsocket + expectation_setup end it "should ignore the database socket argument" do - Puppet[:dbsocket] = "blah" Puppet::Rails.database_arguments[:socket].should be_nil end + + private + def expectation_setup(extra = {}) + arguments_and_results = { + :dbadapter => "sqlite3", + :rails_loglevel => "testlevel", + :dblocation => "testlocation" + }.merge(extra) + + arguments_and_results.each do |argument, result| + Puppet.settings.expects(:value).with(argument).returns(result) + end + end end describe Puppet::Rails, " when not using sqlite3" do - setup do - @old_adapter = Puppet[:dbadapter] - @old_dbsocket = Puppet[:dbsocket] - - Puppet[:dbadapter] = "mysql" - end - - teardown do - Puppet[:dbadapter] = @old_adapter - Puppet[:dbsocket] = @old_dbsocket - end - - it "should set the dbsocket argument if not empty " do - Puppet[:dbsocket] = "blah" - Puppet::Rails.database_arguments[:socket].should == "blah" + it "should set the dbsocket argument if not empty" do + expectation_setup + Puppet::Rails.database_arguments[:socket].should == "testsocket" end it "should not set the dbsocket argument if empty" do - Puppet[:dbsocket] = "" + expectation_setup(:dbsocket => "") Puppet::Rails.database_arguments[:socket].should be_nil end + + private + def expectation_setup(extra = {}) + arguments_and_results = { + :dbadapter => "mysql", + :rails_loglevel => "testlevel", + :dbserver => "testserver", + :dbuser => "testuser", + :dbpassword => "testpassword", + :dbname => "testdb", + :dbsocket => "testsocket" + }.merge(extra) + + arguments_and_results.each do |argument, result| + Puppet.settings.expects(:value).with(argument).returns(result) + end + end end \ No newline at end of file -- cgit From 7f1b2d658d42bd7fcbd38da157f5e9eedf44fbf2 Mon Sep 17 00:00:00 2001 From: Dan Peterson Date: Sat, 24 Nov 2007 13:55:58 -0700 Subject: change up rails specs again with Luke's help --- spec/unit/rails.rb | 120 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 79 insertions(+), 41 deletions(-) (limited to 'spec/unit') diff --git a/spec/unit/rails.rb b/spec/unit/rails.rb index 76fb311c5..426479fce 100644 --- a/spec/unit/rails.rb +++ b/spec/unit/rails.rb @@ -3,54 +3,92 @@ require File.dirname(__FILE__) + '/../spec_helper' require 'puppet/rails' -describe Puppet::Rails, " when using sqlite3" do - setup do - expectation_setup +describe Puppet::Rails, "when initializing any connection" do + it "should use settings" do + Puppet.settings.expects(:use).with(:main, :rails, :puppetmasterd) + + Puppet::Rails.connect end - it "should ignore the database socket argument" do - Puppet::Rails.database_arguments[:socket].should be_nil + it "should set up a logger" do + ActiveRecord::Base.expects(:logger=) + + Puppet::Rails.connect end - private - def expectation_setup(extra = {}) - arguments_and_results = { - :dbadapter => "sqlite3", - :rails_loglevel => "testlevel", - :dblocation => "testlocation" - }.merge(extra) - - arguments_and_results.each do |argument, result| - Puppet.settings.expects(:value).with(argument).returns(result) - end - end + it "should set the log level" + + it "should set ActiveRecord::Base.allow_concurrency" do + ActiveRecord::Base.expects(:allow_concurrency=).with(true) + + Puppet::Rails.connect + end + + it "should call ActiveRecord::Base.verify_active_connections!" do + ActiveRecord::Base.expects(:verify_active_connections!) + + Puppet::Rails.connect + end + + it "should call ActiveRecord::Base.establish_connection with database_arguments" do + Puppet::Rails.expects(:database_arguments) + ActiveRecord::Base.expects(:establish_connection) + + Puppet::Rails.connect + end end -describe Puppet::Rails, " when not using sqlite3" do - it "should set the dbsocket argument if not empty" do - expectation_setup - Puppet::Rails.database_arguments[:socket].should == "testsocket" +describe Puppet::Rails, "when initializing a sqlite3 connection" do + it "should provide the adapter, log_level, and dbfile arguments" do + Puppet.settings.expects(:value).with(:dbadapter).returns("sqlite3") + Puppet.settings.expects(:value).with(:rails_loglevel).returns("testlevel") + Puppet.settings.expects(:value).with(:dblocation).returns("testlocation") + + Puppet::Rails.database_arguments.should == { + :adapter => "sqlite3", + :log_level => "testlevel", + :dbfile => "testlocation" + } end - - it "should not set the dbsocket argument if empty" do - expectation_setup(:dbsocket => "") - Puppet::Rails.database_arguments[:socket].should be_nil +end + +describe Puppet::Rails, "when initializing a mysql or postgresql connection" do + it "should provide the adapter, log_level, and host, username, password, and database arguments" do + Puppet.settings.expects(:value).with(:dbadapter).returns("mysql") + Puppet.settings.expects(:value).with(:rails_loglevel).returns("testlevel") + Puppet.settings.expects(:value).with(:dbserver).returns("testserver") + Puppet.settings.expects(:value).with(:dbuser).returns("testuser") + Puppet.settings.expects(:value).with(:dbpassword).returns("testpassword") + Puppet.settings.expects(:value).with(:dbname).returns("testname") + Puppet.settings.expects(:value).with(:dbsocket).returns("") + + Puppet::Rails.database_arguments.should == { + :adapter => "mysql", + :log_level => "testlevel", + :host => "testserver", + :username => "testuser", + :password => "testpassword", + :database => "testname" + } end - private - def expectation_setup(extra = {}) - arguments_and_results = { - :dbadapter => "mysql", - :rails_loglevel => "testlevel", - :dbserver => "testserver", - :dbuser => "testuser", - :dbpassword => "testpassword", - :dbname => "testdb", - :dbsocket => "testsocket" - }.merge(extra) - - arguments_and_results.each do |argument, result| - Puppet.settings.expects(:value).with(argument).returns(result) - end - end + it "should provide the adapter, log_level, and host, username, password, database, and socket arguments" do + Puppet.settings.expects(:value).with(:dbadapter).returns("mysql") + Puppet.settings.expects(:value).with(:rails_loglevel).returns("testlevel") + Puppet.settings.expects(:value).with(:dbserver).returns("testserver") + Puppet.settings.expects(:value).with(:dbuser).returns("testuser") + Puppet.settings.expects(:value).with(:dbpassword).returns("testpassword") + Puppet.settings.expects(:value).with(:dbname).returns("testname") + Puppet.settings.expects(:value).with(:dbsocket).returns("testsocket") + + Puppet::Rails.database_arguments.should == { + :adapter => "mysql", + :log_level => "testlevel", + :host => "testserver", + :username => "testuser", + :password => "testpassword", + :database => "testname", + :socket => "testsocket" + } + end end \ No newline at end of file -- cgit