assert 1.1.0 → 2.0.0.rc.1

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.
Files changed (49) hide show
  1. data/.assert.rb +3 -0
  2. data/README.md +182 -108
  3. data/Rakefile +0 -3
  4. data/bin/assert +1 -1
  5. data/lib/assert.rb +75 -4
  6. data/lib/assert/assert_runner.rb +76 -0
  7. data/lib/assert/cli.rb +25 -46
  8. data/lib/assert/context.rb +3 -3
  9. data/lib/assert/result.rb +65 -55
  10. data/lib/assert/runner.rb +19 -38
  11. data/lib/assert/suite.rb +0 -7
  12. data/lib/assert/test.rb +4 -16
  13. data/lib/assert/version.rb +1 -1
  14. data/lib/assert/view.rb +23 -0
  15. data/lib/assert/view/base.rb +10 -19
  16. data/lib/assert/view/default_view.rb +16 -11
  17. data/lib/assert/view/helpers/ansi_styles.rb +1 -1
  18. data/lib/assert/view/helpers/common.rb +37 -16
  19. data/test/assert_test.rb +29 -14
  20. data/test/context/class_methods_test.rb +2 -2
  21. data/test/context_test.rb +28 -50
  22. data/test/helper.rb +4 -2
  23. data/test/runner_test.rb +5 -4
  24. data/test/suite_test.rb +1 -1
  25. data/test/test_test.rb +8 -15
  26. data/test/view/base_tests.rb +20 -37
  27. metadata +17 -39
  28. data/lib/assert/autorun.rb +0 -37
  29. data/lib/assert/options.rb +0 -43
  30. data/lib/assert/rake_tasks.rb +0 -75
  31. data/lib/assert/rake_tasks/irb.rb +0 -33
  32. data/lib/assert/rake_tasks/scope.rb +0 -100
  33. data/lib/assert/rake_tasks/test_task.rb +0 -66
  34. data/lib/assert/result_set.rb +0 -17
  35. data/lib/assert/setup.rb +0 -3
  36. data/lib/assert/setup/all.rb +0 -5
  37. data/lib/assert/setup/helpers.rb +0 -72
  38. data/lib/assert/setup/options.rb +0 -6
  39. data/lib/assert/setup/runner.rb +0 -13
  40. data/lib/assert/setup/suite.rb +0 -13
  41. data/lib/assert/setup/view.rb +0 -39
  42. data/lib/assert/view/helpers/capture_output.rb +0 -23
  43. data/test/default_view_test.rb +0 -16
  44. data/test/irb.rb +0 -5
  45. data/test/options_test.rb +0 -40
  46. data/test/rake_tasks/irb_test.rb +0 -45
  47. data/test/rake_tasks/scope_test.rb +0 -63
  48. data/test/rake_tasks/test_task_test.rb +0 -80
  49. data/test/result_set_test.rb +0 -72
@@ -22,7 +22,7 @@ class Assert::Suite
22
22
 
23
23
  should have_accessors :tests, :test_methods
24
24
  should have_accessors :start_time, :end_time
25
- should have_instance_method :run_time, :runner_seed
25
+ should have_instance_method :run_time
26
26
 
27
27
  should "determine a klass' local public test methods" do
28
28
  assert_equal(
@@ -191,24 +191,22 @@ class Assert::Test
191
191
  puts "std out from the test"
192
192
  assert true
193
193
  }
194
- @orig_capture = @test.class.options.capture_output
195
- @test.class.options.capture_output(true)
196
- @test.run
194
+ @orig_show = Assert.config.show_output
195
+ Assert.config.show_output false
197
196
  }
198
197
  teardown {
199
- @test.class.options.capture_output(@orig_capture)
198
+ Assert.config.show_output @orig_show
200
199
  }
201
200
 
202
201
  should "capture any io from the test" do
202
+ @test.run
203
203
  assert_equal "std out from the test\n", @test.output
204
204
  end
205
205
 
206
206
  end
207
207
 
208
-
209
-
210
- class FullOutputCaptureTest < BasicTest
211
- desc "when collecting std out across setup, teardown, and meth calls"
208
+ class FullCaptureOutTest < CaptureOutTest
209
+ desc "across setup, teardown, and meth calls"
212
210
  setup do
213
211
  @test = Factory.test("fullstdouttest") {
214
212
  puts "std out from the test"
@@ -220,16 +218,11 @@ class Assert::Test
220
218
  puts "std out from a method an assert called"
221
219
  true
222
220
  end
223
-
224
- @orig_capture = @test.class.options.capture_output
225
- @test.class.options.capture_output(true)
226
- @test.run
227
221
  end
228
- teardown {
229
- @test.class.options.capture_output(@orig_capture)
230
- }
231
222
 
232
223
  should "collect it on itself in the output accessor" do
224
+ @test.run
225
+
233
226
  assert_equal([
234
227
  "std out from the setup",
235
228
  "std out from the test",
@@ -9,29 +9,32 @@ module Assert::View
9
9
  class BaseTests < Assert::Context
10
10
  desc "the base view"
11
11
  setup do
12
- @view = Assert::View::Base.new(Assert::Suite.new, StringIO.new("", "w+"))
12
+ @view = Assert::View::Base.new(StringIO.new("", "w+"), Assert::Suite.new)
13
13
  end
14
14
  subject{ @view }
15
15
 
16
- # options
17
- should have_instance_method :options
18
- should have_class_method :options
19
-
20
16
  # accessors, base methods
21
- should have_accessors :suite, :output_io
22
- should have_instance_methods :view, :fire
23
- should have_instance_methods :before_load, :after_load, :on_start, :on_finish
24
- should have_instance_methods :before_test, :after_test, :on_result
17
+ should have_imeths :view, :suite, :fire
18
+ should have_imeths :before_load, :after_load, :on_start, :on_finish
19
+ should have_imeths :before_test, :after_test, :on_result
25
20
 
26
21
  # common methods
27
- should have_instance_methods :run_time, :runner_seed, :count, :tests?, :all_pass?
28
- should have_instance_methods :suite_contexts, :ordered_suite_contexts
29
- should have_instance_methods :suite_files, :ordered_suite_files
30
- should have_instance_methods :result_details_for, :show_result_details?
31
- should have_instance_methods :ocurring_result_types, :result_summary_msg
32
- should have_instance_methods :all_pass_result_summary_msg, :results_summary_sentence
33
- should have_instance_methods :test_count_statement, :result_count_statement
34
- should have_instance_methods :to_sentence
22
+ should have_imeths :run_time, :runner_seed, :count, :tests?, :all_pass?
23
+ should have_imeths :suite_contexts, :ordered_suite_contexts
24
+ should have_imeths :suite_files, :ordered_suite_files
25
+ should have_imeths :result_details_for, :show_result_details?
26
+ should have_imeths :ocurring_result_types, :result_summary_msg
27
+ should have_imeths :all_pass_result_summary_msg, :results_summary_sentence
28
+ should have_imeths :test_count_statement, :result_count_statement
29
+ should have_imeths :to_sentence
30
+
31
+ should "default its result abbreviations" do
32
+ assert_equal '.', subject.pass_abbrev
33
+ assert_equal 'F', subject.fail_abbrev
34
+ assert_equal 'I', subject.ignore_abbrev
35
+ assert_equal 'S', subject.skip_abbrev
36
+ assert_equal 'E', subject.error_abbrev
37
+ end
35
38
 
36
39
  end
37
40
 
@@ -42,24 +45,4 @@ module Assert::View
42
45
  should have_instance_method :require_user_view
43
46
  end
44
47
 
45
- class BaseOptionsTestx < Assert::Context
46
- desc "options for the base view"
47
- subject do
48
- Assert::View::Base.options
49
- end
50
-
51
- should "be an Options::Base object" do
52
- assert_kind_of Assert::Options::Base, subject
53
- end
54
-
55
- should "default its result abbreviations" do
56
- assert_equal '.', subject.default_pass_abbrev
57
- assert_equal 'F', subject.default_fail_abbrev
58
- assert_equal 'I', subject.default_ignore_abbrev
59
- assert_equal 'S', subject.default_skip_abbrev
60
- assert_equal 'E', subject.default_error_abbrev
61
- end
62
-
63
- end
64
-
65
48
  end
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assert
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease:
4
+ hash: -2762361102
5
+ prerelease: 6
6
6
  segments:
7
- - 1
8
- - 1
7
+ - 2
9
8
  - 0
10
- version: 1.1.0
9
+ - 0
10
+ - rc
11
+ - 1
12
+ version: 2.0.0.rc.1
11
13
  platform: ruby
12
14
  authors:
13
15
  - Kelly Redding
@@ -16,7 +18,7 @@ autorequire:
16
18
  bindir: bin
17
19
  cert_chain: []
18
20
 
19
- date: 2013-02-13 00:00:00 Z
21
+ date: 2013-02-16 00:00:00 Z
20
22
  dependencies:
21
23
  - !ruby/object:Gem::Dependency
22
24
  name: ansi
@@ -44,6 +46,7 @@ extensions: []
44
46
  extra_rdoc_files: []
45
47
 
46
48
  files:
49
+ - .assert.rb
47
50
  - .gitignore
48
51
  - CHANGELOG.md
49
52
  - Gemfile
@@ -53,34 +56,21 @@ files:
53
56
  - assert.gemspec
54
57
  - bin/assert
55
58
  - lib/assert.rb
59
+ - lib/assert/assert_runner.rb
56
60
  - lib/assert/assertions.rb
57
- - lib/assert/autorun.rb
58
61
  - lib/assert/cli.rb
59
62
  - lib/assert/context.rb
60
63
  - lib/assert/macro.rb
61
64
  - lib/assert/macros/methods.rb
62
- - lib/assert/options.rb
63
- - lib/assert/rake_tasks.rb
64
- - lib/assert/rake_tasks/irb.rb
65
- - lib/assert/rake_tasks/scope.rb
66
- - lib/assert/rake_tasks/test_task.rb
67
65
  - lib/assert/result.rb
68
- - lib/assert/result_set.rb
69
66
  - lib/assert/runner.rb
70
- - lib/assert/setup.rb
71
- - lib/assert/setup/all.rb
72
- - lib/assert/setup/helpers.rb
73
- - lib/assert/setup/options.rb
74
- - lib/assert/setup/runner.rb
75
- - lib/assert/setup/suite.rb
76
- - lib/assert/setup/view.rb
77
67
  - lib/assert/suite.rb
78
68
  - lib/assert/test.rb
79
69
  - lib/assert/version.rb
70
+ - lib/assert/view.rb
80
71
  - lib/assert/view/base.rb
81
72
  - lib/assert/view/default_view.rb
82
73
  - lib/assert/view/helpers/ansi_styles.rb
83
- - lib/assert/view/helpers/capture_output.rb
84
74
  - lib/assert/view/helpers/common.rb
85
75
  - test/assert_test.rb
86
76
  - test/assertions/assert_block_test.rb
@@ -110,7 +100,6 @@ files:
110
100
  - test/assertions_test.rb
111
101
  - test/context/class_methods_test.rb
112
102
  - test/context_test.rb
113
- - test/default_view_test.rb
114
103
  - test/fixtures/inherited_stuff.rb
115
104
  - test/fixtures/sample_context.rb
116
105
  - test/fixtures/test_root/one_test.rb
@@ -120,13 +109,7 @@ files:
120
109
  - test/fixtures/test_root/shallow_test.rb
121
110
  - test/fixtures/test_root/two_test.rb
122
111
  - test/helper.rb
123
- - test/irb.rb
124
112
  - test/macro_test.rb
125
- - test/options_test.rb
126
- - test/rake_tasks/irb_test.rb
127
- - test/rake_tasks/scope_test.rb
128
- - test/rake_tasks/test_task_test.rb
129
- - test/result_set_test.rb
130
113
  - test/result_test.rb
131
114
  - test/runner_test.rb
132
115
  - test/suite/context_info_test.rb
@@ -154,12 +137,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
154
137
  required_rubygems_version: !ruby/object:Gem::Requirement
155
138
  none: false
156
139
  requirements:
157
- - - ">="
140
+ - - ">"
158
141
  - !ruby/object:Gem::Version
159
- hash: 3
142
+ hash: 25
160
143
  segments:
161
- - 0
162
- version: "0"
144
+ - 1
145
+ - 3
146
+ - 1
147
+ version: 1.3.1
163
148
  requirements: []
164
149
 
165
150
  rubyforge_project:
@@ -196,7 +181,6 @@ test_files:
196
181
  - test/assertions_test.rb
197
182
  - test/context/class_methods_test.rb
198
183
  - test/context_test.rb
199
- - test/default_view_test.rb
200
184
  - test/fixtures/inherited_stuff.rb
201
185
  - test/fixtures/sample_context.rb
202
186
  - test/fixtures/test_root/one_test.rb
@@ -206,13 +190,7 @@ test_files:
206
190
  - test/fixtures/test_root/shallow_test.rb
207
191
  - test/fixtures/test_root/two_test.rb
208
192
  - test/helper.rb
209
- - test/irb.rb
210
193
  - test/macro_test.rb
211
- - test/options_test.rb
212
- - test/rake_tasks/irb_test.rb
213
- - test/rake_tasks/scope_test.rb
214
- - test/rake_tasks/test_task_test.rb
215
- - test/result_set_test.rb
216
194
  - test/result_test.rb
217
195
  - test/runner_test.rb
218
196
  - test/suite/context_info_test.rb
@@ -1,37 +0,0 @@
1
- require 'assert/setup/all'
2
-
3
- module Assert
4
-
5
- # a flag to know if at_exit hook has been installed already
6
- @@at_exit_installed ||= false
7
-
8
- # install at_exit hook (if needed) (runs at process exit)
9
- # this ensures the test suite won't run until all test files are loaded
10
- # (this is essentially a direct rip from Minitest)
11
-
12
- def self.autorun
13
- if !@@at_exit_installed
14
- self.view.fire(:before_load)
15
-
16
- at_exit do
17
- # don't run if there was an exception
18
- next if $!
19
-
20
- # the order here is important. The at_exit handler must be
21
- # installed before anyone else gets a chance to install their
22
- # own, that way we can be assured that our exit will be last
23
- # to run (at_exit stacks).
24
-
25
- exit_code = nil
26
- at_exit { exit(false) if exit_code && exit_code != 0 }
27
-
28
- self.view.fire(:after_load)
29
- self.runner.new(self.suite, self.view).run
30
- end
31
-
32
- @@at_exit_installed = true
33
- end
34
- end
35
-
36
- end
37
-
@@ -1,43 +0,0 @@
1
- module Assert
2
- module Options
3
-
4
- class Base
5
- def method_missing(method, *args, &block)
6
- if args.empty?
7
- self.instance_variable_get("@#{method}")
8
- else
9
- value = args.size == 1 ? args.first : args
10
- self.instance_variable_set("@#{method}", value)
11
- if method.to_s =~ /^default_/
12
- self.instance_variable_set("@#{$'}", value)
13
- end
14
- end
15
- end
16
-
17
- end
18
-
19
- def self.included(receiver)
20
- receiver.send(:class_variable_set, "@@options", Base.new)
21
- receiver.send(:extend, ClassMethods)
22
- receiver.send(:include, InstanceMethods)
23
- end
24
-
25
- module ClassMethods
26
- def options(&block)
27
- options = self.send(:class_variable_get, "@@options")
28
- if block_given?
29
- options.instance_eval(&block)
30
- else
31
- options
32
- end
33
- end
34
- end
35
-
36
- module InstanceMethods
37
- def options
38
- self.class.options
39
- end
40
- end
41
-
42
- end
43
- end
@@ -1,75 +0,0 @@
1
- require 'rake'
2
-
3
- module Assert; end
4
- module Assert::RakeTasks; end
5
-
6
- require 'assert/rake_tasks/irb'
7
- require 'assert/rake_tasks/scope'
8
- require 'assert/rake_tasks/test_task'
9
-
10
- module Assert::RakeTasks
11
-
12
- # Setup the rake tasks for testing
13
- # * add 'include Assert::RakeTasks' to your Rakefile
14
- def self.included(receiver)
15
- # auto-install rake tasks
16
- self.install
17
- end
18
-
19
- def self.install
20
- warn "[DEPRECATED] `Assert::RakeTasts` has been deprecated. Support for running tests with Rake will be removed in v2.0. Use the assert CLI instead."
21
-
22
- assert_test_root = ENV['ASSERT_TEST_ROOT'] || './test'
23
-
24
- if File.exists?(assert_test_root)
25
- self.irb_task(Assert::RakeTasks::Irb.new(assert_test_root))
26
- self.to_tasks(Assert::RakeTasks::Scope.new(assert_test_root))
27
- end
28
- end
29
-
30
- def self.for(test_root_name)
31
- warn "[DEPRECATED] `Assert::RakeTasts.for` has been deprecated. Use `Assert::RakeTasks.install` instead."
32
- end
33
-
34
- class << self
35
- include Rake::DSL if defined? Rake::DSL
36
-
37
- def irb_task(irb)
38
- if irb.helper_exists?
39
- desc irb.description
40
- task irb.class.task_name do
41
- sh irb.cmd
42
- end
43
- end
44
- end
45
-
46
- def to_tasks(scope)
47
- # if there is a test task for the scope
48
- if (scope_tt = scope.to_test_task)
49
- # create a rake task to run it
50
- desc scope_tt.description
51
- task scope_tt.name do
52
- RakeFileUtils.verbose(scope_tt.show_loaded_files?) { ruby scope_tt.ruby_args }
53
- end
54
- end
55
-
56
- # create a namespace for the scope
57
- namespace scope.namespace do
58
- # for each test task in the scope, create a rake task to run it
59
- scope.test_tasks.each do |test_file_tt|
60
- desc test_file_tt.description
61
- task test_file_tt.name do
62
- RakeFileUtils.verbose(test_file_tt.show_loaded_files?) { ruby test_file_tt.ruby_args }
63
- end
64
- end
65
-
66
- # recusively generate rake tasks for each sub-scope in the scope
67
- scope.scopes.each do |sub_scope|
68
- self.to_tasks(sub_scope)
69
- end
70
- end
71
-
72
- end
73
- end
74
-
75
- end
@@ -1,33 +0,0 @@
1
- module Assert::RakeTasks
2
- class Irb
3
-
4
- def self.file_name
5
- "irb.rb"
6
- end
7
-
8
- def self.task_name
9
- :irb
10
- end
11
-
12
- def initialize(test_root)
13
- @test_root = test_root
14
- end
15
-
16
- def file_path
17
- File.join(@test_root.to_s, self.class.file_name)
18
- end
19
-
20
- def helper_exists?
21
- File.exists?(self.file_path)
22
- end
23
-
24
- def description
25
- "Open irb preloaded with #{self.file_path}"
26
- end
27
-
28
- def cmd
29
- "irb -rubygems -r #{self.file_path}"
30
- end
31
-
32
- end
33
- end