doggo 0.0.2 → 1.2.0

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 (6) hide show
  1. checksums.yaml +15 -5
  2. data/LICENSE.txt +21 -0
  3. data/README.md +125 -0
  4. data/lib/doggo.rb +8 -4
  5. data/spec/internal_spec.rb +13 -1
  6. metadata +31 -22
checksums.yaml CHANGED
@@ -1,7 +1,17 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: e400910e348f37feab93f558dc22c8ccff17bb5978ac0466827274f7b568a3cc
4
- data.tar.gz: db85734f689ef749c06ad135ce24bc5e36e92b3a749178da187cbddb95cfbe3c
2
+ !binary "U0hBMjU2":
3
+ metadata.gz: !binary |-
4
+ ZjZiMjhhN2YwNGMyM2RhNDk0ZWNmYWFiMzE2ODM2MmI3YTgyZjU2OGQwZmY0
5
+ OGQ1MmUyYTI2MDY1OWQxODI0ZQ==
6
+ data.tar.gz: !binary |-
7
+ Yjk2MzQzN2M2NmFiYzZjZDE0YTdmNmQwMDNlNzUzMjVkMzEyOWU3ZGJkYWRl
8
+ ZTNjODcyMGNjMmQwYzMzMjc4Ng==
5
9
  SHA512:
6
- metadata.gz: c8f448cde211ab681a0057c1bfbeb56c3ae80aad416078c39fc1b12714ad81e7d934680ff77eaf71076fba55b67abe8f5839bf11ea31088bc352feca69c92964
7
- data.tar.gz: e4561e754671832aab4f1afea408c2c06613b848387d7239679385e0ebe8ce684926ccbb279beb579cd032ec4e1c425142dabc833388be4e5f4d9a39759b6d09
10
+ metadata.gz: !binary |-
11
+ ODJmNjM2YWQ4NTk3NmQyZjA2MGVjNzEyOGEwNDllMDVmMmRmZGRkZGRhNjky
12
+ NWZkNTUyMGVjMDFiZWE4OTllODVmZTkyNGNhNjY4ZWMwOWQ1M2NmOGI1NjVk
13
+ OTkzYjA0ODcyZTcyN2U5YWNkYWI4ZDA1MDMzMzE0M2IwNmU5NDA=
14
+ data.tar.gz: !binary |-
15
+ YmQzYjkzMDA5YWQ0NmM2MWZiYjk5YzNkYzlkZWU5MWVmNGViNDE2NjAyMjI2
16
+ YjJmNDQ5NmQxMWNlZTYwY2FhMmEzNWMwNzA5ODc2MDY5NjdjMWMzNTBjZjY2
17
+ YjlhZTQ4NGM5MzUyZWM5NjY1MTIzYTkzNWNkMWViZWM0YzU3MDc=
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 RIPA Global
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,125 @@
1
+ # Doggo
2
+
3
+ [![License](https://img.shields.io/badge/license-mit-blue.svg)](https://opensource.org/licenses/MIT)
4
+ [![Build Status](https://app.travis-ci.com/RIPGlobal/doggo.svg?branch=master)](https://app.travis-ci.com/RIPGlobal/doggo)
5
+
6
+ An [RSpec](https://github.com/rspec) formatter that looks like `--format documentation`, but adds an indication of test number and overall test count at the start of each line.
7
+
8
+ ## Example output
9
+
10
+ Regenerate this with `FOR_EXAMPLE=yes bundle exec rspec --order defined`:
11
+
12
+ ```
13
+ [ 10] Doggo examples
14
+ [01/10] outer passes
15
+ [02/10] FAILED (1) - outer fails
16
+
17
+ 1) Doggo examples outer fails
18
+ Failure/Error: expect(true).to eql(false)
19
+
20
+ expected: false
21
+ got: true
22
+
23
+ (compared using eql?)
24
+
25
+ Diff:
26
+ @@ -1,2 +1,2 @@
27
+ -false
28
+ +true
29
+
30
+ # ./spec/example/doggo_spec.rb:29:in `block (2 levels) in <top (required)>'
31
+
32
+ [03/10] PENDING - outer is pending with xit
33
+ [04/10] FAILED (2) - outer is pending with a custom message
34
+
35
+ 2) Doggo examples outer is pending with a custom message FIXED
36
+ Expected pending 'custom message' to fail. No error was raised.
37
+ # ./spec/example/doggo_spec.rb:35
38
+
39
+ [ 10] in a context
40
+ [ 10] with a nested context
41
+ [05/10] passes
42
+ [06/10] FAILED (3) - fails
43
+
44
+ 3) Doggo examples in a context with a nested context fails
45
+ Failure/Error: expect(true).to eql(false)
46
+
47
+ expected: false
48
+ got: true
49
+
50
+ (compared using eql?)
51
+
52
+ Diff:
53
+ @@ -1,2 +1,2 @@
54
+ -false
55
+ +true
56
+
57
+ # ./spec/example/doggo_spec.rb:12:in `block (4 levels) in <top (required)>'
58
+
59
+ [07/10] PENDING - is pending with xit
60
+ [08/10] FAILED (4) - is pending with a custom message
61
+
62
+ 4) Doggo examples in a context with a nested context is pending with a custom message FIXED
63
+ Expected pending 'custom message' to fail. No error was raised.
64
+ # ./spec/example/doggo_spec.rb:18
65
+
66
+ [ 10] test count
67
+ [09/10] is taken to 9
68
+ [10/10] is taken to 10, showing leading zero pad formatting
69
+ ```
70
+
71
+ Notable things are:
72
+
73
+ * Group title entries omit the example number
74
+ * Left zero padding to keep column alignment, working for any number of total tests
75
+ * `FAILED` and `PENDING` states are shown on the left side of the message, not the right as with RSpec's `--format documentation`, to make them a little easier to see in CI output
76
+ * A `PENDING` default message of `Temporarily skipped with xit` is suppressed for brevity, but any other message would be shown inline.
77
+ * Detailed failure messages are shown inline, so you can start investigating test failures while your test suite continues to run.
78
+
79
+ ## Installation
80
+
81
+ Either:
82
+
83
+ ```shell
84
+ gem install doggo
85
+ ```
86
+
87
+ ...or in a Gemfile:
88
+
89
+ ```ruby
90
+ gem 'doggo', '~> 1.0'
91
+ ```
92
+
93
+ ## Usage
94
+
95
+ Drive RSpec with:
96
+
97
+ ```
98
+ rspec --format Doggo
99
+ ```
100
+
101
+ Alternatively, edit your `.rspec` file:
102
+
103
+ ```
104
+ # .rspec
105
+
106
+ --format Doggo
107
+ ```
108
+
109
+ ...or alter your `spec_helper.rb` file or equivalent:
110
+
111
+ ```ruby
112
+ RSpec.configure do | config |
113
+ config.add_formatter 'Doggo'
114
+ end
115
+ ```
116
+
117
+ ## Development
118
+
119
+ Doggo works with Ruby 1.9.3-p551 from November 13th 2011, but needs a far newer RubyGems version in order for its `.gemspec` file to be processed. You will therefore probably need to update RubyGems if you are doing development work on the source code and want to, for example, run `bundle update`. _Assuming you are using [rbenv](https://github.com/rbenv/rbenv)_ and have automatically (via Doggo's `.ruby-version` file) or manually (via e.g. running command `rbenv local 1.9.3-p551`) switched to Ruby 1.9.3-p551, you can safely ensure that the most recent compatible RubyGems version is installed by issuing this command:
120
+
121
+ ```
122
+ gem update --system 2.7.11
123
+ ```
124
+
125
+ According to the [release history](https://rubygems.org/gems/rubygems-update/versions), 2.7.11 is the last of the v2.x RubyGems releases which still supported Ruby v1.x. Version 2.7.11 was released on December 9th 2020.
data/lib/doggo.rb CHANGED
@@ -71,7 +71,7 @@ class Doggo < RSpec::Core::Formatters::BaseTextFormatter
71
71
 
72
72
  def example_passed(passed)
73
73
  self.outstr.puts(passed_output(passed.example))
74
- flush_messages
74
+ flush_messages()
75
75
 
76
76
  self.passed_count += 1
77
77
  self.example_running = false
@@ -85,17 +85,21 @@ class Doggo < RSpec::Core::Formatters::BaseTextFormatter
85
85
  )
86
86
  )
87
87
 
88
- flush_messages
88
+ flush_messages()
89
89
 
90
90
  self.pending_count += 1
91
91
  self.example_running = false
92
92
  end
93
93
 
94
94
  def example_failed(failure)
95
+ self.failed_count += 1
96
+
95
97
  self.outstr.puts(failure_output(failure.example))
96
- flush_messages
98
+ self.outstr.puts(failure.fully_formatted(self.failed_count))
99
+ self.outstr.puts("\n")
100
+
101
+ flush_messages()
97
102
 
98
- self.failed_count += 1
99
103
  self.example_running = false
100
104
  end
101
105
 
@@ -91,7 +91,12 @@ RSpec.describe Doggo do
91
91
  context '#example_failed' do
92
92
  before :each do
93
93
  @dog.start(@notification)
94
+ @detail = 'failure detail'
94
95
  @failed = double('Failing test', example: @example)
96
+
97
+ allow(@failed).to receive(:fully_formatted) do | count |
98
+ "#{count} #{@detail}"
99
+ end
95
100
  end
96
101
 
97
102
  it 'notes an example is no longer running' do
@@ -116,7 +121,7 @@ RSpec.describe Doggo do
116
121
  expect(@dog.failed_count).to eql(2)
117
122
  end
118
123
 
119
- it 'logs the failure' do
124
+ it 'logs the summary failure' do
120
125
  @dog.example_started(@notification)
121
126
  @dog.example_failed(@failed)
122
127
 
@@ -124,6 +129,13 @@ RSpec.describe Doggo do
124
129
  expect(@bork.string).to include('FAILED')
125
130
  expect(@bork.string).to include(@example_description)
126
131
  end
132
+
133
+ it 'logs the detailed failure' do
134
+ @dog.example_started(@notification)
135
+ @dog.example_failed(@failed)
136
+
137
+ expect(@bork.string).to include("1 #{@detail}")
138
+ end
127
139
  end # "context '#example_failed' do"
128
140
 
129
141
  context '#example_pending' do
metadata CHANGED
@@ -1,79 +1,88 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doggo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - RIP Global
7
+ - RIPA Global
8
8
  - Andrew David Hodgkinson
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-04-02 00:00:00.000000000 Z
12
+ date: 2021-09-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec-core
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ~>
19
19
  - !ruby/object:Gem::Version
20
- version: '3.0'
20
+ version: '3.10'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - "~>"
25
+ - - ~>
26
26
  - !ruby/object:Gem::Version
27
- version: '3.0'
27
+ version: '3.10'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rspec
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - "~>"
32
+ - - ~>
33
33
  - !ruby/object:Gem::Version
34
- version: '3.7'
34
+ version: '3.10'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - "~>"
39
+ - - ~>
40
40
  - !ruby/object:Gem::Version
41
- version: '3.7'
42
- description: Similar to RSpec -f d, but adds indication of test number and total tests
43
- on each line
41
+ version: '3.10'
42
+ description: Similar to "rspec -f d", but also indicates progress by showing the current
43
+ test number and total test count on each line.
44
44
  email:
45
- - andrew@ripglobal.com
45
+ - dev@ripaglobal.com
46
46
  executables: []
47
47
  extensions: []
48
- extra_rdoc_files: []
48
+ extra_rdoc_files:
49
+ - LICENSE.txt
50
+ - README.md
49
51
  files:
52
+ - LICENSE.txt
53
+ - README.md
50
54
  - lib/doggo.rb
51
55
  - spec/example/doggo_spec.rb
52
56
  - spec/internal_spec.rb
53
57
  - spec/spec_helper.rb
54
- homepage: https://ripglobal.com/
58
+ homepage: https://www.ripaglobal.com/
55
59
  licenses:
56
60
  - MIT
57
- metadata: {}
61
+ metadata:
62
+ homepage_uri: https://www.ripaglobal.com/
63
+ source_code_uri: https://github.com/RIPAGlobal/doggo/
64
+ bug_tracker_uri: https://github.com/RIPAGlobal/doggo/issues/
65
+ changelog_uri: https://github.com/RIPAGlobal/doggo/blob/master/CHANGELOG.md
58
66
  post_install_message:
59
67
  rdoc_options: []
60
68
  require_paths:
61
69
  - lib
62
70
  required_ruby_version: !ruby/object:Gem::Requirement
63
71
  requirements:
64
- - - ">="
72
+ - - ! '>='
65
73
  - !ruby/object:Gem::Version
66
- version: 2.6.5
74
+ version: 1.9.3
67
75
  required_rubygems_version: !ruby/object:Gem::Requirement
68
76
  requirements:
69
- - - ">="
77
+ - - ! '>='
70
78
  - !ruby/object:Gem::Version
71
79
  version: '0'
72
80
  requirements: []
73
- rubygems_version: 3.0.3
81
+ rubyforge_project:
82
+ rubygems_version: 2.7.11
74
83
  signing_key:
75
84
  specification_version: 4
76
- summary: RSpec formatter - documentation, with progress indication
85
+ summary: RSpec 3 formatter - documentation, with progress indication
77
86
  test_files:
78
87
  - spec/spec_helper.rb
79
88
  - spec/internal_spec.rb