yard-doctest 0.1.14 → 0.1.15
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 +4 -4
 - data/CHANGELOG.md +4 -0
 - data/features/yard-doctest.feature +31 -1
 - data/lib/yard/doctest/example.rb +23 -3
 - data/lib/yard/doctest/version.rb +1 -1
 - metadata +3 -4
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 723dea9f19d8563896620983b07e9c10c8ffd675fec6c630265dd1b7c9296137
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: fe76d9dee40e4ced8ceaea99cc0b6e985e9dc347e6b74dc373f6d568e8c00bb8
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 222ad5b8623b913c3c16dd7ea76731e9b2b889285f3221c242de8ade6cf55870b09d541d71a9e239611867737306a06f75994f51cc5f39c77cd0c504ff512431
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 1715dab13e1e08605bda7ed64c61a978c8c6230745470beddd78bba79b8a2f970577d667980b65c4c64109e426e45986efc201387c3a73b6a2525a0a1900088f
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    
| 
         @@ -5,7 +5,7 @@ Feature: yard doctest 
     | 
|
| 
       5 
5 
     | 
    
         
             
              I want to automatically parse YARD's @example tags
         
     | 
| 
       6 
6 
     | 
    
         
             
              And use them as tests
         
     | 
| 
       7 
7 
     | 
    
         
             
              Just like doctest in Python
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       9 
9 
     | 
    
         
             
              Background:
         
     | 
| 
       10 
10 
     | 
    
         
             
                # YARD stopped auto-loading all plugins at 0.6.2, so anything newer needs
         
     | 
| 
       11 
11 
     | 
    
         
             
                # the plugin explicitly loaded. A simple way to do this is to always have
         
     | 
| 
         @@ -138,6 +138,10 @@ Feature: yard doctest 
     | 
|
| 
       138 
138 
     | 
    
         
             
                  #foo#test_0001_:
         
     | 
| 
       139 
139 
     | 
    
         
             
                  RuntimeError: Fails with exception
         
     | 
| 
       140 
140 
     | 
    
         
             
                  """
         
     | 
| 
      
 141 
     | 
    
         
            +
                And the output should contain:
         
     | 
| 
      
 142 
     | 
    
         
            +
                  """
         
     | 
| 
      
 143 
     | 
    
         
            +
                  app/app.rb:4:in `foo'
         
     | 
| 
      
 144 
     | 
    
         
            +
                  """
         
     | 
| 
       141 
145 
     | 
    
         | 
| 
       142 
146 
     | 
    
         
             
              Scenario: asserts using equality
         
     | 
| 
       143 
147 
     | 
    
         
             
                Given a file named "doctest_helper.rb" with:
         
     | 
| 
         @@ -735,3 +739,29 @@ Feature: yard doctest 
     | 
|
| 
       735 
739 
     | 
    
         
             
                  """
         
     | 
| 
       736 
740 
     | 
    
         
             
                When I run `bundle exec yard doctest`
         
     | 
| 
       737 
741 
     | 
    
         
             
                Then the output should contain "1 runs, 0 assertions, 0 failures, 0 errors, 0 skips"
         
     | 
| 
      
 742 
     | 
    
         
            +
             
     | 
| 
      
 743 
     | 
    
         
            +
              Scenario: shows exception when assert raises one
         
     | 
| 
      
 744 
     | 
    
         
            +
                Given a file named "doctest_helper.rb" with:
         
     | 
| 
      
 745 
     | 
    
         
            +
                  """
         
     | 
| 
      
 746 
     | 
    
         
            +
                  require 'app/app'
         
     | 
| 
      
 747 
     | 
    
         
            +
                  """
         
     | 
| 
      
 748 
     | 
    
         
            +
                And a file named "app/app.rb" with:
         
     | 
| 
      
 749 
     | 
    
         
            +
                  """
         
     | 
| 
      
 750 
     | 
    
         
            +
                  # @example
         
     | 
| 
      
 751 
     | 
    
         
            +
                  #   foo #=> 1
         
     | 
| 
      
 752 
     | 
    
         
            +
                  def foo
         
     | 
| 
      
 753 
     | 
    
         
            +
                    raise 'Fails with exception'
         
     | 
| 
      
 754 
     | 
    
         
            +
                  end
         
     | 
| 
      
 755 
     | 
    
         
            +
                  """
         
     | 
| 
      
 756 
     | 
    
         
            +
                When I run `bundle exec yard doctest`
         
     | 
| 
      
 757 
     | 
    
         
            +
                Then the exit status should be 1
         
     | 
| 
      
 758 
     | 
    
         
            +
                And the output should contain:
         
     | 
| 
      
 759 
     | 
    
         
            +
                  """
         
     | 
| 
      
 760 
     | 
    
         
            +
                  1) Error:
         
     | 
| 
      
 761 
     | 
    
         
            +
                  #foo#test_0001_:
         
     | 
| 
      
 762 
     | 
    
         
            +
                  RuntimeError: Fails with exception
         
     | 
| 
      
 763 
     | 
    
         
            +
                  """
         
     | 
| 
      
 764 
     | 
    
         
            +
                And the output should contain:
         
     | 
| 
      
 765 
     | 
    
         
            +
                  """
         
     | 
| 
      
 766 
     | 
    
         
            +
                  app/app.rb:4:in `foo'
         
     | 
| 
      
 767 
     | 
    
         
            +
                  """
         
     | 
    
        data/lib/yard/doctest/example.rb
    CHANGED
    
    | 
         @@ -71,8 +71,16 @@ module YARD 
     | 
|
| 
       71 
71 
     | 
    
         
             
                  end
         
     | 
| 
       72 
72 
     | 
    
         | 
| 
       73 
73 
     | 
    
         
             
                  def assert_example(example, expected, actual, bind)
         
     | 
| 
       74 
     | 
    
         
            -
                     
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
      
 74 
     | 
    
         
            +
                    expected = evaluate_with_assertion(expected, bind)
         
     | 
| 
      
 75 
     | 
    
         
            +
                    actual = evaluate_with_assertion(actual, bind)
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                    if both_are_errors?(expected, actual)
         
     | 
| 
      
 78 
     | 
    
         
            +
                      assert_equal("#<#{expected.class}: #{expected}>", "#<#{actual.class}: #{actual}>")
         
     | 
| 
      
 79 
     | 
    
         
            +
                    elsif (error = only_one_is_error?(expected, actual))
         
     | 
| 
      
 80 
     | 
    
         
            +
                      raise error
         
     | 
| 
      
 81 
     | 
    
         
            +
                    else
         
     | 
| 
      
 82 
     | 
    
         
            +
                      assert_equal(expected, actual)
         
     | 
| 
      
 83 
     | 
    
         
            +
                    end
         
     | 
| 
       76 
84 
     | 
    
         
             
                  rescue Minitest::Assertion => error
         
     | 
| 
       77 
85 
     | 
    
         
             
                    add_filepath_to_backtrace(error, example.filepath)
         
     | 
| 
       78 
86 
     | 
    
         
             
                    raise error
         
     | 
| 
         @@ -81,7 +89,7 @@ module YARD 
     | 
|
| 
       81 
89 
     | 
    
         
             
                  def evaluate_with_assertion(code, bind)
         
     | 
| 
       82 
90 
     | 
    
         
             
                    evaluate(code, bind)
         
     | 
| 
       83 
91 
     | 
    
         
             
                  rescue StandardError => error
         
     | 
| 
       84 
     | 
    
         
            -
                     
     | 
| 
      
 92 
     | 
    
         
            +
                    error
         
     | 
| 
       85 
93 
     | 
    
         
             
                  end
         
     | 
| 
       86 
94 
     | 
    
         | 
| 
       87 
95 
     | 
    
         
             
                  def evaluate(code, bind)
         
     | 
| 
         @@ -106,6 +114,18 @@ module YARD 
     | 
|
| 
       106 
114 
     | 
    
         
             
                    end
         
     | 
| 
       107 
115 
     | 
    
         
             
                  end
         
     | 
| 
       108 
116 
     | 
    
         | 
| 
      
 117 
     | 
    
         
            +
                  def both_are_errors?(expected, actual)
         
     | 
| 
      
 118 
     | 
    
         
            +
                    expected.is_a?(StandardError) && actual.is_a?(StandardError)
         
     | 
| 
      
 119 
     | 
    
         
            +
                  end
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
                  def only_one_is_error?(expected, actual)
         
     | 
| 
      
 122 
     | 
    
         
            +
                    if expected.is_a?(StandardError) && !actual.is_a?(StandardError)
         
     | 
| 
      
 123 
     | 
    
         
            +
                      expected
         
     | 
| 
      
 124 
     | 
    
         
            +
                    elsif !expected.is_a?(StandardError) && actual.is_a?(StandardError)
         
     | 
| 
      
 125 
     | 
    
         
            +
                      actual
         
     | 
| 
      
 126 
     | 
    
         
            +
                    end
         
     | 
| 
      
 127 
     | 
    
         
            +
                  end
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
       109 
129 
     | 
    
         
             
                  def add_filepath_to_backtrace(exception, filepath)
         
     | 
| 
       110 
130 
     | 
    
         
             
                    backtrace = exception.backtrace
         
     | 
| 
       111 
131 
     | 
    
         
             
                    line = backtrace.find { |l| l =~ %r{lib/yard/doctest/example} }
         
     | 
    
        data/lib/yard/doctest/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: yard-doctest
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.15
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Alex Rodionov
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2019-02- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2019-02-07 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: yard
         
     | 
| 
         @@ -120,8 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       120 
120 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       121 
121 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       122 
122 
     | 
    
         
             
            requirements: []
         
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
     | 
    
         
            -
            rubygems_version: 2.7.6
         
     | 
| 
      
 123 
     | 
    
         
            +
            rubygems_version: 3.0.1
         
     | 
| 
       125 
124 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       126 
125 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       127 
126 
     | 
    
         
             
            summary: Doctests from YARD examples
         
     |