minitest-allow 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d4b452b249bcbf28fd6a1fe02554605287695f5132a49355c1ff86d9670050c
4
- data.tar.gz: 43f8db6fc12c23fef4ea9ae778f67d49ddfea0a394f599c65258519913682d80
3
+ metadata.gz: f24ec8511a2369224f41c4a036d52efa431c102690aa1f933097a863e13df8e0
4
+ data.tar.gz: b5e459178923fd55debdc76f1bd8e0647ababe7fccb457839c2f2599c0bb8f7c
5
5
  SHA512:
6
- metadata.gz: c440e3f3205155ff80a83bc5abbeb2e70b2a225c50097ae8a25a3346fe11a60d1d845aa71717e80f45649bbb61180926b6dfe8562ef6ae70ea5451e024685255
7
- data.tar.gz: cb00914e91781619a1ac7eb85cba9f2734b3163e0abdb96c4f474cf1e916274d6c35dcc82a50d07bf4e34f9bcc670c2f69dca1d063410666f9029cfc232930cd
6
+ metadata.gz: a4e5a3e8bfda70b669f185b92280ea1146a18a61533d5508d256ea72f04672e1f3691505dad3b0c643d46ec98577bf681170cc7605c0db1edc82f1d60861eaa3
7
+ data.tar.gz: e9d36c2adcb5fa8005b4e2a7eeeecfe35b20bc0822f02ecccd71b419f6e63ffa46a7d544363ffffcf917d4105cc3e3bb23a9b8e36f3248a47ff088702cd46b21
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,10 @@
1
+ === 1.1.0 / 2021-04-19
2
+
3
+ * 2 minor enhancements:
4
+
5
+ * This works even when running subsets of tests (eg parallel in a CI)
6
+ * Tracks tests that are allowed yet pass and can thus be removed from allowed list.
7
+
1
8
  === 1.0.0 / 2021-04-02
2
9
 
3
10
  * 1 major enhancement
@@ -1,5 +1,7 @@
1
1
  module Minitest
2
2
  def self.plugin_allow_options opts, _options # :nodoc:
3
+ @allow = @allow_save = false
4
+
3
5
  opts.on "-a", "--allow=path", String, "Allow listed tests to fail." do |f|
4
6
  require "yaml"
5
7
  @allow = YAML.load File.read f
@@ -14,10 +16,10 @@ module Minitest
14
16
  def self.plugin_allow_init options # :nodoc:
15
17
  if @allow || @allow_save then
16
18
  self.reporter.extend Allow
19
+ self.reporter.allow = @allow
20
+ self.reporter.allow_save = @allow_save
21
+ self.reporter.allow_seen = []
17
22
  end
18
-
19
- self.reporter.allow = @allow if @allow
20
- self.reporter.allow_save = @allow_save if @allow_save
21
23
  end
22
24
 
23
25
  class Result # TODO: push up
@@ -26,10 +28,21 @@ module Minitest
26
28
  end
27
29
  end
28
30
 
31
+ class Minitest::Test # sigh... rails
32
+ def full_name
33
+ "%s#%s" % [self.class, name]
34
+ end
35
+ end
36
+
29
37
  module Allow
30
- VERSION = "1.0.0"
38
+ VERSION = "1.1.0"
31
39
 
32
- attr_accessor :allow, :allow_save
40
+ attr_accessor :allow, :allow_save, :allow_seen
41
+
42
+ def record result
43
+ allow_seen << result.full_name
44
+ super
45
+ end
33
46
 
34
47
  def allow_results
35
48
  self.reporters
@@ -39,7 +52,8 @@ module Minitest
39
52
 
40
53
  def write_allow
41
54
  data = allow_results
42
- .flat_map { |rs| rs.map(&:full_name) }
55
+ .flatten
56
+ .map(&:full_name)
43
57
  .uniq
44
58
  .sort
45
59
 
@@ -47,18 +61,33 @@ module Minitest
47
61
  end
48
62
 
49
63
  def filter_allow
64
+ maybe_bad = allow_results.flatten.map(&:full_name).uniq
65
+ to_remove = maybe_bad & allow
66
+ extra_bad = maybe_bad - to_remove
67
+
68
+ self.allow -= to_remove
69
+
50
70
  allow_results.each do |results|
51
- results.delete_if { |r| allow.delete r.full_name }
71
+ results.delete_if { |r| to_remove.include? r.full_name }
72
+ end
73
+
74
+ unless extra_bad.empty? then
75
+ io.puts
76
+ io.puts "Bad tests that are NOT allowed:"
77
+ io.puts
78
+ io.puts extra_bad.to_yaml
52
79
  end
53
80
  end
54
81
 
55
82
  def report_extra_allow
56
- unless allow.empty? then
83
+ good = allow & allow_seen
84
+
85
+ unless good.empty? then
57
86
  io.puts
58
87
  io.puts "Excluded tests that now pass:"
59
88
  io.puts
60
- allow.each do |name|
61
- io.puts " #{name}"
89
+ good.each do |name|
90
+ io.puts " :allow_good: %p" % [name]
62
91
  end
63
92
  end
64
93
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-allow
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -29,7 +29,7 @@ cert_chain:
29
29
  d/AHw/kcnU6iuMUoJEcGiJd4gVCTn1l3cDcIvxakGslCA88Jubw0Sqatan0TnC9g
30
30
  KToW560QIey7SPfHWduzFJnV
31
31
  -----END CERTIFICATE-----
32
- date: 2021-04-03 00:00:00.000000000 Z
32
+ date: 2021-04-19 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: minitest
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  requirements: []
126
- rubygems_version: 3.2.15
126
+ rubygems_version: 3.2.16
127
127
  signing_key:
128
128
  specification_version: 4
129
129
  summary: Allows you to provide an exclusion list of allowed failures/errors
metadata.gz.sig CHANGED
Binary file