minitest 5.10.2 → 5.10.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a068763ee667d9319f37090fc6dca04537d7bd28
4
- data.tar.gz: 7bc8c8f4d5b7107276ca308ef8a60a70078b4b18
3
+ metadata.gz: 32d4df1397bf8fc366b4b18555936d7c92853121
4
+ data.tar.gz: 4000474506d5056f3117b1a93e1bc4019dfd15af
5
5
  SHA512:
6
- metadata.gz: eb2c6d2f22a6d3a4bd32f600494173714705d6941de1a7c3abb449bbd7e404ddf7a9b4b2bde463f52e24cf9e253c9d68ea729468c9b049dfcc9b52c4344bea28
7
- data.tar.gz: f1d4e1a88113f44c4008f608c69f457c405483fd19c16e8a5851db57734f9331500694a27b75193eb2812811bead231c3689df7242cd6b81ad6bd3c9630ab578
6
+ metadata.gz: 195277b6093c3650634809f445c274d8df6bfafb4f32be448f4cdde07de9edf47c64e4f05cdf3572bf79f61e2597ce33c2b7821cd147d4c8bd2f251451e86098
7
+ data.tar.gz: a8a16930df76274303310ba4faf115914913bea38b559ec4edfad8ae2a835fb22e7d6308c88eadf93044ea422b334d65e33c8c59f15f0ece27a962b1fc8d7e9c
Binary file
data.tar.gz.sig CHANGED
@@ -1,2 +1,2 @@
1
- #<@c ��·�\
2
- %�����ֳ��C�#���� .�Y�ܫA����g���q~���K�@/�t�9��Ǥ�l[�̿zB�M����c@��t؜<���d�!�-u�p+(��4���� Z���Z���DwIsT�#�s��S�M@� C���"��o�l��]o�~��Ğ�LNV��u�ϓ�I.O�����c���j�BJa�Ev���S���K�g�,1&�E)���U1�7)/���Z���t��'��F��
1
+ V���%s�g�e�Q�K�͝P�u�I}����I6I}Kj��ڳt�8a"w��TFig�"��(��Hڞ�Ӱ�V�ص^����Z=�j�=���'����-���i*-u�/�d���1�z��/��X�E8a��� �•�z֍?!�$�:�uwR"b��C��3L���j��Tk��!�Y6���޶���n^/w�o@J
2
+ /���-�*�^~)Z�Y' �,5��vCM 1��B�����Ny8
@@ -1,3 +1,14 @@
1
+ === 5.10.3 / 2017-07-21
2
+
3
+ * 1 minor enhancement:
4
+
5
+ * Extended documentation for Mock#expect for multiple calls to mock object. (insti)
6
+
7
+ * 2 bug fixes:
8
+
9
+ * Finished off missing doco.
10
+ * Fixed verbose output on parallelize_me! classes. (chanks)
11
+
1
12
  === 5.10.2 / 2017-05-09
2
13
 
3
14
  * 1 minor enhancement:
@@ -139,8 +139,8 @@ Define your tests as methods beginning with +test_+.
139
139
 
140
140
  For matchers support check out:
141
141
 
142
- https://github.com/wojtekmach/minitest-matchers
143
- https://github.com/rmm5t/minitest-matchers_vaccine
142
+ * https://github.com/wojtekmach/minitest-matchers
143
+ * https://github.com/rmm5t/minitest-matchers_vaccine
144
144
 
145
145
  === Benchmarks
146
146
 
@@ -452,6 +452,75 @@ able to require minitest and run your tests.
452
452
  * rdoc
453
453
  * ...and of course, everything from seattle.rb...
454
454
 
455
+ == Developing Minitest:
456
+
457
+ === Minitest's own tests require UTF-8 external encoding.
458
+
459
+ This is a common problem in Windows, where the default external Encoding is
460
+ often CP850, but can affect any platform.
461
+ Minitest can run test suites using any Encoding, but to run Minitest's
462
+ own tests you must have a default external Encoding of UTF-8.
463
+
464
+ If your encoding is wrong, you'll see errors like:
465
+
466
+ --- expected
467
+ +++ actual
468
+ @@ -1,2 +1,3 @@
469
+ # encoding: UTF-8
470
+ -"Expected /\\w+/ to not match \"blah blah blah\"."
471
+ +"Expected /\\w+/ to not match # encoding: UTF-8
472
+ +\"blah blah blah\"."
473
+
474
+ To check your current encoding, run:
475
+
476
+ ruby -e 'puts Encoding.default_external'
477
+
478
+ If your output is something other than UTF-8, you can set the RUBYOPTS
479
+ env variable to a value of '-Eutf-8'. Something like:
480
+
481
+ RUBYOPT='-Eutf-8' ruby -e 'puts Encoding.default_external'
482
+
483
+ Check your OS/shell documentation for the precise syntax (the above
484
+ will not work on a basic Windows CMD prompt, look for the SET command).
485
+ Once you've got it successfully outputing UTF-8, use the same setting
486
+ when running rake in Minitest.
487
+
488
+ === Minitest's own tests require GNU (or similar) diff.
489
+
490
+ This is also a problem primarily affecting Windows developers. PowerShell
491
+ has a command called diff, but it is not suitable for use with Minitest.
492
+
493
+ If you see failures like either of these, you are probably missing diff tool:
494
+
495
+ 4) Failure:
496
+ TestMinitestUnitTestCase#test_assert_equal_different_long [D:/ruby/seattlerb/minitest/test/minitest/test_minitest_test.rb:936]:
497
+ Expected: "--- expected\n+++ actual\n@@ -1 +1 @@\n-\"hahahahahahahahahahahahahahahahahahahaha\"\n+\"blahblahblahblahblahblahblahblahblahblah\"\n"
498
+ Actual: "Expected: \"hahahahahahahahahahahahahahahahahahahaha\"\n Actual: \"blahblahblahblahblahblahblahblahblahblah\""
499
+
500
+
501
+ 5) Failure:
502
+ TestMinitestUnitTestCase#test_assert_equal_different_collection_hash_hex_invisible [D:/ruby/seattlerb/minitest/test/minitest/test_minitest_test.rb:845]:
503
+ Expected: "No visible difference in the Hash#inspect output.\nYou should look at the implementation of #== on Hash or its members.\n
504
+ {1=>#<Object:0xXXXXXX>}"
505
+ Actual: "Expected: {1=>#<Object:0x00000003ba0470>}\n Actual: {1=>#<Object:0x00000003ba0448>}"
506
+
507
+
508
+ If you use Cygwin or MSYS2 or similar there are packages that include a
509
+ GNU diff for Widnows. If you don't, you can download GNU diffutils from
510
+ http://gnuwin32.sourceforge.net/packages/diffutils.htm
511
+ (make sure to add it to your PATH).
512
+
513
+ You can make sure it's installed and path is configured properly with:
514
+
515
+ diff.exe -v
516
+
517
+ There are multiple lines of output, the first should be something like:
518
+
519
+ diff (GNU diffutils) 2.8.1
520
+
521
+ If you are using PowerShell make sure you run diff.exe, not just diff,
522
+ which will invoke the PowerShell built in function.
523
+
455
524
  == Known Extensions:
456
525
 
457
526
  capybara_minitest_spec :: Bridge between Capybara RSpec matchers and
@@ -462,6 +531,7 @@ color_pound_spec_reporter :: Test names print Ruby Object types in color with
462
531
  minispec-metadata :: Metadata for describe/it blocks & CLI tag filter.
463
532
  E.g. <tt>it "requires JS driver", js: true do</tt> &
464
533
  <tt>ruby test.rb --tag js</tt> runs tests tagged :js.
534
+ minispec-rails :: Minimal support to use Spec style in Rails 5+.
465
535
  minitest-around :: Around block for minitest. An alternative to
466
536
  setup/teardown dance.
467
537
  minitest-assert_errors :: Adds Minitest assertions to test for errors raised
@@ -8,7 +8,7 @@ require "stringio"
8
8
  # :include: README.rdoc
9
9
 
10
10
  module Minitest
11
- VERSION = "5.10.2" # :nodoc:
11
+ VERSION = "5.10.3" # :nodoc:
12
12
  ENCS = "".respond_to? :encoding # :nodoc:
13
13
 
14
14
  @@installed_at_exit ||= false
@@ -486,7 +486,7 @@ module Minitest
486
486
  # own.
487
487
 
488
488
  class ProgressReporter < Reporter
489
- def prerecord klass, name
489
+ def prerecord klass, name #:nodoc:
490
490
  if options[:verbose] then
491
491
  io.print "%s#%s = " % [klass, name]
492
492
  io.flush
@@ -614,7 +614,7 @@ module Minitest
614
614
  io
615
615
  end
616
616
 
617
- def to_s
617
+ def to_s # :nodoc:
618
618
  aggregated_results(StringIO.new(binary_string)).string
619
619
  end
620
620
 
@@ -808,16 +808,25 @@ module Minitest
808
808
  end
809
809
  end
810
810
 
811
- class BacktraceFilter # :nodoc:
811
+ ##
812
+ # The standard backtrace filter for minitest.
813
+ #
814
+ # See Minitest.backtrace_filter=.
815
+
816
+ class BacktraceFilter
817
+
818
+ MT_RE = %r%lib/minitest% #:nodoc:
819
+
820
+ ##
821
+ # Filter +bt+ to something useful. Returns the whole thing if $DEBUG.
822
+
812
823
  def filter bt
813
824
  return ["No backtrace"] unless bt
814
825
 
815
826
  return bt.dup if $DEBUG
816
827
 
817
- mt_re = %r%lib/minitest%
818
-
819
- new_bt = bt.take_while { |line| line !~ mt_re }
820
- new_bt = bt.select { |line| line !~ mt_re } if new_bt.empty?
828
+ new_bt = bt.take_while { |line| line !~ MT_RE }
829
+ new_bt = bt.select { |line| line !~ MT_RE } if new_bt.empty?
821
830
  new_bt = bt.dup if new_bt.empty?
822
831
 
823
832
  new_bt
@@ -66,6 +66,17 @@ module Minitest # :nodoc:
66
66
  #
67
67
  # @mock.expect(:uses_one_string, true, ["foo"])
68
68
  # @mock.uses_one_string("bar") # => raises MockExpectationError
69
+ #
70
+ # If a method will be called multiple times, specify a new expect for each one.
71
+ # They will be used in the order you define them.
72
+ #
73
+ # @mock.expect(:ordinal_increment, 'first')
74
+ # @mock.expect(:ordinal_increment, 'second')
75
+ #
76
+ # @mock.ordinal_increment # => 'first'
77
+ # @mock.ordinal_increment # => 'second'
78
+ # @mock.ordinal_increment # => raises MockExpectationError "No more expects available for :ordinal_increment"
79
+ #
69
80
 
70
81
  def expect name, retval, args = [], &blk
71
82
  name = name.to_sym
@@ -29,6 +29,7 @@ module Minitest
29
29
  Thread.current.abort_on_exception = true
30
30
  while (job = queue.pop)
31
31
  klass, method, reporter = job
32
+ reporter.synchronize { reporter.prerecord klass, method }
32
33
  result = Minitest.run_one_method klass, method
33
34
  reporter.synchronize { reporter.record result }
34
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.10.2
4
+ version: 5.10.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -30,7 +30,7 @@ cert_chain:
30
30
  E4oJcnPkJAr0rw504JGtlZtONZQblwmRJOIdXzolaE3NRGUzGVOUSptZppAKiavY
31
31
  fO6tdKQc/5RfA8oQEkg8hrxA5PQSz4TOFJGLpFvIapEk6tMruQ0bHgkhr9auXg==
32
32
  -----END CERTIFICATE-----
33
- date: 2017-05-09 00:00:00.000000000 Z
33
+ date: 2017-07-21 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: rdoc
metadata.gz.sig CHANGED
Binary file