spec-converter 0.0.2 → 0.0.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/README.txt +42 -1
- data/Rakefile +3 -1
- data/lib/spec_converter.rb +10 -1
- data/test/spec_converter_test.rb +37 -0
- metadata +4 -4
data/README.txt
CHANGED
@@ -21,7 +21,48 @@ Assuming your project is at ~/work/project/:
|
|
21
21
|
* svn trunk: https://opensource.thinkrelevance.com/svn/spec_converter/trunk
|
22
22
|
* rdoc: http://spec-converter.rubyforge.org/rdoc
|
23
23
|
|
24
|
-
|
24
|
+
= Spec report
|
25
|
+
|
26
|
+
== converting from test/spec old style to new style names
|
27
|
+
* replaces spec context with describe
|
28
|
+
* ignores unrelated uses of 'context'
|
29
|
+
* replaces spec specify with it
|
30
|
+
* ignores unrelated uses of 'specify'
|
31
|
+
|
32
|
+
== converting dust style to test/spec style
|
33
|
+
* changes test...do to it...do
|
34
|
+
* ignores unrelated lines
|
35
|
+
|
36
|
+
== converting ActionController::IntegrationTest style to describe blocks
|
37
|
+
* replaces class FooTest < ActionController::IntegrationTest with describe foo do
|
38
|
+
|
39
|
+
== converting Test::Unit style to describe blocks
|
40
|
+
* replaces class FooTest < Test::Unit::TestCase with describe foo do
|
41
|
+
* replaces class FooTest < Test::Unit::TestCase with silly whitespacing with describe foo do
|
42
|
+
* converts namespaced test unit classes
|
43
|
+
* ignores unrelated classes
|
44
|
+
|
45
|
+
== converting Test::Unit methods to it blocks
|
46
|
+
* replaces def setup with before do
|
47
|
+
* ignores method definitions that only start with setup
|
48
|
+
* replaces class def test_something? with it something? do
|
49
|
+
* replaces class def test_something? with it something? do
|
50
|
+
* replaces class def test_something with it something do
|
51
|
+
* replaces class def test_something with it something do when it has leading whitespace
|
52
|
+
* ignores unrelated lines
|
53
|
+
* ignores unrelated lines with leading whitespace
|
54
|
+
|
55
|
+
== converting assertions
|
56
|
+
* replaces assert !foo to foo.should == false
|
57
|
+
* replaces assert_equal y, x, bar to x.should == y
|
58
|
+
* replaces assert foo to foo.should == true
|
59
|
+
* replaces assert_nil foo to foo.should == nil
|
60
|
+
* replaces assert_true foo to foo.should == true
|
61
|
+
* replaces assert_false foo to foo.should == false
|
62
|
+
* replaces assert_not_nil foo to foo.should.not == nil
|
63
|
+
* replaces assert foo > 20 to foo.should > 20
|
64
|
+
|
65
|
+
= LICENSE:
|
25
66
|
|
26
67
|
(The MIT License)
|
27
68
|
|
data/Rakefile
CHANGED
@@ -7,12 +7,14 @@ require 'rcov/rcovtask'
|
|
7
7
|
|
8
8
|
Hoe.new('SpecConverter', SpecConverter::VERSION) do |p|
|
9
9
|
p.rubyforge_name = "spec-converter"
|
10
|
+
p.description = "Convert your tests to test/spec specs. See http://opensource.thinkrelevance.com/wiki/spec-converter for details."
|
11
|
+
p.changes = "Added assertions conversions"
|
10
12
|
p.name = 'spec-converter'
|
11
13
|
p.remote_rdoc_dir = 'rdoc'
|
12
14
|
p.summary = "Convert your tests to test/spec specs"
|
13
15
|
p.author = "Relevance"
|
14
16
|
p.email = "opensource@thinkrelevance.com"
|
15
|
-
p.url = "http://opensource.thinkrelevance.com"
|
17
|
+
p.url = "http://opensource.thinkrelevance.com/wiki/spec-converter"
|
16
18
|
end
|
17
19
|
|
18
20
|
desc 'Default: run unit tests.'
|
data/lib/spec_converter.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Simple converter to go to test/spec style
|
2
2
|
# This will change all files in place, so make sure you are properly backed up and/or committed to SVN!
|
3
3
|
class SpecConverter
|
4
|
-
VERSION = "0.0.
|
4
|
+
VERSION = "0.0.3"
|
5
5
|
|
6
6
|
def self.start
|
7
7
|
spec_converter = SpecConverter.new
|
@@ -36,6 +36,7 @@ class SpecConverter
|
|
36
36
|
convert_test_unit_class_name(line)
|
37
37
|
convert_test_unit_methods(line)
|
38
38
|
convert_def_setup(line)
|
39
|
+
convert_assert(line)
|
39
40
|
line
|
40
41
|
end
|
41
42
|
|
@@ -62,4 +63,12 @@ class SpecConverter
|
|
62
63
|
def convert_dust_style(line)
|
63
64
|
line.gsub!(/(^\s*)test(\s.*do)/, '\1it\2')
|
64
65
|
end
|
66
|
+
|
67
|
+
def convert_assert(line)
|
68
|
+
line.gsub!(/(^\s*)assert\s+([^\s]*)\s*([<=>~]+)\s*(.*)$/, '\1\2.should \3 \4' )
|
69
|
+
line.gsub!(/(^\s*)assert\s+\!(.*)$/, '\1\2.should.not == true' )
|
70
|
+
line.gsub!(/(^\s*)assert(_not_nil){0,1}\s+(.*)$/, '\1\3.should.not == nil' )
|
71
|
+
line.gsub!(/(^\s*)assert_(nil|true|false)\s+(.*)$/, '\1\3.should == \2' )
|
72
|
+
line.gsub!(/(^\s*)assert_equal\s+("[^"]+"|[^,]+),\s*("[^"]+"|[^,\n]+)$/, '\1\3.should == \2' )
|
73
|
+
end
|
65
74
|
end
|
data/test/spec_converter_test.rb
CHANGED
@@ -140,6 +140,43 @@ describe "converting Test::Unit methods to it blocks" do
|
|
140
140
|
|
141
141
|
end
|
142
142
|
|
143
|
+
describe "converting assertions" do
|
144
|
+
before do
|
145
|
+
@converter = SpecConverter.new
|
146
|
+
end
|
147
|
+
|
148
|
+
it "replaces assert !foo to foo.should == false" do
|
149
|
+
@converter.convert_line(%[ assert !foo]).should == %[ foo.should.not == true]
|
150
|
+
end
|
151
|
+
|
152
|
+
it "replaces assert_equal y, x, bar to x.should == y" do
|
153
|
+
@converter.convert_line(%[ assert_equal "$1,490.00", x["price"]\n]).should == %[ x["price"].should == "$1,490.00"\n]
|
154
|
+
end
|
155
|
+
|
156
|
+
it "replaces assert foo to foo.should == true" do
|
157
|
+
@converter.convert_line(%[ assert foo]).should == %[ foo.should.not == nil]
|
158
|
+
end
|
159
|
+
|
160
|
+
it "replaces assert_nil foo to foo.should == nil" do
|
161
|
+
@converter.convert_line(%[ assert_nil foo]).should == %[ foo.should == nil]
|
162
|
+
end
|
163
|
+
|
164
|
+
it "replaces assert_true foo to foo.should == true" do
|
165
|
+
@converter.convert_line(%[ assert_true foo]).should == %[ foo.should == true]
|
166
|
+
end
|
167
|
+
|
168
|
+
it "replaces assert_false foo to foo.should == false" do
|
169
|
+
@converter.convert_line(%[ assert_false foo]).should == %[ foo.should == false]
|
170
|
+
end
|
171
|
+
|
172
|
+
it "replaces assert_not_nil foo to foo.should.not == nil" do
|
173
|
+
@converter.convert_line(%[ assert_not_nil foo]).should == %[ foo.should.not == nil]
|
174
|
+
end
|
175
|
+
it "replaces assert foo > 20 to foo.should > 20" do
|
176
|
+
@converter.convert_line(%[ assert foo > 20]).should == %[ foo.should > 20]
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
143
180
|
describe "converting things in batch" do
|
144
181
|
before do
|
145
182
|
@converter = SpecConverter.new
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spec-converter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Relevance
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-01-
|
12
|
+
date: 2008-01-19 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 1.4.0
|
23
23
|
version:
|
24
|
-
description:
|
24
|
+
description: Convert your tests to test/spec specs. See http://opensource.thinkrelevance.com/wiki/spec-converter for details.
|
25
25
|
email: opensource@thinkrelevance.com
|
26
26
|
executables:
|
27
27
|
- spec_converter
|
@@ -38,7 +38,7 @@ files:
|
|
38
38
|
- lib/spec_converter.rb
|
39
39
|
- test/spec_converter_test.rb
|
40
40
|
has_rdoc: true
|
41
|
-
homepage: http://opensource.thinkrelevance.com
|
41
|
+
homepage: http://opensource.thinkrelevance.com/wiki/spec-converter
|
42
42
|
post_install_message:
|
43
43
|
rdoc_options:
|
44
44
|
- --main
|