factory_girl 2.6.2 → 2.6.3
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/Changelog +16 -0
- data/Gemfile.lock +1 -1
- data/features/factory_girl_steps.feature +8 -0
- data/gemfiles/2.3.gemfile.lock +1 -1
- data/gemfiles/3.0.gemfile.lock +1 -1
- data/gemfiles/3.1.gemfile.lock +1 -1
- data/gemfiles/3.2.gemfile.lock +1 -1
- data/lib/factory_girl/factory_runner.rb +2 -0
- data/lib/factory_girl/step_definitions.rb +1 -1
- data/lib/factory_girl/version.rb +1 -1
- data/spec/acceptance/traits_spec.rb +24 -0
- data/spec/support/shared_examples/strategy.rb +2 -0
- metadata +113 -176
data/Changelog
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
2.6.3 (March 9, 2012)
|
2
|
+
Fix issue with traits not being present the first time a factory is accessed
|
3
|
+
Update available Cucumber step definitions to not require a trialing colon
|
4
|
+
when building a table of attributes to instantiate records with
|
5
|
+
|
6
|
+
2.6.2 (March 9, 2012)
|
7
|
+
Allow factories to use all their ancestors' traits
|
8
|
+
Ignore bin dir generated by bundler
|
9
|
+
Namespace ::Factory as top-level to fix vintage syntax issue with
|
10
|
+
Ruby 1.9.2-p3p18
|
11
|
+
|
12
|
+
2.6.1 (March 2, 2012)
|
13
|
+
Use FactoryGirl.reload in specs
|
14
|
+
Clean up running named factories with a particular strategy with
|
15
|
+
FactoryGirl::FactoryRunner
|
16
|
+
|
1
17
|
2.6.0 (February 17, 2012)
|
2
18
|
Improve documentation of has_many associations in the GETTING_STARTED
|
3
19
|
document
|
data/Gemfile.lock
CHANGED
@@ -8,6 +8,14 @@ Feature: Use step definitions generated by factories
|
|
8
8
|
| title | body |
|
9
9
|
| a fun title | here is the content |
|
10
10
|
|
11
|
+
Scenario: create a post and verify its attributes without the trailing colon
|
12
|
+
Given the following post exists
|
13
|
+
| Title | Body |
|
14
|
+
| a fun title | here is the content |
|
15
|
+
Then I should find the following for the last post:
|
16
|
+
| title | body |
|
17
|
+
| a fun title | here is the content |
|
18
|
+
|
11
19
|
Scenario: create a post without a table and verify its attributes
|
12
20
|
Given a post exists with a title of "a fun title"
|
13
21
|
Then I should find the following for the last post:
|
data/gemfiles/2.3.gemfile.lock
CHANGED
data/gemfiles/3.0.gemfile.lock
CHANGED
data/gemfiles/3.1.gemfile.lock
CHANGED
data/gemfiles/3.2.gemfile.lock
CHANGED
@@ -97,7 +97,7 @@ World(FactoryGirlStepHelpers)
|
|
97
97
|
FactoryGirl.factories.each do |factory|
|
98
98
|
factory.compile
|
99
99
|
factory.human_names.each do |human_name|
|
100
|
-
Given /^the following (?:#{human_name}|#{human_name.pluralize}) exists
|
100
|
+
Given /^the following (?:#{human_name}|#{human_name.pluralize}) exists?:?$/i do |table|
|
101
101
|
table.hashes.each do |human_hash|
|
102
102
|
attributes = convert_human_hash_to_attribute_hash(human_hash, factory.associations)
|
103
103
|
FactoryGirl.create(factory.name, attributes)
|
data/lib/factory_girl/version.rb
CHANGED
@@ -395,3 +395,27 @@ describe "inline traits overriding existing attributes" do
|
|
395
395
|
FactoryGirl.build(:extended_declined_user, :accepted, :status => "completely overridden").status.should == "completely overridden"
|
396
396
|
end
|
397
397
|
end
|
398
|
+
|
399
|
+
describe "making sure the factory is properly compiled the first time we want to instantiate it" do
|
400
|
+
before do
|
401
|
+
define_model("User", :role => :string, :gender => :string, :age => :integer)
|
402
|
+
|
403
|
+
FactoryGirl.define do
|
404
|
+
factory :user do
|
405
|
+
trait(:female) { gender "female" }
|
406
|
+
trait(:admin) { role "admin" }
|
407
|
+
|
408
|
+
factory :female_user do
|
409
|
+
female
|
410
|
+
end
|
411
|
+
end
|
412
|
+
end
|
413
|
+
end
|
414
|
+
|
415
|
+
it "can honor traits on the very first call" do
|
416
|
+
user = FactoryGirl.build(:female_user, :admin, :age => 30)
|
417
|
+
user.gender.should == 'female'
|
418
|
+
user.age.should == 30
|
419
|
+
user.role.should == 'admin'
|
420
|
+
end
|
421
|
+
end
|
@@ -27,6 +27,7 @@ shared_examples_for "strategy with association support" do |factory_girl_strateg
|
|
27
27
|
|
28
28
|
before do
|
29
29
|
FactoryGirl.stubs(:factory_by_name => factory)
|
30
|
+
factory.stubs(:compile)
|
30
31
|
factory.stubs(:run)
|
31
32
|
end
|
32
33
|
|
@@ -52,6 +53,7 @@ shared_examples_for "strategy with :strategy => :build" do |factory_girl_strateg
|
|
52
53
|
|
53
54
|
before do
|
54
55
|
FactoryGirl.stubs(:factory_by_name => factory)
|
56
|
+
factory.stubs(:compile)
|
55
57
|
factory.stubs(:run)
|
56
58
|
end
|
57
59
|
|
metadata
CHANGED
@@ -1,209 +1,156 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: factory_girl
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.6.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 6
|
9
|
-
- 2
|
10
|
-
version: 2.6.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Joe Ferris
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-03-09 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: activesupport
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70304756543100 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 17
|
29
|
-
segments:
|
30
|
-
- 2
|
31
|
-
- 3
|
32
|
-
- 9
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 2.3.9
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rspec
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: *70304756543100
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &70304756359060 !ruby/object:Gem::Requirement
|
40
28
|
none: false
|
41
|
-
requirements:
|
29
|
+
requirements:
|
42
30
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
segments:
|
46
|
-
- 2
|
47
|
-
- 0
|
48
|
-
version: "2.0"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '2.0'
|
49
33
|
type: :development
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: cucumber
|
53
34
|
prerelease: false
|
54
|
-
|
35
|
+
version_requirements: *70304756359060
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: cucumber
|
38
|
+
requirement: &70304756358440 !ruby/object:Gem::Requirement
|
55
39
|
none: false
|
56
|
-
requirements:
|
40
|
+
requirements:
|
57
41
|
- - ~>
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
hash: 23
|
60
|
-
segments:
|
61
|
-
- 1
|
62
|
-
- 0
|
63
|
-
- 0
|
42
|
+
- !ruby/object:Gem::Version
|
64
43
|
version: 1.0.0
|
65
44
|
type: :development
|
66
|
-
version_requirements: *id003
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: timecop
|
69
45
|
prerelease: false
|
70
|
-
|
46
|
+
version_requirements: *70304756358440
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: timecop
|
49
|
+
requirement: &70304756357920 !ruby/object:Gem::Requirement
|
71
50
|
none: false
|
72
|
-
requirements:
|
73
|
-
- -
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
segments:
|
77
|
-
- 0
|
78
|
-
version: "0"
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
79
55
|
type: :development
|
80
|
-
version_requirements: *id004
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: rcov
|
83
56
|
prerelease: false
|
84
|
-
|
57
|
+
version_requirements: *70304756357920
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rcov
|
60
|
+
requirement: &70304756356480 !ruby/object:Gem::Requirement
|
85
61
|
none: false
|
86
|
-
requirements:
|
87
|
-
- -
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
|
90
|
-
segments:
|
91
|
-
- 0
|
92
|
-
version: "0"
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
93
66
|
type: :development
|
94
|
-
version_requirements: *id005
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: aruba
|
97
67
|
prerelease: false
|
98
|
-
|
68
|
+
version_requirements: *70304756356480
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: aruba
|
71
|
+
requirement: &70304756355320 !ruby/object:Gem::Requirement
|
99
72
|
none: false
|
100
|
-
requirements:
|
101
|
-
- -
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
|
104
|
-
segments:
|
105
|
-
- 0
|
106
|
-
version: "0"
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
107
77
|
type: :development
|
108
|
-
version_requirements: *id006
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
name: mocha
|
111
78
|
prerelease: false
|
112
|
-
|
79
|
+
version_requirements: *70304756355320
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: mocha
|
82
|
+
requirement: &70304756353280 !ruby/object:Gem::Requirement
|
113
83
|
none: false
|
114
|
-
requirements:
|
115
|
-
- -
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
|
118
|
-
segments:
|
119
|
-
- 0
|
120
|
-
version: "0"
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
121
88
|
type: :development
|
122
|
-
version_requirements: *id007
|
123
|
-
- !ruby/object:Gem::Dependency
|
124
|
-
name: bourne
|
125
89
|
prerelease: false
|
126
|
-
|
90
|
+
version_requirements: *70304756353280
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: bourne
|
93
|
+
requirement: &70304756351660 !ruby/object:Gem::Requirement
|
127
94
|
none: false
|
128
|
-
requirements:
|
129
|
-
- -
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
|
132
|
-
segments:
|
133
|
-
- 0
|
134
|
-
version: "0"
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
135
99
|
type: :development
|
136
|
-
version_requirements: *id008
|
137
|
-
- !ruby/object:Gem::Dependency
|
138
|
-
name: appraisal
|
139
100
|
prerelease: false
|
140
|
-
|
101
|
+
version_requirements: *70304756351660
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: appraisal
|
104
|
+
requirement: &70304756397340 !ruby/object:Gem::Requirement
|
141
105
|
none: false
|
142
|
-
requirements:
|
106
|
+
requirements:
|
143
107
|
- - ~>
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
hash: 3
|
146
|
-
segments:
|
147
|
-
- 0
|
148
|
-
- 3
|
149
|
-
- 8
|
108
|
+
- !ruby/object:Gem::Version
|
150
109
|
version: 0.3.8
|
151
110
|
type: :development
|
152
|
-
version_requirements: *id009
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: sqlite3-ruby
|
155
111
|
prerelease: false
|
156
|
-
|
112
|
+
version_requirements: *70304756397340
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: sqlite3-ruby
|
115
|
+
requirement: &70304756396380 !ruby/object:Gem::Requirement
|
157
116
|
none: false
|
158
|
-
requirements:
|
159
|
-
- -
|
160
|
-
- !ruby/object:Gem::Version
|
161
|
-
|
162
|
-
segments:
|
163
|
-
- 0
|
164
|
-
version: "0"
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
165
121
|
type: :development
|
166
|
-
version_requirements: *id010
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: yard
|
169
122
|
prerelease: false
|
170
|
-
|
123
|
+
version_requirements: *70304756396380
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: yard
|
126
|
+
requirement: &70304756394680 !ruby/object:Gem::Requirement
|
171
127
|
none: false
|
172
|
-
requirements:
|
173
|
-
- -
|
174
|
-
- !ruby/object:Gem::Version
|
175
|
-
|
176
|
-
segments:
|
177
|
-
- 0
|
178
|
-
version: "0"
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
179
132
|
type: :development
|
180
|
-
version_requirements: *id011
|
181
|
-
- !ruby/object:Gem::Dependency
|
182
|
-
name: bluecloth
|
183
133
|
prerelease: false
|
184
|
-
|
134
|
+
version_requirements: *70304756394680
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: bluecloth
|
137
|
+
requirement: &70304756393520 !ruby/object:Gem::Requirement
|
185
138
|
none: false
|
186
|
-
requirements:
|
187
|
-
- -
|
188
|
-
- !ruby/object:Gem::Version
|
189
|
-
|
190
|
-
segments:
|
191
|
-
- 0
|
192
|
-
version: "0"
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
193
143
|
type: :development
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
144
|
+
prerelease: false
|
145
|
+
version_requirements: *70304756393520
|
146
|
+
description: ! "factory_girl provides a framework and DSL for defining and\n using
|
147
|
+
factories - less error-prone, more explicit, and\n all-around
|
148
|
+
easier to work with than fixtures."
|
199
149
|
email: jferris@thoughtbot.com
|
200
150
|
executables: []
|
201
|
-
|
202
151
|
extensions: []
|
203
|
-
|
204
152
|
extra_rdoc_files: []
|
205
|
-
|
206
|
-
files:
|
153
|
+
files:
|
207
154
|
- .autotest
|
208
155
|
- .gitignore
|
209
156
|
- .rspec
|
@@ -348,40 +295,30 @@ files:
|
|
348
295
|
- spec/support/shared_examples/strategy.rb
|
349
296
|
homepage: https://github.com/thoughtbot/factory_girl
|
350
297
|
licenses: []
|
351
|
-
|
352
298
|
post_install_message:
|
353
299
|
rdoc_options: []
|
354
|
-
|
355
|
-
require_paths:
|
300
|
+
require_paths:
|
356
301
|
- lib
|
357
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
302
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
358
303
|
none: false
|
359
|
-
requirements:
|
360
|
-
- -
|
361
|
-
- !ruby/object:Gem::Version
|
362
|
-
hash: 57
|
363
|
-
segments:
|
364
|
-
- 1
|
365
|
-
- 8
|
366
|
-
- 7
|
304
|
+
requirements:
|
305
|
+
- - ! '>='
|
306
|
+
- !ruby/object:Gem::Version
|
367
307
|
version: 1.8.7
|
368
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
308
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
369
309
|
none: false
|
370
|
-
requirements:
|
371
|
-
- -
|
372
|
-
- !ruby/object:Gem::Version
|
373
|
-
|
374
|
-
segments:
|
375
|
-
- 0
|
376
|
-
version: "0"
|
310
|
+
requirements:
|
311
|
+
- - ! '>='
|
312
|
+
- !ruby/object:Gem::Version
|
313
|
+
version: '0'
|
377
314
|
requirements: []
|
378
|
-
|
379
315
|
rubyforge_project:
|
380
316
|
rubygems_version: 1.8.16
|
381
317
|
signing_key:
|
382
318
|
specification_version: 3
|
383
|
-
summary: factory_girl provides a framework and DSL for defining and using model instance
|
384
|
-
|
319
|
+
summary: factory_girl provides a framework and DSL for defining and using model instance
|
320
|
+
factories.
|
321
|
+
test_files:
|
385
322
|
- Appraisals
|
386
323
|
- features/factory_girl_steps.feature
|
387
324
|
- features/find_definitions.feature
|