assert 2.15.0 → 2.15.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 (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"