Subject: Re: [bug#34217] [PATCH 11/11] gnu: Add ruby-cucumber and ruby-aruba.

From: swedebugia <[email-masked]>
Date: Tue, 29 Jan 2019 22:44:55 +0100

On 2019-01-27 12:49, Christopher Baines wrote:
> These packages are mutually dependant, so I've put them in one commit.
> 
> * gnu/packages/ruby.scm (ruby-aruba, ruby-cucumber): New variables.
> ---
>   gnu/packages/ruby.scm | 136 ++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 136 insertions(+)
> 
> diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
> index e507c816c8..59895240f8 100644
> --- a/gnu/packages/ruby.scm
> +++ b/gnu/packages/ruby.scm
> @@ -32,6 +32,7 @@
>     #:use-module ((guix licenses) #:prefix license:)
>     #:use-module (gnu packages)
>     #:use-module (gnu packages base)
> +  #:use-module (gnu packages check)
>     #:use-module (gnu packages compression)
>     #:use-module (gnu packages databases)
>     #:use-module (gnu packages dbm)
> @@ -3795,6 +3796,141 @@ It is intended be used by all Cucumber implementations to parse
>       (home-page "https://github.com/cucumber-attic/gherkin")
>       (license license:expat)))
>   
> +(define-public ruby-aruba
> +  (package
> +    (name "ruby-aruba")
> +    (version "0.14.7")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (rubygems-uri "aruba" version))
> +       (sha256
> +        (base32
> +         "0x27352n15dsyf5ak246znfawbrm502q15r4msjw3cis17jlcy1l"))))
> +    (build-system ruby-build-system)
> +    (arguments
> +     '(;; TODO: There are a few test failures
> +       ;; 357 examples, 7 failures

I investigated this and found:
Failed examples:

rspec ./spec/aruba/api_spec.rb:389 # Aruba::Api files #touch when 
directory when exist and the mtim\
e should be set statically
rspec ./spec/aruba/api_spec.rb:388 # Aruba::Api files #touch when 
directory when exist and the mtim\
e should be set statically behaves like an existing directory
rspec ./spec/aruba/api_spec.rb:362 # Aruba::Api files #touch when file 
when does not exist and the \
mtime should be set statically
rspec ./spec/aruba/api_spec.rb:361 # Aruba::Api files #touch when file 
when does not exist and the \
mtime should be set statically behaves like an existing file
rspec ./spec/aruba/matchers/command_spec.rb:165 # Command Matchers 
#to_have_output_on_stderr when h\
ave output hello world on stderr
ave output hello world on stderr
rspec ./spec/aruba/matchers/command_spec.rb:128 # Command Matchers 
#to_have_output_on_stdout when h\
ave output hello world on stderr
rspec ./spec/aruba/matchers/command_spec.rb:91 # Command Matchers 
#to_have_output when have output \
hello world on stderr

The offending lines are in spec/aruba/api_spec.rb
beginning on line: 321, ending on 393
I tried creating a patch with diff for this file. I don't know if this 
is the way others here usually create patches.

If not please enlighten me! :)

-- 
Cheers
Swedebugia
321,393c321,393
<   describe 'files' do
<     describe '#touch' do
<       let(:name) { @file_name }
<       let(:path) { @file_path }
<       let(:options) { {} }
< 
<       before :each do
<         @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
<       end
< 
<       context 'when file' do
<         before :each do
<           @aruba.touch(name, options)
<         end
< 
<         context 'when does not exist' do
<           context 'and should be created in existing directory' do
<             it { expect(File.size(path)).to eq 0 }
<             it_behaves_like 'an existing file'
<           end
< 
<           context 'and should be created in non-existing directory' do
<             let(:name) { 'directory/test' }
<             let(:path) { File.join(@aruba.aruba.current_directory, 'directory/test') }
< 
<             it_behaves_like 'an existing file'
<           end
< 
<           context 'and path includes ~' do
<             let(:string) { random_string }
<             let(:name) { File.join('~', string) }
<             let(:path) { File.join(@aruba.aruba.current_directory, string) }
< 
<             it_behaves_like 'an existing file'
<           end
< 
<           context 'and the mtime should be set statically' do
<             let(:time) { Time.parse('2014-01-01 10:00:00') }
<             let(:options) { { :mtime => Time.parse('2014-01-01 10:00:00') } }
< 
<             it_behaves_like 'an existing file'
<             it { expect(File.mtime(path)).to eq time }
<           end
< 
<           context 'and multiple file names are given' do
<             let(:name) { %w(file1 file2 file3) }
<             let(:path) { %w(file1 file2 file3).map { |p| File.join(@aruba.aruba.current_directory, p) } }
<             it_behaves_like 'an existing file'
<           end
<         end
<       end
< 
<       context 'when directory' do
<         let(:name) { %w(directory1) }
<         let(:path) { Array(name).map { |p| File.join(@aruba.aruba.current_directory, p) } }
< 
<         context 'when exist' do
<           before(:each) { Array(path).each { |p| Aruba.platform.mkdir p } }
< 
<           before :each do
<             @aruba.touch(name, options)
<           end
< 
<           context 'and the mtime should be set statically' do
<             let(:time) { Time.parse('2014-01-01 10:00:00') }
<             let(:options) { { :mtime => Time.parse('2014-01-01 10:00:00') } }
< 
<             it_behaves_like 'an existing directory'
<             it { Array(path).each { |p| expect(File.mtime(p)).to eq time } }
<           end
<         end
<       end
<     end
---
>   # describe 'files' do
>   #   describe '#touch' do
>   #     let(:name) { @file_name }
>   #     let(:path) { @file_path }
>   #     let(:options) { {} }
> 
>   #     before :each do
>   #       @aruba.set_environment_variable 'HOME', File.expand_path(@aruba.aruba.current_directory)
>   #     end
> 
>   #     context 'when file' do
>   #       before :each do
>   #         @aruba.touch(name, options)
>   #       end
> 
>   #       context 'when does not exist' do
>   #         context 'and should be created in existing directory' do
>   #           it { expect(File.size(path)).to eq 0 }
>   #           it_behaves_like 'an existing file'
>   #         end
> 
>   #         context 'and should be created in non-existing directory' do
>   #           let(:name) { 'directory/test' }
>   #           let(:path) { File.join(@aruba.aruba.current_directory, 'directory/test') }
> 
>   #           it_behaves_like 'an existing file'
>   #         end
> 
>   #         context 'and path includes ~' do
>   #           let(:string) { random_string }
>   #           let(:name) { File.join('~', string) }
>   #           let(:path) { File.join(@aruba.aruba.current_directory, string) }
> 
>   #           it_behaves_like 'an existing file'
>   #         end
> 
>   #         context 'and the mtime should be set statically' do
>   #           let(:time) { Time.parse('2014-01-01 10:00:00') }
>   #           let(:options) { { :mtime => Time.parse('2014-01-01 10:00:00') } }
> 
>   #           it_behaves_like 'an existing file'
>   #           it { expect(File.mtime(path)).to eq time }
>   #         end
> 
>   #         context 'and multiple file names are given' do
>   #           let(:name) { %w(file1 file2 file3) }
>   #           let(:path) { %w(file1 file2 file3).map { |p| File.join(@aruba.aruba.current_directory, p) } }
>   #           it_behaves_like 'an existing file'
>   #         end
>   #       end
>   #     end
> 
>   #     context 'when directory' do
>   #       let(:name) { %w(directory1) }
>   #       let(:path) { Array(name).map { |p| File.join(@aruba.aruba.current_directory, p) } }
> 
>   #       context 'when exist' do
>   #         before(:each) { Array(path).each { |p| Aruba.platform.mkdir p } }
> 
>   #         before :each do
>   #           @aruba.touch(name, options)
>   #         end
> 
>   #         context 'and the mtime should be set statically' do
>   #           let(:time) { Time.parse('2014-01-01 10:00:00') }
>   #           let(:options) { { :mtime => Time.parse('2014-01-01 10:00:00') } }
> 
>   #           it_behaves_like 'an existing directory'
>   #           it { Array(path).each { |p| expect(File.mtime(p)).to eq time } }
>   #         end
>   #       end
>   #     end
>   #   end