superseeder 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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