assert 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/lib/assert.rb +2 -5
- data/lib/assert/{setup/autorun.rb → autorun.rb} +1 -0
- data/lib/assert/context.rb +7 -1
- data/lib/assert/rake_tasks.rb +1 -5
- data/lib/assert/setup.rb +5 -0
- data/lib/assert/setup/helpers.rb +4 -3
- data/lib/assert/suite.rb +10 -1
- data/lib/assert/version.rb +1 -1
- data/test/fixtures/inherited_stuff.rb +14 -1
- data/test/helper.rb +1 -1
- data/test/irb.rb +2 -4
- data/test/suite_test.rb +1 -1
- metadata +6 -8
- data/examples/empty_test.rb +0 -5
- data/examples/results_test.rb +0 -25
- data/examples/single_test.rb +0 -9
data/Gemfile.lock
CHANGED
data/lib/assert.rb
CHANGED
data/lib/assert/context.rb
CHANGED
@@ -86,11 +86,17 @@ module Assert
|
|
86
86
|
else
|
87
87
|
raise ArgumentError, "please provide a test block" unless block_given?
|
88
88
|
method_name = "test: should #{desc_or_macro}"
|
89
|
-
|
89
|
+
|
90
|
+
# instead of using the typical 'method_defined?' pattern (which) checks
|
91
|
+
# all parent contexts, we really just need to make sure the method_name
|
92
|
+
# is not part of self's local_pulic_test_methods for this check
|
93
|
+
if Assert.suite.send(:local_public_test_methods, self).include?(method_name)
|
90
94
|
from = caller.first
|
91
95
|
puts "WARNING: should #{desc_or_macro.inspect} is redefining #{method_name}!"
|
92
96
|
puts " from: #{from}"
|
97
|
+
puts " self: #{self.inspect}"
|
93
98
|
end
|
99
|
+
|
94
100
|
define_method(method_name, &block)
|
95
101
|
end
|
96
102
|
end
|
data/lib/assert/rake_tasks.rb
CHANGED
@@ -3,17 +3,13 @@ require 'rake/tasklib'
|
|
3
3
|
|
4
4
|
module Assert; end
|
5
5
|
module Assert::RakeTasks
|
6
|
+
include Rake::DSL if defined? Rake::DSL
|
6
7
|
|
7
8
|
FILE_SUFFIX = "_test.rb"
|
8
9
|
|
9
10
|
# Setup the rake tasks for testing
|
10
11
|
# * add 'include Assert::RakeTasks' to your Rakefile
|
11
12
|
def self.included(receiver)
|
12
|
-
# get rid of rake warnings
|
13
|
-
if defined?(::Rake::DSL)
|
14
|
-
receiver.send :include, ::Rake::DSL
|
15
|
-
end
|
16
|
-
|
17
13
|
# auto-build rake tasks for the ./test files (if defined in ./test)
|
18
14
|
self.for(:test) if File.exists?(File.expand_path('./test', Dir.pwd))
|
19
15
|
end
|
data/lib/assert/setup.rb
ADDED
data/lib/assert/setup/helpers.rb
CHANGED
@@ -15,7 +15,7 @@ module Assert
|
|
15
15
|
PACKAGE_HELPER_FILE = "helper"
|
16
16
|
TEST_REGEX = /^#{PACKAGE_TEST_DIR}$|^#{PACKAGE_TEST_DIR}\/|\/#{PACKAGE_TEST_DIR}\/|\/#{PACKAGE_TEST_DIR}$/
|
17
17
|
|
18
|
-
USER_TEST_HELPER = "~/.assert"
|
18
|
+
USER_TEST_HELPER = "~/.assert/options"
|
19
19
|
|
20
20
|
def load(caller_info)
|
21
21
|
if (crp = caller_root_path(caller_info))
|
@@ -52,8 +52,9 @@ module Assert
|
|
52
52
|
# parent dir of caller named TEST_DIR
|
53
53
|
def caller_root_path(caller_info)
|
54
54
|
caller_dirname = File.expand_path(File.dirname(caller_info[0]))
|
55
|
-
|
56
|
-
|
55
|
+
test_dir_pos = caller_dirname.index(TEST_REGEX)
|
56
|
+
if test_dir_pos && (test_dir_pos > 0)
|
57
|
+
caller_dirname[0..(test_dir_pos-1)]
|
57
58
|
end
|
58
59
|
end
|
59
60
|
end
|
data/lib/assert/suite.rb
CHANGED
@@ -97,11 +97,20 @@ module Assert
|
|
97
97
|
end
|
98
98
|
|
99
99
|
def local_public_test_methods(klass)
|
100
|
+
# start with all public meths, store off the local ones
|
100
101
|
methods = klass.public_instance_methods
|
102
|
+
local_methods = klass.public_instance_methods(false)
|
103
|
+
|
104
|
+
# remove any from the superclass
|
101
105
|
while (klass.superclass)
|
102
106
|
methods -= (klass = klass.superclass).public_instance_methods
|
103
107
|
end
|
104
|
-
|
108
|
+
|
109
|
+
# add back in the local ones (to work around super having the same methods)
|
110
|
+
methods += local_methods
|
111
|
+
|
112
|
+
# uniq and remove any that don't start with 'test'
|
113
|
+
methods.uniq.delete_if {|method_name| method_name !~ /^test./ }
|
105
114
|
end
|
106
115
|
|
107
116
|
private
|
data/lib/assert/version.rb
CHANGED
@@ -17,9 +17,17 @@ class SuperStuff
|
|
17
17
|
"super not test meth"
|
18
18
|
end
|
19
19
|
|
20
|
+
def test_from_super
|
21
|
+
"test from the super"
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_repeated
|
25
|
+
"repeated test from super"
|
26
|
+
end
|
27
|
+
|
20
28
|
end
|
21
29
|
|
22
|
-
class SubStuff
|
30
|
+
class SubStuff < SuperStuff
|
23
31
|
include MixinStuff
|
24
32
|
|
25
33
|
def test_subclass_stuff
|
@@ -33,4 +41,9 @@ class SubStuff
|
|
33
41
|
def more_other_stuff
|
34
42
|
"more other stuff"
|
35
43
|
end
|
44
|
+
|
45
|
+
def test_repeated
|
46
|
+
"repeated test from sub"
|
47
|
+
end
|
48
|
+
|
36
49
|
end
|
data/test/helper.rb
CHANGED
data/test/irb.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
require
|
1
|
+
# require in any test helper and load user settings
|
2
|
+
require 'assert/setup'
|
2
3
|
|
3
4
|
# this file is required in when the 'irb' rake test is run.
|
4
|
-
# b/c 'assert' is required above, the test helper will be
|
5
|
-
# required in.
|
6
|
-
|
7
5
|
# put any IRB setup code here
|
data/test/suite_test.rb
CHANGED
@@ -35,7 +35,7 @@ class Assert::Suite
|
|
35
35
|
|
36
36
|
should "determine a klass' local public test methods" do
|
37
37
|
assert_equal(
|
38
|
-
["test_subclass_stuff", "test_mixin_stuff"].sort,
|
38
|
+
["test_subclass_stuff", "test_mixin_stuff", "test_repeated"].sort,
|
39
39
|
subject.send(:local_public_test_methods, SubStuff).sort.collect(&:to_s)
|
40
40
|
)
|
41
41
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: assert
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kelly Redding
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-08-
|
19
|
+
date: 2011-08-22 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: bundler
|
@@ -64,11 +64,9 @@ files:
|
|
64
64
|
- README.rdoc
|
65
65
|
- Rakefile
|
66
66
|
- assert.gemspec
|
67
|
-
- examples/empty_test.rb
|
68
|
-
- examples/results_test.rb
|
69
|
-
- examples/single_test.rb
|
70
67
|
- lib/assert.rb
|
71
68
|
- lib/assert/assertions.rb
|
69
|
+
- lib/assert/autorun.rb
|
72
70
|
- lib/assert/context.rb
|
73
71
|
- lib/assert/macro.rb
|
74
72
|
- lib/assert/macros/methods.rb
|
@@ -77,7 +75,7 @@ files:
|
|
77
75
|
- lib/assert/result.rb
|
78
76
|
- lib/assert/result_set.rb
|
79
77
|
- lib/assert/runner.rb
|
80
|
-
- lib/assert/setup
|
78
|
+
- lib/assert/setup.rb
|
81
79
|
- lib/assert/setup/helpers.rb
|
82
80
|
- lib/assert/setup/suite.rb
|
83
81
|
- lib/assert/setup/view.rb
|
data/examples/empty_test.rb
DELETED
data/examples/results_test.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'assert'
|
2
|
-
|
3
|
-
class ResultsTest < Assert::Context
|
4
|
-
|
5
|
-
def test_that_passes
|
6
|
-
assert 1==1
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_that_fails
|
10
|
-
assert 1==0
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_that_ignores
|
14
|
-
ignore
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_that_skips
|
18
|
-
skip
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_that_errors
|
22
|
-
raise Exception
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|