pickle 0.5.4 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7e7168521d6d499e30be9d1fec65880ef854e0e9
4
- data.tar.gz: 8708853820e50391f50f23ce5bb07fec56b3edc4
2
+ SHA256:
3
+ metadata.gz: 102419954ec2e775d587cba02b8b224fef878fc42c90ebe826c10428f5656883
4
+ data.tar.gz: 9f11eded1fa3778e55f8959de6288ed4c5a5b48f38b5faf6ba30449861548f8f
5
5
  SHA512:
6
- metadata.gz: 0cae7674d31fbba4431d990edc9c179159a3036725df417898d55197941a4b81edf65ca7125f85c622c35527cbac0d7aafbbe39c9942037d4dc88916fe117d0d
7
- data.tar.gz: d247e0339a2254ab3c377160162213ff83c26f077cae65cef833ba67113eb44968e04c380e2d52f1e0642961d498c2cdbbbe27615ef3339146b8e3a7f78b43da
6
+ metadata.gz: 414987a1c3daa241ecab8f4d1bdb9878c7d72e35c6f5bb39d11f9d06be8d43da585df72ed8771d28c94cd0f9e4d8e3d01c43f918529dd0512b70c4f42cbcfe2b
7
+ data.tar.gz: 6492c3737c4538f91408609f481d82600323b1a3fa67bb45e0df4fcf5d5877eab17f4d463a820f5ee5e383a83ee4651a99a93179e22fe9821a38a3173e76e27f
@@ -0,0 +1,65 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: build
9
+
10
+ on: [push, pull_request]
11
+
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-20.04
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ ruby:
19
+ - 3.0
20
+ - 2.7
21
+ - 2.6
22
+ - 2.5
23
+ gemfile:
24
+ # Cucumber 3.2+
25
+ - Gemfile-rails.4.2.x
26
+ - Gemfile-rails.5.0.x
27
+ - Gemfile-rails.5.1.x
28
+ - Gemfile-rails.5.2.x
29
+ - Gemfile-rails.6.0.x-cukes-3
30
+ - Gemfile-rails.6.1.x-cukes-3
31
+ # Cucumber 4.1+
32
+ - Gemfile-rails.5.2.x-cukes-4
33
+ - Gemfile-rails.6.0.x-cukes-4
34
+ # Cucumber 5.3+
35
+ - Gemfile-rails.5.2.x-cukes-5
36
+ - Gemfile-rails.6.0.x-cukes-5
37
+ - Gemfile-rails.6.1.x-cukes-5
38
+ # Cucumber 6
39
+ - Gemfile-rails.6.0.x-cukes-6
40
+ - Gemfile-rails.6.1.x-cukes-6
41
+ # Cucumber 7
42
+ - Gemfile-rails.6.0.x-cukes-7
43
+ - Gemfile-rails.6.1.x-cukes-7
44
+ # Edge
45
+ - Gemfile-rails.edge
46
+ exclude:
47
+ # Rails edge is now 7.x and requires ruby 2.7
48
+ - gemfile: Gemfile-rails.edge
49
+ ruby: 2.6
50
+ - gemfile: Gemfile-rails.edge
51
+ ruby: 2.5
52
+ - gemfile: Gemfile-rails.4.2.x
53
+ ruby: 2.7
54
+ - gemfile: Gemfile-rails.4.2.x
55
+ ruby: 3.0
56
+
57
+ env:
58
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}
59
+ steps:
60
+ - uses: actions/checkout@v2
61
+ - uses: ruby/setup-ruby@v1
62
+ with:
63
+ ruby-version: ${{ matrix.ruby }}
64
+ bundler-cache: true
65
+ - run: bundle exec rake
data/.gitignore CHANGED
@@ -14,3 +14,5 @@ doc
14
14
  # built gems
15
15
  pkg
16
16
  *.gem
17
+
18
+ gemfiles/*.lock
data/.travis.yml CHANGED
@@ -2,13 +2,26 @@ language: ruby
2
2
  dist: xenial
3
3
  cache: bundler
4
4
  rvm:
5
- - 2.4.1
6
- - 2.3.4
7
- - 2.2.7
8
- - 2.1.10
5
+ #- 2.7.1
6
+ - 2.6.6
7
+ - 2.5.8
8
+ #- ruby-head
9
+ gemfile:
10
+ - gemfiles/Gemfile-rails.5.0.x
11
+ - gemfiles/Gemfile-rails.5.1.x
12
+ - gemfiles/Gemfile-rails.5.2.x
13
+ - gemfiles/Gemfile-rails.5.2.x-cukes-4
14
+ - gemfiles/Gemfile-rails.5.2.x-cukes-5
15
+ - gemfiles/Gemfile-rails.6.0.x
16
+ - gemfiles/Gemfile-rails.6.0.x-cukes-5
17
+ #- gemfiles/Gemfile-rails.edge
9
18
  matrix:
10
19
  allow_failures:
11
- - rvm: 2.1.10
20
+ - rvm: ruby-head
21
+ - rvm: 2.7.1
22
+ - gemfile: gemfiles/Gemfile-rails.edge
23
+ - gemfile: gemfiles/Gemfile-rails.5.2.x-cukes-5
24
+ - gemfile: gemfiles/Gemfile-rails.6.0.x-cukes-5
12
25
  fast_finish: true
13
26
 
14
27
  script:
data/History.txt CHANGED
@@ -1,12 +1,28 @@
1
+ == 0.6.2
2
+ * Relax dependency to support cucumber 7.x
3
+
4
+ == 0.6.1
5
+ * Relax dependency to support cucumber 6.x
6
+
7
+ == 0.6.0
8
+ * Drop support for cucumber < 3
9
+ * Officially support cucumber 4.1
10
+ * Relax dependency to support cucumber 5.x although not officially supported
11
+ * Run tests for Rails 5.0, 5.1, 5.2 and 6.0
12
+
13
+ == 0.5.5
14
+ * Relax dependency on cucumber to allow usage with Rails 5.2 [Yohei Kitamura]
15
+
1
16
  == 0.5.4
2
- * updated FactoryGirl to FactoryBot
17
+ * updated FactoryGirl to FactoryBot [Blake McDaniel]
3
18
 
4
19
  == 0.5.3
5
- * small fix to pickle_path_for_resources_action_segment
6
- * update for fabrication adapter with protected method klass
20
+ * small fix to pickle_path_for_resources_action_segment [Tema Bolshakov]
21
+ * update for fabrication adapter with protected method klass [Liam Krewer]
22
+ * Fix tests to run on travis again and codecoverage [Mathieu Jobin]
7
23
 
8
24
  == 0.5.2
9
- * replace alias_method_chain by Module#prepend
25
+ * replace alias_method_chain by Module#prepend [Mathieu Jobin]
10
26
  eliminating deprecation warnings when using with Rails 5
11
27
 
12
28
  == 0.5.1
@@ -40,7 +56,7 @@
40
56
 
41
57
  * 1 bugfix
42
58
  * Don't blow up when fabrication not present [Ian White]
43
-
59
+
44
60
 
45
61
  == 0.4.9
46
62
 
@@ -49,8 +65,8 @@
49
65
 
50
66
  * 1 minor improvement
51
67
  * Update development dependencies so tests/features run on rails 3.1 and friends
52
-
53
-
68
+
69
+
54
70
  == 0.4.8
55
71
 
56
72
  * 2 minor improvements
@@ -63,7 +79,7 @@
63
79
  * 2 minor improvements
64
80
  * Better error message for failing to find a model [Ian White, reported by Yuval Karmi]
65
81
  * dev deps updated to latest cucumber & cucumber-rails [Ian White]
66
-
82
+
67
83
 
68
84
  == 0.4.6
69
85
  Documentation updates
@@ -86,7 +102,7 @@ large object space fix, and allow escaped quotes as string values
86
102
  * 1 bugfix
87
103
  * When using super-huge GC limits (for speeding up tests), occasionally we'll see abandoned Mongoid::Document classes appear in the ObjectSpace.
88
104
  This patch should fix that. [Devin Walters and Nick Karpenske]
89
-
105
+
90
106
  * 1 improvement
91
107
  * allow escaped quotes (\") in quoted fields [Jonathan Hinkle]
92
108
 
@@ -110,7 +126,7 @@ Docfix
110
126
 
111
127
  * 1 improvement
112
128
  * documentation fixes, and example of writing your own pickle steps
113
-
129
+
114
130
 
115
131
  == 0.4.0
116
132
  Mongoid adapter, fallback ORM adapter for those not using machinist or active_record, bugfixes
@@ -118,9 +134,9 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
118
134
  * 2 major improvements
119
135
  * adapter for Mongoid [Sebastian Zuchmanski]
120
136
  * replace ActiveRecord 'factory' adapter with Orm adapter.
121
-
137
+
122
138
  If you don't have machinist or factory_girl, the Orm factory adapter will fallback to your Orm to create classes.
123
-
139
+
124
140
  BC: if you have a line like this:
125
141
  Pickle.configure do |config|
126
142
  config.adapters = [:active_record]
@@ -130,10 +146,10 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
130
146
  Pickle.configure do |config|
131
147
  config.adapters = [:orm]
132
148
  end
133
-
149
+
134
150
  * 1 minor improvement
135
151
  * Pickle::Session::ModelNotKnownError is raised instead of a generic RuntimeError
136
-
152
+
137
153
  * 1 bugfix
138
154
  * references to unknown models in fields now raise ModelNotKnownError instead of silently assigning nil
139
155
 
@@ -147,7 +163,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
147
163
 
148
164
  * 1 bugfix
149
165
  * find_models now works with a factory name with spaces in it [#27]
150
-
166
+
151
167
 
152
168
  == 0.3.4
153
169
 
@@ -160,7 +176,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
160
176
 
161
177
  * 1 minor improvement
162
178
  * Pickle respects the default build strategy for factory girl. [Sean Hussey]
163
-
179
+
164
180
 
165
181
  == 0.3.2
166
182
 
@@ -193,7 +209,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
193
209
  == 0.2.11
194
210
 
195
211
  * 1 improvement
196
- * use correct type when converting STI pickle model to attributes
212
+ * use correct type when converting STI pickle model to attributes
197
213
 
198
214
 
199
215
  == 0.2.10
@@ -230,8 +246,8 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
230
246
  * 2 improvements
231
247
  * running specs is now doable without being in a rails app - just do 'rake spec'
232
248
  * running features is more straightforward, 'rake cucumber' then follow the instructions
233
-
234
-
249
+
250
+
235
251
  == 0.2.5 - 17 Mar 2010
236
252
 
237
253
  * 2 improvements
@@ -256,7 +272,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
256
272
  | user | name | status |
257
273
  | jack | Jack Spratt | alone |
258
274
  | pete | Pete Sprong | dead |
259
-
275
+
260
276
  * 1 minor improvement
261
277
  * Fix bug in error message for when pickle ref can't be found [Myron Marston]
262
278
 
@@ -267,8 +283,8 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
267
283
  * Added ability to follow links in emails (see email_steps.rb) [Michael Moen]
268
284
  * Added a step definition for doing stuff like: Then the user's name should be "Tobi" [Tobi Knaup]
269
285
  * Docfixes, mostly about testing [Nicholas Rutherford]
270
-
271
-
286
+
287
+
272
288
  == 0.2.1 - 1 Dec 2009
273
289
 
274
290
  * 2 minor improvements
@@ -287,11 +303,11 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
287
303
  | Ethel |
288
304
  And the 1st user should be male
289
305
  And the 2nd user should be female
290
-
306
+
291
307
  * tables now support pickle refs in cells (see features/pickle/create_from_factory_girl.rb#37)
292
-
308
+
293
309
  * features/support/email.rb adds an email helper for mapping names to email addresses (similar to NavigationHelper in paths.rb)
294
-
310
+
295
311
  * Added ability for path_to_pickle to handle arbitrary segments
296
312
  Example:
297
313
  path_to_pickle('account', 'the enquiry') => account_enquiry_path(<enquiry>)
@@ -316,7 +332,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
316
332
 
317
333
  * 1 minor improvement
318
334
  * docs: more links
319
-
335
+
320
336
 
321
337
  == 0.1.22 - 7 Nov 2009
322
338
 
@@ -341,7 +357,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
341
357
 
342
358
  * 1 minor enhancement
343
359
  * Add support for Cucumber tables [Tobi Knaup]
344
-
360
+
345
361
 
346
362
  == 0.1.16, 0.1.17, 0.1.18 - 13 Oct 2009
347
363
 
@@ -361,7 +377,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
361
377
  * update specs and features for latest cucumber and machinist changes
362
378
 
363
379
 
364
- == 0.1.13 - 16 June 2009
380
+ == 0.1.13 - 16 June 2009
365
381
 
366
382
  * 2 minor enhancements
367
383
  * model! and created_model! raise an error if pickle name can't be found
@@ -379,7 +395,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
379
395
 
380
396
  * 2 minor enhancements
381
397
  * Pickle now supports multiple machinist blueprints
382
- * Fix confusing adapter/adaptor comment generator comment
398
+ * Fix confusing adapter/adaptor comment generator comment
383
399
 
384
400
 
385
401
  == 0.1.10 - 13 Feb 2009
@@ -410,7 +426,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
410
426
  * 2 API changes
411
427
  * script/generate pickle path[s] now amends the features/support/paths.rb file
412
428
  instead of creating pge_to_path and path_steps.
413
-
429
+
414
430
  * pickle_email_steps is renamed email_steps
415
431
 
416
432
 
@@ -424,22 +440,22 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
424
440
 
425
441
  * generate email steps with `script/generate pickle email`
426
442
  email steps allow you to do things like this:
427
-
443
+
428
444
  Then 2 emails should be delivered
429
445
  And the first email should be delivered to fred@gmail.com
430
446
  And the 2nd email should be delivered to the user: "ethel"
431
-
447
+
432
448
  Then 1 email should be delivered with subject: "Activate your account"
433
449
  And the email should link to the user's page
434
-
450
+
435
451
  take a look at features/step_definitions/pickle_email_steps.rb
436
-
452
+
437
453
  * generate path steps with `script/generate pickle path`
438
454
  path steps allow you to do things like this
439
-
455
+
440
456
  When I go to the comment's page
441
457
  Then I should be at the user's new comment page
442
-
458
+
443
459
  take a look at features/step_definitions/pickle_path_steps.rb, and modify page_to_path to suit your needs
444
460
 
445
461
  * 4 minor enhancements
@@ -464,7 +480,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
464
480
  for much more intuitive env.rb
465
481
 
466
482
  * 2 minor enhancement
467
- * predicate matching is less prone to step conflicts because we preload a
483
+ * predicate matching is less prone to step conflicts because we preload a
468
484
  big list of all the predicate and column methods
469
485
  * field values now handle booleans and numerics
470
486
 
@@ -490,7 +506,7 @@ Mongoid adapter, fallback ORM adapter for those not using machinist or active_re
490
506
  * 2 major enhancements
491
507
  * create your pickle steps with script/generate pickle
492
508
  * Adapter based architecture, supports Machinist, FactoryGirl, and vanilla ActiveRecord
493
-
509
+
494
510
  * 1 minor enhancement
495
511
  * model_names now defaults to subclasses of AR::Base
496
512
  * #original_model => #created_model
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # pickle
2
2
 
3
- [<img src="https://travis-ci.org/ianwhite/pickle.svg" alt="Build Status"/>](https://travis-ci.org/ianwhite/pickle)
3
+
4
+ [![build](https://github.com/ianwhite/pickle/actions/workflows/build.yml/badge.svg)](https://github.com/ianwhite/pickle/actions/workflows/build.yml)
4
5
 
5
6
  Pickle gives you cucumber steps that create your models easily from factory-girl, machinist, or fabrication. You can also just use ActiveRecord as a factory but it's not as cool. Pickle can make use of different ORMs for finding records. Currently ActiveRecord, DataMapper, MongoID adapters are provided. More adapters welcome!
6
7
 
@@ -10,7 +11,19 @@ References to the models are stored in the current world, not necessarily for th
10
11
 
11
12
  This is a quickstart guide for rails apps. Firstly, install [cucumber-rails](http://github.com/aslakhellesoy/cucumber-rails), and its dependencies. Then do the following:
12
13
 
13
- ### Rails 3:
14
+ ## Supported versions
15
+
16
+ Cucumber 2.x - support was dropped from release 0.6.0
17
+ Cucumber 3.x - support is best-effort basis, but tests run on rails 4.2 all the way until 6.1
18
+ Cucumber 4.x - should work with all Rails 5.x versions, tests only run for 5.2 and 6.0
19
+ Cucumber 5.x - all tests pass for rails 5.2, 6.0 and 6.1
20
+ Cucumber 6.x - all tests pass for rails 6.0 and 6.1
21
+ Cucumber 7.x - all tests pass for rails 6.0 and 6.1
22
+
23
+ Please open pull-requests with fixes if you encounter any problems.
24
+ No active development on this gem.
25
+
26
+ ### Rails 5 and Rails 6
14
27
 
15
28
  Add the gem to your Gemfile:
16
29
 
@@ -36,26 +49,6 @@ Run the generator, e.g:
36
49
  rails g pickle --paths --email
37
50
  ```
38
51
 
39
- ### For Rails 2:
40
-
41
- Add the following to config/environments/cucumber:
42
-
43
- ```ruby
44
- config.gem 'pickle'
45
- ```
46
-
47
- Install the gem with
48
-
49
- ```shell
50
- rake gems:install RAILS_ENV=cucumber
51
- ```
52
-
53
- Run the generator with:
54
-
55
- ```ruby
56
- script/generate pickle [paths] [email]
57
- ```
58
-
59
52
  ## Resources
60
53
 
61
54
  **GitHub** for code: https://github.com/ianwhite/pickle
@@ -2,7 +2,7 @@ require 'cucumber/rake/task'
2
2
 
3
3
  desc "Run features"
4
4
  Cucumber::Rake::Task.new(:cucumber => [:cucumber_test_app]) do |t|
5
- t.cucumber_opts = %w[--format pretty --require features -t ~@wip]
5
+ t.cucumber_opts = %w[--format pretty --require features -t] + ["'not @wip'"]
6
6
  end
7
7
 
8
8
  desc "setup a rails app for running cucumber"
@@ -13,13 +13,21 @@ end
13
13
 
14
14
  namespace :cucumber do
15
15
  task :setup do
16
+ current_gemfile = ENV['BUNDLE_GEMFILE']
17
+ sh "BUNDLE_GEMFILE=#{current_gemfile} bundle show cucumber > /tmp/cukes_version"
18
+ sh "BUNDLE_GEMFILE=#{current_gemfile} bundle show sqlite3 > /tmp/sqlite_version"
19
+ cukes_version=File.read('/tmp/cukes_version').split('-').last.chomp
20
+ sqlite_version=File.read('/tmp/sqlite_version').split('-').last.chomp
21
+ puts "Versions: Cucumber #{cukes_version}, SQLite #{sqlite_version}."
16
22
  Bundler.with_clean_env do
17
23
  gemfile = "cucumber_test_app/Gemfile"
18
24
  rm_rf "cucumber_test_app"
19
- sh "bundle exec rails new cucumber_test_app --skip-spring --skip-javascript --skip-sprockets"
25
+ sh "BUNDLE_GEMFILE=#{current_gemfile} bundle exec rails new cucumber_test_app --skip-spring --skip-javascript --skip-sprockets --skip-bootsnap"
26
+ sh "echo 'gem \"cucumber\", \"~> #{cukes_version}\", :require => false' >> #{gemfile}"
27
+ sh "sed -i 's/gem .sqlite3./gem \"sqlite3\", \"~> #{sqlite_version}\"/' #{gemfile}"
28
+ sh "cat #{gemfile} | grep sqli"
20
29
  sh "echo 'gem \"cucumber-rails\", :require => false' >> #{gemfile}"
21
30
  sh "echo 'gem \"rspec-rails\", \"~>3.0\"' >> #{gemfile}"
22
- sh "echo 'gem \"capybara\"' >> #{gemfile}"
23
31
  sh "echo 'gem \"pickle\", path: \"#{__dir__}/..\"' >> #{gemfile}"
24
32
  sh "bundle install --gemfile=#{gemfile}"
25
33
  sh "(cd cucumber_test_app ; bundle exec rake db:migrate)"
data/features/app/app.rb CHANGED
@@ -90,19 +90,19 @@ end
90
90
  # controllers
91
91
  class DefaultController < ActionController::Base
92
92
  def index
93
- render :text => "index: I was invoked with #{request.path}"
93
+ render :plain => "index: I was invoked with #{request.path}"
94
94
  end
95
-
95
+
96
96
  def show
97
- render :text => "show: I was invoked with #{request.path}"
97
+ render :plain => "show: I was invoked with #{request.path}"
98
98
  end
99
-
99
+
100
100
  def new
101
- render :text => "new: I was invoked with #{request.path}"
101
+ render :plain => "new: I was invoked with #{request.path}"
102
102
  end
103
-
103
+
104
104
  def edit
105
- render :text => "edit: I was invoked with #{request.path}"
105
+ render :plain => "edit: I was invoked with #{request.path}"
106
106
  end
107
107
  end
108
108
 
@@ -16,7 +16,7 @@ FactoryBot.define do
16
16
 
17
17
  factory :rusty_tine, :class => Tine do |t|
18
18
  t.association :fork
19
- t.rusty true
19
+ t.rusty { true }
20
20
  end
21
21
 
22
22
  factory :fancy_fork, :class => Fork do |t|
@@ -1 +1 @@
1
- features/step_definitions/../../rails_generators/pickle/templates/email_steps.rb
1
+ ../../rails_generators/pickle/templates/email_steps.rb
@@ -1 +1 @@
1
- features/step_definitions/../../rails_generators/pickle/templates/pickle_steps.rb
1
+ ../../rails_generators/pickle/templates/pickle_steps.rb
@@ -1 +1 @@
1
- features/support/../../rails_generators/pickle/templates/email.rb
1
+ ../../rails_generators/pickle/templates/email.rb
@@ -0,0 +1,13 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Bundler 1.x default to insecure http:// for github: shortcut
4
+ git_source(:github){ |repo_name| "https://github.com/#{repo_name}.git" }
5
+
6
+ gemspec :path => ".."
7
+
8
+ gem "rails", "~> 4.2.9"
9
+ gem "cucumber", "~> 3.2.0"
10
+ gem "sqlite3", "~> 1.3.6"
11
+ gem "bundler", "~> 1.17"
12
+
13
+ gem 'fabrication', github: 'mathieujobin/fabrication', ref: '923cf6fcefd0566b1d6be7bd2f685b89388f4800'