ldp_testsuite_wrapper 0.0.1 → 0.0.2

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
  SHA1:
3
- metadata.gz: 7c3ec21983a7900383b9ea60765fc540fde08025
4
- data.tar.gz: e23c1fa1ab0c948847f5181fa2b5d49f8e492598
3
+ metadata.gz: f545d49caa535de0fa085638036a2ce3e36255e5
4
+ data.tar.gz: b5df7dd9b78f608c2720b31d3b425edc49e9b06a
5
5
  SHA512:
6
- metadata.gz: 1534142b90e37724803e75430c51d2c13f756aa081f69a64d61ffa8dcabcd7fdb75c10d019485f4c3b1f418bb329921d6323bcbfd98d351580475131cb4526d8
7
- data.tar.gz: e36a309dc4927506308d785a54995518b001dfcb3fa608d9ebbfdd3f6e11da8b2348b2f674a05e024f96cda356dc760cb53004979b384b4dcbd0952cd11b8c99
6
+ metadata.gz: 755b66ea3c3e1b7ef6de28fd286a0b35324770becd161172c5c2101a4330e39ec51a660f9b62b577e32b458f3743284bade6aafe2117f04834b44427716a842c
7
+ data.tar.gz: d3ddb33f239451fa5661439883ee5482eb0cc0208a8d3b4f7998a54c6eced90e0350d3a1c4e58a7f19c8b06d6e9d38f8585181e4915c056832aea0c638c4bc13
@@ -3,4 +3,7 @@
3
3
  require 'ldp_testsuite_wrapper'
4
4
  require 'byebug'
5
5
 
6
- LdpTestsuiteWrapper.default_instance.exec(ARGV)
6
+ status, out = LdpTestsuiteWrapper.default_instance.exec(ARGV)
7
+
8
+ puts out.read
9
+ exit status.to_i
@@ -16,8 +16,8 @@ module LdpTestsuiteWrapper
16
16
  ##
17
17
  # @param [Hash] options
18
18
  # @option options [String] :url
19
- # @option options [String] :download_dir Local directory to store the downloaded Solr zip and its md5 file in (overridden by :download_path)
20
- # @option options [String] :download_path Local path for storing the downloaded Solr zip file
19
+ # @option options [String] :download_dir Local directory to store the downloaded test suite zip and its md5 file in (overridden by :download_path)
20
+ # @option options [String] :download_path Local path for storing the downloaded test suite zip file
21
21
  # @option options [Boolean] :verbose return verbose info when running commands
22
22
  # @option options [Hash] :env
23
23
  def initialize(options = {})
@@ -25,10 +25,9 @@ module LdpTestsuiteWrapper
25
25
  end
26
26
 
27
27
  ##
28
- # Run a bin/solr command
28
+ # Run the LDP test suite
29
29
  # @param [Hash] options key-value pairs to transform into command line arguments
30
30
  # @return [StringIO] an IO object for the executed shell command
31
- # @see https://github.com/apache/lucene-solr/blob/trunk/solr/bin/solr
32
31
  # If you want to pass a boolean flag, include it in the +options+ hash with its value set to +true+
33
32
  # the key will be converted into a boolean flag for you.
34
33
  def exec(options = {})
@@ -123,9 +122,9 @@ module LdpTestsuiteWrapper
123
122
 
124
123
  # rubocop:disable Lint/RescueException
125
124
 
126
- # extract a copy of solr to instance_dir
127
- # Does noting if solr already exists at instance_dir
128
- # @return [String] instance_dir Directory where solr has been installed
125
+ # extract a copy of test suite to instance_dir
126
+ # Does noting if test suite already exists at instance_dir
127
+ # @return [String] instance_dir Directory where test suite has been installed
129
128
  def extract
130
129
  return instance_dir if extracted?
131
130
 
@@ -0,0 +1,73 @@
1
+ require 'nokogiri'
2
+
3
+ RSpec.shared_examples 'ldp test suite' do
4
+ let(:report_path) { File.expand_path('test-output/testng-results.xml') }
5
+ let(:report) { Nokogiri::XML(File.read(report_path)) }
6
+ let(:url) { "#{server_url}/#{SecureRandom.hex}" }
7
+
8
+ let(:container_type) do
9
+ case
10
+ when test_suite_options[:basic]
11
+ 'http://www.w3.org/ns/ldp#BasicContainer'
12
+ when test_suite_options[:direct]
13
+ 'http://www.w3.org/ns/ldp#DirectContainer'
14
+ when test_suite_options[:indirect]
15
+ 'http://www.w3.org/ns/ldp#IndirectContainer'
16
+ end
17
+ end
18
+
19
+ let(:ldp_testsuite) do
20
+ LdpTestsuiteWrapper.default_instance
21
+ end
22
+
23
+ before do
24
+ response = Faraday.put do |req|
25
+ req.url url
26
+ req.headers['Link'] = "<#{container_type}>; rel=\"type\"" if container_type
27
+ req.headers['Content-Type'] = 'text/turtle'
28
+ end
29
+
30
+ expect(response.status).to eq 201
31
+ end
32
+
33
+ before do
34
+ $response ||= {}
35
+ $response[test_suite_options] ||= ldp_testsuite.exec(test_suite_options.merge(server: url))
36
+ end
37
+
38
+ before do
39
+ expect(File).to exist(report_path)
40
+ end
41
+
42
+ describe 'LDP test suite' do
43
+ it 'passes tests' do
44
+ # Report PASS / FAIL tests
45
+ aggregate_failures 'test suite response' do
46
+ report.xpath('//test-method').each do |method|
47
+ next if method['status'] == 'SKIP' || skipped_tests.include?(method['name'])
48
+ expect(method['status']).to eq('PASS'), <<-EOF.gsub(/^\s+/, '')
49
+ #{method['name']}: #{method['description']}
50
+ #{method.xpath('exception/@class')}
51
+ #{method.xpath('exception/message').text}
52
+ EOF
53
+ end
54
+ end
55
+ end
56
+
57
+ it 'skips skipped tests' do
58
+ pending 'skipped LDP tests'
59
+
60
+ # Report skipped tests as pending
61
+ aggregate_failures 'skipped test suite response' do
62
+ report.xpath('//test-method').each do |method|
63
+ next unless method['status'] == 'SKIP' || skipped_tests.include?(method['name'])
64
+ expect(method['status']).to eq('PASS'), <<-EOF.gsub(/^\s+/, '')
65
+ #{method['name']}: #{method['description']}
66
+ #{method.xpath('exception/@class')}
67
+ #{method.xpath('exception/message').text}
68
+ EOF
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -1,3 +1,3 @@
1
1
  module LdpTestsuiteWrapper
2
- VERSION = '0.0.1'.freeze
2
+ VERSION = '0.0.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ldp_testsuite_wrapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Beer
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-08 00:00:00.000000000 Z
11
+ date: 2016-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -117,6 +117,7 @@ files:
117
117
  - ldp_testsuite_wrapper.gemspec
118
118
  - lib/ldp_testsuite_wrapper.rb
119
119
  - lib/ldp_testsuite_wrapper/instance.rb
120
+ - lib/ldp_testsuite_wrapper/rspec.rb
120
121
  - lib/ldp_testsuite_wrapper/version.rb
121
122
  - spec/lib/ldp_testsuite_wrapper_spec.rb
122
123
  - spec/spec_helper.rb