superseeder 0.9.2 → 0.9.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.
@@ -0,0 +1,56 @@
1
+ require_relative '../../test_helper'
2
+ require 'superseeder/seedable'
3
+
4
+ describe '#seed' do
5
+ Parking.extend ::Superseeder::Seedable
6
+ Car.extend ::Superseeder::Seedable
7
+
8
+ describe 'with csv format' do
9
+
10
+ { Parking => [%w(parkings_without_cars.csv parkings_with_cars.csv), 4],
11
+ Car => [%w(cars_with_parkings.csv cars_without_parkings.csv), 3] }.each do |klass, (filenames, count)|
12
+ describe "seeds all the #{klass} rows" do
13
+ filenames.each do |filename|
14
+ it "from #{filename}" do
15
+ klass.seed :filename => filename
16
+ assert_equal count, klass.count
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ describe 'with no relation' do
23
+ it 'sets the values' do
24
+ Parking.seed :filename => 'parkings_without_cars.csv'
25
+ assert_equal %w(South North East West).sort, Parking.all.map(&:name).sort
26
+ end
27
+ end
28
+
29
+ describe 'with single relations' do
30
+ before :each do
31
+ Parking.seed :filename => 'parkings_without_cars.csv'
32
+ end
33
+
34
+ it 'sets the relations' do
35
+ Car.seed :filename => 'cars_with_parkings.csv'
36
+ Car.all.entries.each do |car|
37
+ assert_kind_of Parking, car.parking
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ describe 'with multiple relations' do
44
+ before :each do
45
+ Car.seed :filename => 'cars_without_parkings.csv'
46
+ end
47
+
48
+ it 'sets the relations' do
49
+ Parking.seed :filename => 'parkings_with_cars.csv'
50
+ Car.all.entries.each do |car|
51
+ assert_kind_of Parking, car.parking
52
+ end
53
+ end
54
+ end
55
+
56
+ end
@@ -0,0 +1,54 @@
1
+ require_relative '../test_helper'
2
+
3
+ # Create a fake format taking the .wxwxwx extension that do nothing to
4
+ # test Superseeder::#seed without it actually performing anything
5
+ module ::Superseeder
6
+ module Formats
7
+ module TestFormat
8
+
9
+ def self.extensions
10
+ %w(.wxwxwx)
11
+ end
12
+
13
+ def __process(path, *args)
14
+ #Do nothing
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+
21
+ klass = Class.new do
22
+ include ::Superseeder
23
+ end
24
+
25
+ describe '#seed' do
26
+
27
+ let(:object){ klass.new }
28
+
29
+ it 'extend the class with the format\'s module when the file is found' do
30
+ object.seed :whatever
31
+ assert_kind_of ::Superseeder::Formats::TestFormat, Whatever
32
+ end
33
+
34
+ describe 'with multiple candidate files' do
35
+ it 'raises an error if :filename is not specified' do
36
+ assert_raises(ArgumentError){ object.seed :multiple }
37
+ end
38
+ describe 'with :filename specified' do
39
+ it 'raises an error when the filename does not match any file' do
40
+ assert_raises(ArgumentError){ object.seed :multiple, :filename => 'multiple.wxwxwx' }
41
+ end
42
+ end
43
+ end
44
+
45
+ it 'raises an error when no candidate file is found' do
46
+ assert_raises(ArgumentError){ object.seed :nofile }
47
+ end
48
+
49
+ it 'raises an error when the file format is not supported by any module' do
50
+ assert_raises(ArgumentError){ object.seed :noformat }
51
+ end
52
+
53
+ end
54
+
data/test/test_helper.rb CHANGED
@@ -1,16 +1,33 @@
1
1
  # Configure Rails Environment
2
- ENV["RAILS_ENV"] = "test"
2
+ ENV['RAILS_ENV'] = 'test'
3
3
 
4
- require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
5
- ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
6
- require "rails/test_help"
4
+ require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
5
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path('../../test/dummy/db/migrate', __FILE__)] if defined? ActiveRecord
6
+ require 'rails/test_help'
7
7
 
8
8
  Rails.backtrace_cleaner.remove_silencers!
9
9
 
10
10
  # Load support files
11
11
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
12
 
13
- # Load fixtures from the engine
14
- if ActiveSupport::TestCase.method_defined?(:fixture_path=)
15
- ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
16
- end
13
+ ENV['ADAPTER'] ||= 'active_record'
14
+
15
+ load File.dirname(__FILE__) + "/adapters/#{ENV['ADAPTER']}.rb"
16
+
17
+ require 'minitest/autorun'
18
+
19
+ require 'database_cleaner'
20
+ DatabaseCleaner.orm = ENV['ADAPTER']
21
+ DatabaseCleaner.strategy = :truncation
22
+
23
+ class MiniTest::Spec
24
+
25
+ before :each do
26
+ DatabaseCleaner.start
27
+ end
28
+
29
+ after :each do
30
+ DatabaseCleaner.clean
31
+ end
32
+
33
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: superseeder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Olivier Milla
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-31 00:00:00.000000000 Z
11
+ date: 2015-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -38,6 +38,48 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 1.3.10
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 1.3.10
55
+ - !ruby/object:Gem::Dependency
56
+ name: mongoid
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '4'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: database_cleaner
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 1.3.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 1.3.0
41
83
  description: Superseeder simplifies writing and managing seeds for Rails models in
42
84
  many different file formats.
43
85
  email:
@@ -50,12 +92,20 @@ files:
50
92
  - README.rdoc
51
93
  - Rakefile
52
94
  - lib/superseeder.rb
95
+ - lib/superseeder/adapter.rb
96
+ - lib/superseeder/adapters/active_record.rb
97
+ - lib/superseeder/adapters/mongoid.rb
53
98
  - lib/superseeder/formats/csv.rb
54
99
  - lib/superseeder/formats/roo.rb
55
100
  - lib/superseeder/formats/yaml.rb
56
101
  - lib/superseeder/seedable.rb
57
102
  - lib/superseeder/version.rb
58
103
  - lib/tasks/superseeder_tasks.rake
104
+ - test/adapters/active_record.rb
105
+ - test/adapters/all.rb
106
+ - test/adapters/mongoid.rb
107
+ - test/adapters/mongoid.yml
108
+ - test/adapters/schema.rb
59
109
  - test/dummy/README.rdoc
60
110
  - test/dummy/Rakefile
61
111
  - test/dummy/app/assets/javascripts/application.js
@@ -85,11 +135,21 @@ files:
85
135
  - test/dummy/config/locales/en.yml
86
136
  - test/dummy/config/routes.rb
87
137
  - test/dummy/config/secrets.yml
138
+ - test/dummy/db/seeds/data/cars_with_parkings.csv
139
+ - test/dummy/db/seeds/data/cars_without_parkings.csv
140
+ - test/dummy/db/seeds/data/multiple_1.wxwxwx
141
+ - test/dummy/db/seeds/data/multiple_2.wxwxwx
142
+ - test/dummy/db/seeds/data/noformat.tttt
143
+ - test/dummy/db/seeds/data/parkings_with_cars.csv
144
+ - test/dummy/db/seeds/data/parkings_without_cars.csv
145
+ - test/dummy/db/seeds/data/whatevers.wxwxwx
146
+ - test/dummy/db/test.sqlite3
147
+ - test/dummy/log/test.log
88
148
  - test/dummy/public/404.html
89
149
  - test/dummy/public/422.html
90
150
  - test/dummy/public/500.html
91
- - test/dummy/public/favicon.ico
92
- - test/superseeder_test.rb
151
+ - test/superseeder/formats/roo_test.rb
152
+ - test/superseeder/seedable_test.rb
93
153
  - test/test_helper.rb
94
154
  homepage: http://github.com/muichkine/superseeder
95
155
  licenses:
@@ -116,12 +176,27 @@ signing_key:
116
176
  specification_version: 4
117
177
  summary: Easily seed your Rails models from sheet files.
118
178
  test_files:
119
- - test/superseeder_test.rb
179
+ - test/adapters/active_record.rb
180
+ - test/adapters/all.rb
181
+ - test/adapters/schema.rb
182
+ - test/adapters/mongoid.yml
183
+ - test/adapters/mongoid.rb
184
+ - test/superseeder/formats/roo_test.rb
185
+ - test/superseeder/seedable_test.rb
186
+ - test/dummy/db/seeds/data/parkings_without_cars.csv
187
+ - test/dummy/db/seeds/data/cars_with_parkings.csv
188
+ - test/dummy/db/seeds/data/multiple_1.wxwxwx
189
+ - test/dummy/db/seeds/data/multiple_2.wxwxwx
190
+ - test/dummy/db/seeds/data/noformat.tttt
191
+ - test/dummy/db/seeds/data/parkings_with_cars.csv
192
+ - test/dummy/db/seeds/data/whatevers.wxwxwx
193
+ - test/dummy/db/seeds/data/cars_without_parkings.csv
194
+ - test/dummy/db/test.sqlite3
120
195
  - test/dummy/config.ru
196
+ - test/dummy/log/test.log
121
197
  - test/dummy/public/422.html
122
198
  - test/dummy/public/404.html
123
199
  - test/dummy/public/500.html
124
- - test/dummy/public/favicon.ico
125
200
  - test/dummy/README.rdoc
126
201
  - test/dummy/bin/rails
127
202
  - test/dummy/bin/bundle
@@ -1,7 +0,0 @@
1
- require 'test_helper'
2
-
3
- class SuperseederTest < ActiveSupport::TestCase
4
- test 'truth' do
5
- assert_kind_of Module, Superseeder
6
- end
7
- end