assert 2.15.0 → 2.15.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +7 -7
  2. data/Gemfile +0 -1
  3. data/{LICENSE.txt → LICENSE} +0 -0
  4. data/README.md +106 -35
  5. data/assert.gemspec +2 -2
  6. data/lib/assert/assert_runner.rb +19 -12
  7. data/lib/assert/assertions.rb +1 -0
  8. data/lib/assert/cli.rb +3 -0
  9. data/lib/assert/config.rb +24 -6
  10. data/lib/assert/config_helpers.rb +15 -28
  11. data/lib/assert/context.rb +4 -3
  12. data/lib/assert/context/test_dsl.rb +3 -2
  13. data/lib/assert/context_info.rb +19 -0
  14. data/lib/assert/default_runner.rb +12 -0
  15. data/lib/assert/default_suite.rb +64 -0
  16. data/lib/assert/default_view.rb +17 -15
  17. data/lib/assert/file_line.rb +3 -2
  18. data/lib/assert/result.rb +6 -0
  19. data/lib/assert/runner.rb +58 -21
  20. data/lib/assert/suite.rb +61 -100
  21. data/lib/assert/test.rb +3 -3
  22. data/lib/assert/version.rb +1 -1
  23. data/lib/assert/view.rb +58 -74
  24. data/lib/assert/view_helpers.rb +10 -48
  25. data/test/helper.rb +9 -0
  26. data/test/support/factory.rb +5 -5
  27. data/test/unit/assertions/assert_raises_tests.rb +20 -0
  28. data/test/unit/config_helpers_tests.rb +29 -29
  29. data/test/unit/config_tests.rb +43 -10
  30. data/test/unit/context/suite_dsl_tests.rb +1 -1
  31. data/test/unit/context_info_tests.rb +55 -0
  32. data/test/unit/default_runner_tests.rb +18 -0
  33. data/test/unit/default_suite_tests.rb +74 -0
  34. data/test/unit/file_line_tests.rb +6 -2
  35. data/test/unit/result_tests.rb +15 -4
  36. data/test/unit/runner_tests.rb +128 -6
  37. data/test/unit/suite_tests.rb +73 -182
  38. data/test/unit/view_helpers_tests.rb +44 -38
  39. data/test/unit/view_tests.rb +15 -39
  40. metadata +42 -28
  41. data/Rakefile +0 -1
@@ -1,9 +1,11 @@
1
1
  require 'assert'
2
2
  require 'assert/view_helpers'
3
3
 
4
+ require 'stringio'
4
5
  require 'assert/config'
5
6
  require 'assert/config_helpers'
6
7
  require 'assert/result'
8
+ require 'assert/view'
7
9
 
8
10
  module Assert::ViewHelpers
9
11
 
@@ -19,7 +21,7 @@ module Assert::ViewHelpers
19
21
  def config
20
22
  # use the assert config since it has tests, contexts, etc
21
23
  # also maybe use a fresh config that is empty
22
- @config ||= [Assert.config, Assert::Config.new].choice
24
+ @config ||= [Assert.config, Assert::Config.new].sample
23
25
  end
24
26
  end
25
27
  end
@@ -54,8 +56,7 @@ module Assert::ViewHelpers
54
56
  subject{ @helpers }
55
57
 
56
58
  should have_imeths :test_run_time, :test_result_rate
57
- should have_imeths :result_details_for, :matched_result_details_for
58
- should have_imeths :show_result_details?, :captured_output
59
+ should have_imeths :captured_output, :re_run_test_cmd
59
60
  should have_imeths :test_count_statement, :result_count_statement
60
61
  should have_imeths :to_sentence
61
62
  should have_imeths :all_pass_result_summary_msg, :result_summary_msg
@@ -74,25 +75,6 @@ module Assert::ViewHelpers
74
75
  assert_equal exp, subject.test_result_rate(test)
75
76
  end
76
77
 
77
- # note: not formally testing the result details for methods as the views
78
- # will break if these are broken.
79
-
80
- should "know whether to show result details" do
81
- assert_false subject.show_result_details?(Factory.pass_result)
82
-
83
- assert_true subject.show_result_details?(Factory.fail_result)
84
- assert_true subject.show_result_details?(Factory.error_result)
85
-
86
- skip_res, ignore_res = Factory.skip_result, Factory.ignore_result
87
- assert_true subject.show_result_details?(skip_res)
88
- assert_true subject.show_result_details?(ignore_res)
89
-
90
- Assert.stub(skip_res, :message){ nil}
91
- Assert.stub(ignore_res, :message){ nil}
92
- assert_false subject.show_result_details?(skip_res)
93
- assert_false subject.show_result_details?(ignore_res)
94
- end
95
-
96
78
  should "know how to build captured output" do
97
79
  output = Factory.string
98
80
  exp = "--- stdout ---\n"\
@@ -101,6 +83,12 @@ module Assert::ViewHelpers
101
83
  assert_equal exp, subject.captured_output(output)
102
84
  end
103
85
 
86
+ should "know how to build the re-run test cmd" do
87
+ test_id = "#{Dir.pwd}/#{Factory.string}_tests.rb:#{Factory.integer}"
88
+ exp = "assert -t #{test_id.gsub(Dir.pwd, '.')}"
89
+ assert_equal exp, subject.re_run_test_cmd(test_id)
90
+ end
91
+
104
92
  should "know its test count and result count statements" do
105
93
  exp = "#{subject.count(:tests)} test#{'s' if subject.count(:tests) != 1}"
106
94
  assert_equal exp, subject.test_count_statement
@@ -139,7 +127,7 @@ module Assert::ViewHelpers
139
127
  assert_equal exp, subject.result_summary_msg(res_type)
140
128
 
141
129
  Assert.stub(subject, :all_pass?){ false }
142
- res_type = [:pass, :ignore, :fail, :skip, :error].choice
130
+ res_type = [:pass, :ignore, :fail, :skip, :error].sample
143
131
  exp = "#{subject.count(res_type)} #{res_type.to_s}"
144
132
  assert_equal exp, subject.result_summary_msg(res_type)
145
133
  end
@@ -172,7 +160,7 @@ module Assert::ViewHelpers
172
160
  end
173
161
 
174
162
  should "map its code style names to ansi code strings" do
175
- styles = Factory.integer(3).times.map{ subject::CODES.keys.choice }
163
+ styles = Factory.integer(3).times.map{ subject::CODES.keys.sample }
176
164
  exp = styles.map{ |n| "\e[#{subject::CODES[n]}m" }.join('')
177
165
  assert_equal exp, subject.code_for(*styles)
178
166
 
@@ -185,24 +173,42 @@ module Assert::ViewHelpers
185
173
 
186
174
  end
187
175
 
188
- class ResultDetailsTests < UnitTests
189
- desc "ResultDetails"
176
+ class AnsiInitTests < UnitTests
177
+ desc "when mixed in on a view"
190
178
  setup do
191
- @result = Factory.string
192
- @test = Factory.test
193
- @index = Factory.integer
194
-
195
- @details = ResultDetails.new(@result, @test, @index)
179
+ view_class = Class.new(Assert::View){ include Ansi }
180
+ @view = view_class.new(Factory.modes_off_config, StringIO.new("", "w+"))
196
181
  end
197
- subject{ @details }
182
+ subject{ @view }
183
+
184
+ should have_imeths :ansi_styled_msg
185
+
186
+ should "know how to build ansi styled messages" do
187
+ msg = Factory.string
188
+ result = [:pass, :fail, :error, :skip, :ignore].sample
189
+
190
+ Assert.stub(subject, :is_tty?){ false }
191
+ Assert.stub(subject, :styled){ false }
192
+ assert_equal msg, subject.ansi_styled_msg(msg, result)
193
+
194
+ Assert.stub(subject, :is_tty?){ false }
195
+ Assert.stub(subject, :styled){ true }
196
+ assert_equal msg, subject.ansi_styled_msg(msg, result)
197
+
198
+ Assert.stub(subject, :is_tty?){ true }
199
+ Assert.stub(subject, :styled){ false }
200
+ assert_equal msg, subject.ansi_styled_msg(msg, result)
198
201
 
199
- should have_readers :result, :test_index, :test, :output
202
+ Assert.stub(subject, :is_tty?){ true }
203
+ Assert.stub(subject, :styled){ true }
204
+ Assert.stub(subject, "#{result}_styles"){ [] }
205
+ assert_equal msg, subject.ansi_styled_msg(msg, result)
200
206
 
201
- should "know its attrs" do
202
- assert_equal @result, subject.result
203
- assert_equal @test, subject.test
204
- assert_equal @index, subject.test_index
205
- assert_equal @test.output, subject.output
207
+ styles = Factory.integer(3).times.map{ Assert::ViewHelpers::Ansi::CODES.keys.sample }
208
+ Assert.stub(subject, "#{result}_styles"){ styles }
209
+ exp_code = Assert::ViewHelpers::Ansi.code_for(*styles)
210
+ exp = exp_code + msg + Assert::ViewHelpers::Ansi.code_for(:reset)
211
+ assert_equal exp, subject.ansi_styled_msg(msg, result)
206
212
  end
207
213
 
208
214
  end
@@ -2,10 +2,11 @@ require 'assert'
2
2
  require 'assert/view'
3
3
 
4
4
  require 'stringio'
5
+ require 'assert/config_helpers'
5
6
  require 'assert/suite'
6
7
  require 'assert/view_helpers'
7
8
 
8
- module Assert::View
9
+ class Assert::View
9
10
 
10
11
  class UnitTests < Assert::Context
11
12
  desc "Assert::View"
@@ -13,29 +14,32 @@ module Assert::View
13
14
 
14
15
  should have_instance_method :require_user_view
15
16
 
17
+ should "include the config helpers" do
18
+ assert_includes Assert::ConfigHelpers, subject
19
+ end
20
+
21
+ should "include the view helpers" do
22
+ assert_includes Assert::ViewHelpers, subject
23
+ end
24
+
16
25
  end
17
26
 
18
- class BaseTests < UnitTests
19
- desc "Base"
27
+ class InitTests < UnitTests
28
+ desc "when init"
20
29
  setup do
21
30
  @io = StringIO.new("", "w+")
22
31
  @config = Factory.modes_off_config
23
32
 
24
- @view = Assert::View::Base.new(@config, @io)
33
+ @view = Assert::View.new(@config, @io)
25
34
  end
26
35
  subject{ @view }
27
36
 
28
37
  should have_readers :config
29
- should have_imeths :view, :is_tty?, :ansi_styled_msg
30
- should have_imeths :fire
38
+ should have_imeths :view, :is_tty?
31
39
  should have_imeths :before_load, :after_load
32
40
  should have_imeths :on_start, :on_finish, :on_interrupt
33
41
  should have_imeths :before_test, :after_test, :on_result
34
42
 
35
- should "include the view helpers" do
36
- assert_includes Assert::ViewHelpers, subject.class
37
- end
38
-
39
43
  should "default its style options" do
40
44
  assert_false subject.styled
41
45
 
@@ -58,7 +62,7 @@ module Assert::View
58
62
  assert_equal @config, subject.config
59
63
  end
60
64
 
61
- should "expose itself as `view`" do
65
+ should "override the config helper's view value with itself" do
62
66
  assert_equal subject, subject.view
63
67
  end
64
68
 
@@ -66,34 +70,6 @@ module Assert::View
66
70
  assert_equal !!@io.isatty, subject.is_tty?
67
71
  end
68
72
 
69
- should "know how to build ansi styled messages" do
70
- msg = Factory.string
71
- result = [:pass, :fail, :error, :skip, :ignore].choice
72
-
73
- Assert.stub(subject, :is_tty?){ false }
74
- Assert.stub(subject, :styled){ false }
75
- assert_equal msg, subject.ansi_styled_msg(msg, result)
76
-
77
- Assert.stub(subject, :is_tty?){ false }
78
- Assert.stub(subject, :styled){ true }
79
- assert_equal msg, subject.ansi_styled_msg(msg, result)
80
-
81
- Assert.stub(subject, :is_tty?){ true }
82
- Assert.stub(subject, :styled){ false }
83
- assert_equal msg, subject.ansi_styled_msg(msg, result)
84
-
85
- Assert.stub(subject, :is_tty?){ true }
86
- Assert.stub(subject, :styled){ true }
87
- Assert.stub(subject, "#{result}_styles"){ [] }
88
- assert_equal msg, subject.ansi_styled_msg(msg, result)
89
-
90
- styles = Factory.integer(3).times.map{ Assert::ViewHelpers::Ansi::CODES.keys.choice }
91
- Assert.stub(subject, "#{result}_styles"){ styles }
92
- exp_code = Assert::ViewHelpers::Ansi.code_for(*styles)
93
- exp = exp_code + msg + Assert::ViewHelpers::Ansi.code_for(:reset)
94
- assert_equal exp, subject.ansi_styled_msg(msg, result)
95
- end
96
-
97
73
  end
98
74
 
99
75
  end
metadata CHANGED
@@ -1,31 +1,34 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: assert
3
- version: !ruby/object:Gem::Version
4
- version: 2.15.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.15.1
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Kelly Redding
8
8
  - Collin Redding
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-08-07 00:00:00.000000000 Z
12
+
13
+ date: 2016-03-29 00:00:00 Z
13
14
  dependencies: []
14
- description: Test::Unit style testing framework, just better than Test::Unit.
15
- email:
15
+
16
+ description: Assertion style testing framework.
17
+ email:
16
18
  - kelly@kellyredding.com
17
19
  - collin.redding@me.com
18
- executables:
20
+ executables:
19
21
  - assert
20
22
  extensions: []
23
+
21
24
  extra_rdoc_files: []
22
- files:
23
- - ".assert.rb"
24
- - ".gitignore"
25
+
26
+ files:
27
+ - .assert.rb
28
+ - .gitignore
25
29
  - Gemfile
26
- - LICENSE.txt
30
+ - LICENSE
27
31
  - README.md
28
- - Rakefile
29
32
  - assert.gemspec
30
33
  - bin/assert
31
34
  - lib/assert.rb
@@ -39,6 +42,9 @@ files:
39
42
  - lib/assert/context/subject_dsl.rb
40
43
  - lib/assert/context/suite_dsl.rb
41
44
  - lib/assert/context/test_dsl.rb
45
+ - lib/assert/context_info.rb
46
+ - lib/assert/default_runner.rb
47
+ - lib/assert/default_suite.rb
42
48
  - lib/assert/default_view.rb
43
49
  - lib/assert/factory.rb
44
50
  - lib/assert/file_line.rb
@@ -82,7 +88,10 @@ files:
82
88
  - test/unit/context/subject_dsl_tests.rb
83
89
  - test/unit/context/suite_dsl_tests.rb
84
90
  - test/unit/context/test_dsl_tests.rb
91
+ - test/unit/context_info_tests.rb
85
92
  - test/unit/context_tests.rb
93
+ - test/unit/default_runner_tests.rb
94
+ - test/unit/default_suite_tests.rb
86
95
  - test/unit/factory_tests.rb
87
96
  - test/unit/file_line_tests.rb
88
97
  - test/unit/macro_tests.rb
@@ -96,30 +105,32 @@ files:
96
105
  - test/unit/view_tests.rb
97
106
  - tmp/.gitkeep
98
107
  homepage: http://github.com/redding/assert
99
- licenses:
108
+ licenses:
100
109
  - MIT
101
110
  metadata: {}
111
+
102
112
  post_install_message:
103
113
  rdoc_options: []
104
- require_paths:
114
+
115
+ require_paths:
105
116
  - lib
106
- required_ruby_version: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- required_rubygems_version: !ruby/object:Gem::Requirement
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: '0'
117
+ required_ruby_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - &id001
120
+ - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: "0"
123
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - *id001
116
126
  requirements: []
127
+
117
128
  rubyforge_project:
118
- rubygems_version: 2.4.5
129
+ rubygems_version: 2.5.1
119
130
  signing_key:
120
131
  specification_version: 4
121
- summary: Test::Unit style testing framework, just better than Test::Unit.
122
- test_files:
132
+ summary: Assertion style testing framework.
133
+ test_files:
123
134
  - test/helper.rb
124
135
  - test/support/diff_a.txt
125
136
  - test/support/diff_b.txt
@@ -148,7 +159,10 @@ test_files:
148
159
  - test/unit/context/subject_dsl_tests.rb
149
160
  - test/unit/context/suite_dsl_tests.rb
150
161
  - test/unit/context/test_dsl_tests.rb
162
+ - test/unit/context_info_tests.rb
151
163
  - test/unit/context_tests.rb
164
+ - test/unit/default_runner_tests.rb
165
+ - test/unit/default_suite_tests.rb
152
166
  - test/unit/factory_tests.rb
153
167
  - test/unit/file_line_tests.rb
154
168
  - test/unit/macro_tests.rb
data/Rakefile DELETED
@@ -1 +0,0 @@
1
- require "bundler/gem_tasks"