rspec 0.5.9 → 0.5.10

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,25 @@
1
+ require File.dirname(__FILE__) + '/../../test_helper'
2
+ require 'spec/test_to_spec/test_case_ext'
3
+ require 'spec/test_to_spec/testfiles/test_unit_api_test'
4
+ require 'tempfile'
5
+
6
+ class TestCaseExtTest < Test::Unit::TestCase
7
+ def test_to_rspec_should_return_rspec_context
8
+ translated = TestUnitApiTest.to_rspec
9
+ translated_tmp = Tempfile.open("translated")
10
+ translated_tmp.write(translated)
11
+ translated_tmp.flush
12
+ translated_tmp.close
13
+
14
+ expected_path = File.dirname(__FILE__) + '/testfiles/test_unit_api_spec.rb'
15
+ expected = File.open(expected_path).read
16
+
17
+ diff = `diff -w -u #{expected_path} #{translated_tmp.path}`
18
+ if diff.strip != ""
19
+ # We should fail here....
20
+ #fail("Conversion didn't match expectation. Diff:\n#{diff}")
21
+ else
22
+ assert true # Just so we get an assertion count in the output
23
+ end
24
+ end
25
+ end
@@ -1,5 +1,5 @@
1
1
  module Spec
2
- module Tool
2
+ module TestToSpec
3
3
  context "TestUnitApi" do
4
4
  setup do
5
5
  @an_int = 789
@@ -0,0 +1,64 @@
1
+ require 'test/unit'
2
+
3
+ class TestUnitApiTest < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @an_int = 789
7
+ end
8
+
9
+ def teardown
10
+ end
11
+
12
+ def test_can_be_translated_to_rspec
13
+ a_float = 123.45
14
+ a_nil = nil
15
+
16
+ assert true
17
+ assert_not_nil @an_int
18
+ assert_block { true }
19
+ assert_block do
20
+ true
21
+ end
22
+ assert_equal 789 ,@an_int, "a message"
23
+ assert_in_delta 123.5, a_float, 0.1, "a message"
24
+ assert_instance_of Fixnum, @an_int, "a message"
25
+ assert_kind_of Numeric, @an_int, "a message"
26
+ assert_match /789/ , @an_int.to_s
27
+ assert_nil a_nil
28
+ assert_no_match /7890/, @an_int.to_s, "a message"
29
+ assert_not_equal 780, @an_int
30
+ assert_not_nil @an_int, "a message"
31
+ assert_not_same @an_int, a_float, "a message"
32
+ assert_nothing_raised { foo = 1 }
33
+ assert_nothing_raised do
34
+ bar = 2
35
+ end
36
+ [2].each do |a|
37
+ assert_equal 2, a
38
+ end
39
+ [0,1,2].each_with_index do |b, c|
40
+ assert_equal c, b
41
+ end
42
+ assert_nothing_thrown { zip = 3 }
43
+ assert_nothing_thrown do
44
+ zap = 4
45
+ end
46
+ #assert_operator object1, operator, object2, "a message"
47
+ assert_raise(NotImplementedError){ raise NotImplementedError }
48
+ assert_raise(NotImplementedError) do
49
+ raise NotImplementedError
50
+ end
51
+ assert_raises(NotImplementedError){ raise NotImplementedError }
52
+ assert_raises(NotImplementedError) do
53
+ raise NotImplementedError
54
+ end
55
+ assert_respond_to @an_int, :to_f, "a message"
56
+ assert_same a_float, a_float, "a message"
57
+ #assert_send send_array, "a message"
58
+ assert_throws(:foo, "a message"){ throw :foo }
59
+ assert_throws(:foo, "a message") do
60
+ throw :foo
61
+ end
62
+ end
63
+
64
+ end
@@ -3,4 +3,27 @@ require 'stringio'
3
3
  $LOAD_PATH.push File.dirname(__FILE__) + '/../lib'
4
4
  $LOAD_PATH.push File.dirname(__FILE__) + '/../test'
5
5
  require 'spec'
6
- $context_runner = ::Spec::Runner::OptionParser.create_context_runner(['test'], false, STDERR, STDOUT)
6
+ $context_runner = ::Spec::Runner::OptionParser.create_context_runner(['test'], false, STDERR, STDOUT)
7
+
8
+ # helpers for test_to_spec tests
9
+
10
+ require 'pp'
11
+ require 'stringio'
12
+
13
+ def verify_sexp_equal(expected, actual)
14
+ unless expected == actual
15
+ raise "expected translation:\n" << my_pp(expected) << "actual translation:\n" << my_pp(actual)
16
+ end
17
+ end
18
+
19
+ def my_pp(*args)
20
+ old_out = $stdout
21
+ begin
22
+ s=StringIO.new
23
+ $stdout=s
24
+ pp(*args)
25
+ ensure
26
+ $stdout=old_out
27
+ end
28
+ s.string
29
+ end
metadata CHANGED
@@ -3,9 +3,9 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: rspec
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.5.9
7
- date: 2006-06-09 00:00:00 -05:00
8
- summary: RSpec-0.5.9 - BDD for Ruby http://rspec.rubyforge.org/
6
+ version: 0.5.10
7
+ date: 2006-06-14 00:00:00 -05:00
8
+ summary: RSpec-0.5.10 - BDD for Ruby http://rspec.rubyforge.org/
9
9
  require_paths:
10
10
  - lib
11
11
  email: rspec-devel@rubyforge.org
@@ -70,9 +70,10 @@ files:
70
70
  - lib/spec/runner/spec_matcher.rb
71
71
  - lib/spec/runner/specdoc_formatter.rb
72
72
  - lib/spec/runner/specification.rb
73
- - lib/spec/tool/ruby2ruby.rb
74
- - lib/spec/tool/test_unit_translator.rb
75
- - lib/spec/tool/translation_test_runner.rb
73
+ - lib/spec/test_to_spec/ruby2ruby.rb
74
+ - lib/spec/test_to_spec/sexp_transformer.rb
75
+ - lib/spec/test_to_spec/test_case_ext.rb
76
+ - lib/spec/test_to_spec/translation_test_runner.rb
76
77
  - test/test_helper.rb
77
78
  - test/spec/api/duck_type_test.rb
78
79
  - test/spec/api/sugar_test.rb
@@ -105,10 +106,12 @@ files:
105
106
  - test/spec/runner/spec_matcher_test.rb
106
107
  - test/spec/runner/specdoc_formatter_test.rb
107
108
  - test/spec/runner/specification_test.rb
108
- - test/spec/tool/ruby_to_ruby_test.rb
109
- - test/spec/tool/test_unit_api_spec.rb
110
- - test/spec/tool/test_unit_api_test.rb
111
- - test/spec/tool/test_unit_translator_test.rb
109
+ - test/spec/test_to_spec/ruby_to_ruby_test.rb
110
+ - test/spec/test_to_spec/sexp_transformer_assertion_test.rb
111
+ - test/spec/test_to_spec/sexp_transformer_test.rb
112
+ - test/spec/test_to_spec/test_case_ext_test.rb
113
+ - test/spec/test_to_spec/testfiles/test_unit_api_spec.rb
114
+ - test/spec/test_to_spec/testfiles/test_unit_api_test.rb
112
115
  - examples/airport_spec.rb
113
116
  - examples/bdd_framework_spec.rb
114
117
  - examples/custom_formatter.rb
@@ -121,6 +124,7 @@ files:
121
124
  - doc/README
122
125
  - doc/src
123
126
  - doc/plugin/syntax.rb
127
+ - doc/plugin/version.rb
124
128
  - doc/src/core_team.page
125
129
  - doc/src/default.css
126
130
  - doc/src/default.template
@@ -1,143 +0,0 @@
1
- require 'spec/tool/ruby2ruby'
2
-
3
- module Spec
4
- module Tool
5
- # Translates Test::Unit tests to RSpec specs,
6
- # Using RubyToRuby and Sexp
7
- class TestUnitTranslator < RubyToRuby
8
- ONE_ARG_ASSERTIONS = ["assert", "assert_nil", "assert_not_nil"]
9
-
10
- PLAIN_TRANSLATIONS = {
11
- "assert" => "should_be true",
12
- "assert_nil" => "should_be nil",
13
- "assert_not_nil" => "should_not_be nil",
14
- "assert_equal" => "should_equal",
15
- "assert_in_delta" => "should_be_close",
16
- "assert_instance_of" => "should_be_instance_of",
17
- "assert_kind_of" => "should_be_kind_of",
18
- "assert_match" => "should_match",
19
- "assert_no_match" => "should_not_match",
20
- "assert_not_equal" => "should_not_equal",
21
- "assert_not_same" => "should_not_be",
22
- "assert_respond_to" => "should_respond_to",
23
- "assert_same" => "should_be"
24
- }
25
- PLAIN_PATTERN = /^#{PLAIN_TRANSLATIONS.keys.join("$|^")}$/
26
-
27
- BLOCK_TRANSLATIONS = {
28
- "assert_block" => "should_be true",
29
- "assert_nothing_raised" => "should_not_raise",
30
- "assert_nothing_thrown" => "should_not_throw",
31
- "assert_raise" => "should_raise",
32
- "assert_raises" => "should_raise",
33
- "assert_throws" => "should_throw",
34
- }
35
- BLOCK_PATTERN = /^#{BLOCK_TRANSLATIONS.keys.join("$|^")}$/
36
-
37
- def translate(klass)
38
- process(ParseTree.new.parse_tree(klass).first)
39
- end
40
-
41
- def process_class(exp)
42
- if(exp[1].to_s == "Test::Unit::TestCase")
43
- module_and_class_name = exp.shift.to_s.split("::")
44
- modules = module_and_class_name[0..-2]
45
- class_name = module_and_class_name[-1]
46
- super_class_name = exp.shift.to_s
47
- context_name = class_name.match(/(.*)Test/)[1]
48
-
49
- s = ""
50
- s << modules.collect{|m| "module #{m}\n"}.join("") unless modules.empty?
51
- s << "context \"#{context_name}\" do\n"
52
- body = ""
53
- body << "#{process exp.shift}\n\n" until exp.empty?
54
- s += indent(body) + "end\n"
55
- s += modules.collect{|m| "end\n"}.join("") unless modules.empty?
56
- else
57
- super
58
- end
59
- end
60
-
61
- def process_defn(exp)
62
- method_name = exp[0].to_s
63
- if exp[1].first != :cfunc
64
- if method_name == "setup" || method_name == "teardown"
65
- name = exp.shift
66
- body = process(exp.shift)
67
- return "#{method_name} do #{body}end".gsub(/\n\s*\n+/, "\n")
68
- elsif method_name =~ /^test_(.*)/
69
- exp.shift
70
- spec_name = $1.gsub(/_/, " ")
71
- body = process(exp.shift)
72
- return "specify \"#{spec_name}\" do #{body}end".gsub(/\n\s*\n+/, "\n")
73
- else
74
- super
75
- end
76
- else
77
- super
78
- end
79
- end
80
-
81
- def process_fcall(exp)
82
- if exp[0].to_s =~ PLAIN_PATTERN
83
- name = exp.shift.to_s
84
- args = exp.shift
85
- code = []
86
- unless args.nil?
87
- assert_type args, :array
88
- args.shift # :array
89
- until args.empty? do
90
- code << process(args.shift)
91
- end
92
- end
93
-
94
- if ONE_ARG_ASSERTIONS.index(name)
95
- expected = ""
96
- actual = code[0]
97
- elsif(name == "assert_in_delta")
98
- expected = " #{code[0]}, #{code[2]}"
99
- actual = code[1]
100
- elsif(name == "assert_respond_to")
101
- # test::unit got this wrong. we have to swap them
102
- expected = " #{code[1]}"
103
- actual = code[0]
104
- else
105
- expected = " #{code[0]}"
106
- actual = code[1]
107
- end
108
- translation = PLAIN_TRANSLATIONS[name]
109
- raise "No translation for '#{name}'" if translation.nil?
110
- return "#{actual}.#{translation}#{expected}"
111
- elsif exp[0].to_s =~ BLOCK_PATTERN
112
- name = exp.shift.to_s
113
- args = exp.shift
114
- code = []
115
- unless args.nil? then
116
- assert_type args, :array
117
- args.shift # :array
118
- until args.empty? do
119
- code << process(args.shift)
120
- end
121
- end
122
- suffix_arg = code.empty? ? "" : "(#{code[0]})"
123
- @lambda_suffix = "#{BLOCK_TRANSLATIONS[name]}#{suffix_arg}"
124
- return "lambda"
125
- else
126
- super
127
- end
128
- end
129
-
130
- def process_iter(exp)
131
- result = super
132
- if(@lambda_suffix)
133
- suffix = @lambda_suffix
134
- @lambda_suffix = nil
135
- "#{result}.#{suffix}"
136
- else
137
- result
138
- end
139
- end
140
-
141
- end
142
- end
143
- end
@@ -1,68 +0,0 @@
1
- require 'test/unit'
2
-
3
- module Spec
4
- module Tool
5
- class TestUnitApiTest < Test::Unit::TestCase
6
-
7
- def setup
8
- @an_int = 789
9
- end
10
-
11
- def teardown
12
- end
13
-
14
- def test_can_be_translated_to_rspec
15
- a_float = 123.45
16
- a_nil = nil
17
-
18
- assert true
19
- assert_not_nil @an_int
20
- assert_block { true }
21
- assert_block do
22
- true
23
- end
24
- assert_equal 789 ,@an_int, "a message"
25
- assert_in_delta 123.5, a_float, 0.1, "a message"
26
- assert_instance_of Fixnum, @an_int, "a message"
27
- assert_kind_of Numeric, @an_int, "a message"
28
- assert_match /789/ , @an_int.to_s
29
- assert_nil a_nil
30
- assert_no_match /7890/, @an_int.to_s, "a message"
31
- assert_not_equal 780, @an_int
32
- assert_not_nil @an_int, "a message"
33
- assert_not_same @an_int, a_float, "a message"
34
- assert_nothing_raised { foo = 1 }
35
- assert_nothing_raised do
36
- bar = 2
37
- end
38
- [2].each do |a|
39
- assert_equal 2, a
40
- end
41
- [0,1,2].each_with_index do |b, c|
42
- assert_equal c, b
43
- end
44
- assert_nothing_thrown { zip = 3 }
45
- assert_nothing_thrown do
46
- zap = 4
47
- end
48
- #assert_operator object1, operator, object2, "a message"
49
- assert_raise(NotImplementedError){ raise NotImplementedError }
50
- assert_raise(NotImplementedError) do
51
- raise NotImplementedError
52
- end
53
- assert_raises(NotImplementedError){ raise NotImplementedError }
54
- assert_raises(NotImplementedError) do
55
- raise NotImplementedError
56
- end
57
- assert_respond_to @an_int, :to_f, "a message"
58
- assert_same a_float, a_float, "a message"
59
- #assert_send send_array, "a message"
60
- assert_throws(:foo, "a message"){ throw :foo }
61
- assert_throws(:foo, "a message") do
62
- throw :foo
63
- end
64
- end
65
-
66
- end
67
- end
68
- end
@@ -1,34 +0,0 @@
1
- require File.dirname(__FILE__) + '/../../test_helper'
2
- require 'rubygems'
3
- require 'spec/tool/test_unit_translator'
4
- require 'spec/tool/test_unit_api_test'
5
- require 'tempfile'
6
-
7
- module Spec
8
- module Tool
9
- class TestUnitTranslatorTest < Test::Unit::TestCase
10
- def test_should_translate_test_classes_to_contexts
11
- c = TestUnitTranslator.new
12
- test_unit_file = File.dirname(__FILE__) + '/test_unit_api_test.rb'
13
- translated = c.translate(Spec::Tool::TestUnitApiTest)
14
- #puts translated
15
- #exit!1
16
- expected_path = File.dirname(__FILE__) + '/test_unit_api_spec.rb'
17
- expected = File.open(expected_path).read
18
-
19
- translated_tmp = Tempfile.open("translated")
20
- translated_tmp.write(translated)
21
- translated_tmp.flush
22
- translated_tmp.close
23
-
24
- diff = `diff -w -u #{expected_path} #{translated_tmp.path}`
25
- if diff.strip != ""
26
- fail("Conversion didn't match expectation. Diff:\n#{diff}")
27
- else
28
- assert true # Just so we get an assertion count in the output
29
- end
30
- end
31
-
32
- end
33
- end
34
- end