File: 0001-Add-support-for-Minitest-5.patch

package info (click to toggle)
ruby-test-declarative 0.0.5-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 96 kB
  • ctags: 11
  • sloc: ruby: 67; makefile: 2
file content (80 lines) | stat: -rw-r--r-- 2,570 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
From d8e7d89b0090dd569dc8c94f3541b7c2390ab5b5 Mon Sep 17 00:00:00 2001
From: Josef Stribny <jstribny@redhat.com>
Date: Mon, 19 Jan 2015 18:28:42 +0100
Subject: [PATCH] Add support for Minitest >=5

(Fetched from https://github.com/strzibny/test_declarative/tree/d8e7d89b0090dd569dc8c94f3541b7c2390ab5b5
referenced in https://github.com/svenfuchs/test_declarative/pull/4)

- add Minitest 5 support
- change tests to work with both test/unit (if available) and Minitest 5
- fix the test suite on Ruby 1.8.7 by explicitely requiring test/unit/testresult
---
 lib/test_declarative.rb       |  1 +
 test/test_declarative_test.rb | 37 ++++++++++++++++++++++++++++++++-----
 test_declarative.gemspec      |  1 +
 3 files changed, 34 insertions(+), 5 deletions(-)

--- a/lib/test_declarative.rb
+++ b/lib/test_declarative.rb
@@ -1,6 +1,7 @@
 targets = [Module]
 targets << Test::Unit::TestCase     if defined?(Test::Unit::TestCase)
 targets << MiniTest::Unit::TestCase if defined?(MiniTest::Unit::TestCase)
+targets << Minitest::Test           if defined?(Minitest::Test)
 
 targets.each do |target|
   target.class_eval do
--- a/test/test_declarative_test.rb
+++ b/test/test_declarative_test.rb
@@ -1,17 +1,44 @@
 $: << File.expand_path('../../lib', __FILE__)
 
-require 'test/unit'
+# Test with test/unit for older Rubies
+begin
+  require 'test/unit'
+  require 'test/unit/testresult'
+  if RUBY_VERSION < '1.9.1'
+    # test/unit
+    TEST_CASE = Test::Unit::TestCase
+    RUNNER = Test::Unit::TestResult
+    MINITEST_5 = false
+  else
+    # Minitest < 5
+    TEST_CASE = Test::Unit::TestCase
+    RUNNER = MiniTest::Unit
+    MINITEST_5 = false
+  end
+rescue LoadError, StandardError
+  # Minitest >= 5
+  require 'minitest/autorun'
+  TEST_CASE = Minitest::Test
+  RUNNER = Minitest::Unit
+  MINITEST_5 = true
+end
+
 require 'test_declarative'
 
-class TestDeclarativeTest < Test::Unit::TestCase
+class TestDeclarativeTest < TEST_CASE
   def test_responds_to_test
     assert self.class.respond_to?(:test)
   end
   
   def test_adds_a_test_method
     called = false
-    assert_nothing_raised { Test::Unit::TestCase.test('some test') { called = true } }
-    Test::Unit::TestCase.new(:'test_some_test').run((RUBY_VERSION < '1.9.1' ? Test::Unit::TestResult : MiniTest::Unit).new) {}
+    TEST_CASE.test('some test') { called = true }
+    case MINITEST_5
+    when false
+      TEST_CASE.new(:'test_some_test').run(RUNNER.new) {}
+    when true
+      TEST_CASE.new(:'test_some_test').run() {}
+    end
     assert called
   end
-end
\ No newline at end of file
+end