blueprints 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/blueprints.rb +11 -5
- data/spec/{blueprints.rb → active_record/blueprints.rb} +0 -0
- data/spec/{blueprints_spec.rb → active_record/blueprints_spec.rb} +14 -3
- data/spec/{db → active_record/fixtures}/database.yml.example +0 -0
- data/spec/{db → active_record/fixtures}/fruit.rb +0 -0
- data/spec/{db → active_record/fixtures}/schema.rb +0 -0
- data/spec/active_record/fixtures/tree.rb +4 -0
- data/spec/{spec_helper.rb → active_record/spec_helper.rb} +5 -5
- data/spec/no_db/blueprints.rb +7 -0
- data/spec/no_db/blueprints_spec.rb +26 -0
- data/spec/no_db/fixtures/fruit.rb +8 -0
- data/spec/no_db/spec_helper.rb +10 -0
- metadata +13 -8
data/lib/blueprints.rb
CHANGED
@@ -3,7 +3,6 @@ require File.join(File.dirname(__FILE__), 'blueprints/plan')
|
|
3
3
|
require File.join(File.dirname(__FILE__), 'blueprints/file_context')
|
4
4
|
require File.join(File.dirname(__FILE__), 'blueprints/helper')
|
5
5
|
require File.join(File.dirname(__FILE__), 'blueprints/errors')
|
6
|
-
require File.join(File.dirname(__FILE__), 'blueprints/ar_extensions') if defined?(ActiveRecord)
|
7
6
|
if defined? Spec or $0 =~ /script.spec$/
|
8
7
|
require File.join(File.dirname(__FILE__), 'blueprints/rspec_extensions')
|
9
8
|
else
|
@@ -17,6 +16,7 @@ module Blueprints
|
|
17
16
|
["#{path}.rb", File.join(path, "*.rb")]
|
18
17
|
end
|
19
18
|
end.flatten
|
19
|
+
SUPPORTED_ORMS = [:none, :active_record]
|
20
20
|
|
21
21
|
DELETE_POLICIES = {:delete => "DELETE FROM %s", :truncate => "TRUNCATE %s"}
|
22
22
|
|
@@ -27,7 +27,7 @@ module Blueprints
|
|
27
27
|
def self.setup(current_context)
|
28
28
|
Plan.setup
|
29
29
|
Plan.copy_ivars(current_context)
|
30
|
-
|
30
|
+
unless @@orm == :none
|
31
31
|
ActiveRecord::Base.connection.increment_open_transactions
|
32
32
|
ActiveRecord::Base.connection.transaction_joinable = false
|
33
33
|
ActiveRecord::Base.connection.begin_db_transaction
|
@@ -35,16 +35,22 @@ module Blueprints
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def self.teardown
|
38
|
-
|
38
|
+
unless @@orm == :none
|
39
39
|
ActiveRecord::Base.connection.rollback_db_transaction
|
40
40
|
ActiveRecord::Base.connection.decrement_open_transactions
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
def self.load(options = {})
|
45
|
-
options.assert_valid_keys(:delete_policy, :filename, :prebuild, :root)
|
45
|
+
options.assert_valid_keys(:delete_policy, :filename, :prebuild, :root, :orm)
|
46
|
+
options.symbolize_keys!
|
46
47
|
return unless Plan.plans.empty?
|
47
48
|
|
49
|
+
@@orm = (options.delete(:orm) || :active_record).to_sym
|
50
|
+
raise ArgumentError, "Unsupported ORM #{@@orm}. Blueprints supports only #{SUPPORTED_ORMS.join(', ')}" unless SUPPORTED_ORMS.include?(@@orm)
|
51
|
+
|
52
|
+
require File.join(File.dirname(__FILE__), 'blueprints', 'ar_extensions') unless @@orm == :none
|
53
|
+
|
48
54
|
@@delete_sql = DELETE_POLICIES[options[:delete_policy]] || DELETE_POLICIES[:delete]
|
49
55
|
delete_tables
|
50
56
|
@@framework_root = options[:root] if options[:root]
|
@@ -68,7 +74,7 @@ module Blueprints
|
|
68
74
|
end
|
69
75
|
|
70
76
|
def self.delete_tables(*args)
|
71
|
-
|
77
|
+
unless @@orm == :none
|
72
78
|
args = tables if args.blank?
|
73
79
|
args.each { |t| ActiveRecord::Base.connection.delete(@@delete_sql % t) }
|
74
80
|
end
|
File without changes
|
@@ -1,9 +1,13 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/spec_helper'
|
2
2
|
|
3
3
|
describe Blueprints do
|
4
|
-
describe "
|
4
|
+
describe "constants" do
|
5
5
|
it "should be loaded from specified dirs" do
|
6
|
-
Blueprints::PLAN_FILES.should == ["blueprint.rb", "blueprint/*.rb", "blueprints.rb", "blueprints/*.rb", "spec/blueprint.rb", "spec/blueprint/*.rb", "spec/blueprints.rb", "spec/blueprints/*.rb", "test/blueprint.rb", "test/blueprint/*.rb", "test/blueprints.rb", "test/blueprints/*.rb"]
|
6
|
+
Blueprints::PLAN_FILES.should == ["blueprint.rb", "blueprint/*.rb", "blueprints.rb", "blueprints/*.rb", "spec/blueprint.rb", "spec/blueprint/*.rb", "spec/blueprints.rb", "spec/blueprints/*.rb", "test/blueprint.rb", "test/blueprint/*.rb", "test/blueprints.rb", "test/blueprints/*.rb"]
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should support required ORMS" do
|
10
|
+
Blueprints::SUPPORTED_ORMS.should == [:none, :active_record]
|
7
11
|
end
|
8
12
|
end
|
9
13
|
|
@@ -189,7 +193,7 @@ describe Blueprints do
|
|
189
193
|
build :not_existing
|
190
194
|
}.should raise_error(Blueprints::PlanNotFoundError, "Plan(s) not found 'not_existing'")
|
191
195
|
end
|
192
|
-
|
196
|
+
|
193
197
|
it 'should raise ScenarioNotFoundError when scenario parent could not be found' do
|
194
198
|
lambda {
|
195
199
|
build :parent_not_existing
|
@@ -201,6 +205,13 @@ describe Blueprints do
|
|
201
205
|
Blueprints::Plan.new(1)
|
202
206
|
}.should raise_error(TypeError, "Pass plan names as strings or symbols only, cannot build plan 1")
|
203
207
|
end
|
208
|
+
|
209
|
+
it "should raise ArgumentError when unknown ORM specified" do
|
210
|
+
Blueprints::Plan.plans.expects(:empty?).returns(true)
|
211
|
+
lambda {
|
212
|
+
Blueprints.load(:orm => :unknown)
|
213
|
+
}.should raise_error(ArgumentError, "Unsupported ORM unknown. Blueprints supports only none, active_record")
|
214
|
+
end
|
204
215
|
end
|
205
216
|
|
206
217
|
describe 'with active record blueprints extensions' do
|
File without changes
|
File without changes
|
File without changes
|
@@ -5,20 +5,20 @@ begin
|
|
5
5
|
rescue LoadError
|
6
6
|
end
|
7
7
|
|
8
|
-
Dir.chdir File.join(File.dirname(__FILE__), '..')
|
8
|
+
Dir.chdir File.join(File.dirname(__FILE__), '..', '..')
|
9
9
|
|
10
10
|
ActiveRecord::Base.logger = Logger.new("debug.log")
|
11
11
|
|
12
|
-
databases = YAML::load(IO.read("spec/
|
12
|
+
databases = YAML::load(IO.read("spec/active_record/fixtures/database.yml"))
|
13
13
|
db_info = databases[ENV["DB"] || "test"]
|
14
14
|
ActiveRecord::Base.establish_connection(db_info)
|
15
15
|
|
16
16
|
require 'spec/autorun'
|
17
17
|
require 'lib/blueprints'
|
18
|
-
require 'spec/
|
19
|
-
require 'spec/
|
18
|
+
require 'spec/active_record/fixtures/fruit'
|
19
|
+
require 'spec/active_record/fixtures/tree'
|
20
20
|
|
21
21
|
Spec::Runner.configure do |config|
|
22
22
|
config.mock_with :mocha
|
23
|
-
config.enable_blueprints :root => File.expand_path(File.join(File.dirname(__FILE__)
|
23
|
+
config.enable_blueprints :root => File.expand_path(File.join(File.dirname(__FILE__))), :prebuild => :big_cherry
|
24
24
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'spec_helper')
|
2
|
+
|
3
|
+
describe Blueprints do
|
4
|
+
it "should build cherry blueprint" do
|
5
|
+
build :cherry
|
6
|
+
@cherry.should_not be_nil
|
7
|
+
@cherry.should be_instance_of(Fruit)
|
8
|
+
@cherry.species.should == 'cherry'
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should not build cherry if not asked" do
|
12
|
+
@cherry.should == nil
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "prebuilt blueprints" do
|
16
|
+
it "big cherry should have size of 10 even if it was changed in test below" do
|
17
|
+
@big_cherry.size.should == 10
|
18
|
+
@big_cherry.size = 15
|
19
|
+
end
|
20
|
+
|
21
|
+
it "big cherry should have size of 10 even if it was changed in test above" do
|
22
|
+
@big_cherry.size.should == 10
|
23
|
+
@big_cherry.size = 13
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Dir.chdir File.join(File.dirname(__FILE__), '..', '..')
|
2
|
+
|
3
|
+
require 'spec/autorun'
|
4
|
+
require 'lib/blueprints'
|
5
|
+
require 'spec/no_db/fixtures/fruit'
|
6
|
+
|
7
|
+
Spec::Runner.configure do |config|
|
8
|
+
config.mock_with :mocha
|
9
|
+
config.enable_blueprints :root => File.expand_path(File.join(File.dirname(__FILE__))), :prebuild => :big_cherry, :orm => :none
|
10
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blueprints
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrius Chamentauskas
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-11 00:00:00 +03:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -70,11 +70,16 @@ signing_key:
|
|
70
70
|
specification_version: 3
|
71
71
|
summary: Another replacement for factories and fixtures
|
72
72
|
test_files:
|
73
|
-
- spec/spec_helper.rb
|
74
|
-
- spec/blueprints_spec.rb
|
75
|
-
- spec/blueprints.rb
|
76
|
-
- spec/
|
77
|
-
- spec/
|
78
|
-
- spec/
|
73
|
+
- spec/no_db/spec_helper.rb
|
74
|
+
- spec/no_db/blueprints_spec.rb
|
75
|
+
- spec/no_db/blueprints.rb
|
76
|
+
- spec/no_db/fixtures/fruit.rb
|
77
|
+
- spec/active_record/spec_helper.rb
|
78
|
+
- spec/active_record/blueprints_spec.rb
|
79
|
+
- spec/active_record/blueprints.rb
|
80
|
+
- spec/active_record/fixtures/fruit.rb
|
81
|
+
- spec/active_record/fixtures/tree.rb
|
82
|
+
- spec/active_record/fixtures/database.yml.example
|
83
|
+
- spec/active_record/fixtures/schema.rb
|
79
84
|
- test/test_helper.rb
|
80
85
|
- test/blueprints_test.rb
|