fixturease 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -2
- data/bin/fixturease.rb +1 -1
- data/spec/database.yml +20 -0
- data/spec/fixturease_spec.rb +113 -0
- metadata +3 -1
data/Rakefile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'rake/gempackagetask'
|
2
2
|
require 'rubygems'
|
3
3
|
|
4
|
-
PKG_VERSION="0.2.
|
5
|
-
PKG_FILES=["bin/fixturease.rb","Rakefile"]
|
4
|
+
PKG_VERSION="0.2.3"
|
5
|
+
PKG_FILES=["bin/fixturease.rb","Rakefile","spec/database.yml","spec/fixturease_spec.rb"]
|
6
6
|
|
7
7
|
spec = Gem::Specification.new do |s|
|
8
8
|
s.platform = Gem::Platform::RUBY
|
data/bin/fixturease.rb
CHANGED
@@ -35,7 +35,7 @@ else
|
|
35
35
|
print "#{k} [#{filename}]: "
|
36
36
|
v = {}
|
37
37
|
val.each_pair {|rec_id,obj| v[rec_id] = obj if k.exists?(rec_id) }
|
38
|
-
puts v.keys.collect{|rec_id|
|
38
|
+
puts v.keys.collect{|rec_id| vars[k.find(rec_id)] || rec_id}.to_sentence
|
39
39
|
f = File.new("#{filename}","a")
|
40
40
|
f.write "\n\n# Fixturease (#{Time.now}):\n\n"
|
41
41
|
f.write v.values.inject({}) { |hsh, record| hsh.merge(vars[record] || "#{k.table_name}_#{record.id}" => record.attributes) }.to_yaml(:SortKeys => true).gsub(/^---.*\n/,"")
|
data/spec/database.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
development:
|
2
|
+
adapter: sqlite3
|
3
|
+
database: testfixtureaseproject_development
|
4
|
+
username: root
|
5
|
+
password:
|
6
|
+
host: localhost
|
7
|
+
|
8
|
+
test:
|
9
|
+
adapter: sqlite3
|
10
|
+
database: testfixtureaseproject_test
|
11
|
+
username: root
|
12
|
+
password:
|
13
|
+
host: localhost
|
14
|
+
|
15
|
+
production:
|
16
|
+
adapter: sqlite3
|
17
|
+
database: testfixtureaseproject_production
|
18
|
+
username: root
|
19
|
+
password:
|
20
|
+
host: localhost
|
@@ -0,0 +1,113 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
context "Fixturease" do
|
5
|
+
|
6
|
+
|
7
|
+
setup do
|
8
|
+
FileUtils.rm_rf 'testfixtureaseproject'
|
9
|
+
`rails testfixtureaseproject`
|
10
|
+
FileUtils.cp File.dirname(__FILE__)+'/database.yml','testfixtureaseproject/config/database.yml'
|
11
|
+
`cd testfixtureaseproject && ./script/generate model TestModel title:string`
|
12
|
+
`cd testfixtureaseproject && rake db:migrate RAILS_ENV=test`
|
13
|
+
end
|
14
|
+
|
15
|
+
teardown do
|
16
|
+
FileUtils.rm_rf 'testfixtureaseproject'
|
17
|
+
end
|
18
|
+
|
19
|
+
specify "should say greeting on the start" do
|
20
|
+
run_fixturease do |f|
|
21
|
+
f.readline.should == "Loading Fixturease console for test mode.\n"
|
22
|
+
f.puts "exit"
|
23
|
+
f.readline until f.eof?
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
specify "should create simple model (without columns)" do
|
29
|
+
`echo -n > testfixtureaseproject/test/fixtures/test_models.yml`
|
30
|
+
run_fixturease do |f|
|
31
|
+
f.puts "TestModel.create"
|
32
|
+
f.puts "exit"
|
33
|
+
f.readline until f.eof?
|
34
|
+
end
|
35
|
+
yaml = YAML::load_file("testfixtureaseproject/test/fixtures/test_models.yml")
|
36
|
+
yaml.keys.should_have(1).grep(/test_models_(\d)+/)
|
37
|
+
key = yaml.keys.grep(/test_models_(\d)+/).first
|
38
|
+
yaml[key]["id"].should_not_be_nil
|
39
|
+
end
|
40
|
+
|
41
|
+
specify "should create model (with title)" do
|
42
|
+
`echo -n > testfixtureaseproject/test/fixtures/test_models.yml`
|
43
|
+
run_fixturease do |f|
|
44
|
+
f.puts "TestModel.create :title => 'test title'"
|
45
|
+
f.puts "exit"
|
46
|
+
f.readline until f.eof?
|
47
|
+
end
|
48
|
+
yaml = YAML::load_file("testfixtureaseproject/test/fixtures/test_models.yml")
|
49
|
+
yaml.keys.should_have(1).grep(/test_models_(\d)+/)
|
50
|
+
key = yaml.keys.grep(/test_models_(\d)+/).first
|
51
|
+
yaml[key]["title"].should == 'test title'
|
52
|
+
end
|
53
|
+
|
54
|
+
specify "should not create destroyed model" do
|
55
|
+
`echo -n > testfixtureaseproject/test/fixtures/test_models.yml`
|
56
|
+
run_fixturease do |f|
|
57
|
+
f.puts "@test1 = TestModel.create :title => 'test title'"
|
58
|
+
f.puts "@test2 = TestModel.create :title => 'test title'"
|
59
|
+
f.puts "@test2.destroy"
|
60
|
+
f.puts "exit"
|
61
|
+
f.readline until f.eof?
|
62
|
+
end
|
63
|
+
yaml = YAML::load_file("testfixtureaseproject/test/fixtures/test_models.yml")
|
64
|
+
yaml.keys.should_have(1).grep(/test1/)
|
65
|
+
yaml.keys.should_have(0).grep(/test2/)
|
66
|
+
end
|
67
|
+
|
68
|
+
specify "should ignore non-ActiveRecord instance variables" do
|
69
|
+
`echo -n > testfixtureaseproject/test/fixtures/test_models.yml`
|
70
|
+
run_fixturease do |f|
|
71
|
+
f.puts "@test1 = 1"
|
72
|
+
f.puts "exit"
|
73
|
+
f.readline until f.eof?
|
74
|
+
end
|
75
|
+
yaml = YAML::load_file("testfixtureaseproject/test/fixtures/test_models.yml")
|
76
|
+
yaml.should == false
|
77
|
+
end
|
78
|
+
|
79
|
+
specify "should not create unsaved model" do
|
80
|
+
`echo -n > testfixtureaseproject/test/fixtures/test_models.yml`
|
81
|
+
run_fixturease do |f|
|
82
|
+
f.puts "@test1 = TestModel.new :title => 'test title'"
|
83
|
+
f.puts "exit"
|
84
|
+
f.readline until f.eof?
|
85
|
+
end
|
86
|
+
yaml = YAML::load_file("testfixtureaseproject/test/fixtures/test_models.yml")
|
87
|
+
yaml.should == false
|
88
|
+
end
|
89
|
+
|
90
|
+
specify "should create named model" do
|
91
|
+
`echo -n > testfixtureaseproject/test/fixtures/test_models.yml`
|
92
|
+
run_fixturease do |f|
|
93
|
+
f.puts "@test = TestModel.create :title => 'test title'"
|
94
|
+
f.puts "exit"
|
95
|
+
f.readline until f.eof?
|
96
|
+
end
|
97
|
+
yaml = YAML::load_file("testfixtureaseproject/test/fixtures/test_models.yml")
|
98
|
+
yaml.keys.should_have(1).grep(/^test$/)
|
99
|
+
key = yaml.keys.grep(/^test$/).first
|
100
|
+
yaml[key]["title"].should == 'test title'
|
101
|
+
end
|
102
|
+
|
103
|
+
|
104
|
+
private
|
105
|
+
|
106
|
+
def run_fixturease(&block)
|
107
|
+
ENV['RAILS_ROOT']='testfixtureaseproject'
|
108
|
+
ENV['FIXTURES_ROOT']='test/fixtures'
|
109
|
+
ENV['RAILS_ENV']='test'
|
110
|
+
@io = IO.popen "#{File.dirname(__FILE__)}/../bin/fixturease.rb", "r+", &block
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
metadata
CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: fixturease
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.2.
|
6
|
+
version: 0.2.3
|
7
7
|
date: 2007-01-19 00:00:00 +02:00
|
8
8
|
summary: Easy fixture creation tool
|
9
9
|
require_paths:
|
@@ -31,6 +31,8 @@ authors:
|
|
31
31
|
files:
|
32
32
|
- bin/fixturease.rb
|
33
33
|
- Rakefile
|
34
|
+
- spec/database.yml
|
35
|
+
- spec/fixturease_spec.rb
|
34
36
|
test_files: []
|
35
37
|
|
36
38
|
rdoc_options: []
|