qa 5.11.0 → 5.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/qa/authorities/assign_fast/generic_authority.rb +4 -1
- data/lib/qa/authorities/getty/aat.rb +1 -1
- data/lib/qa/authorities/getty/aat2.rb +1 -1
- data/lib/qa/version.rb +1 -1
- data/spec/controllers/terms_controller_spec.rb +1 -1
- data/spec/lib/authorities/assign_fast_spec.rb +22 -15
- data/spec/lib/authorities/getty/aat_spec.rb +1 -1
- data/spec/lib/authorities/getty/tgn_spec.rb +1 -1
- data/spec/lib/authorities/getty/ulan_spec.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 240eaf6a35e71e0663c25ad33ccc37515f60a72787f7073dd6b158505896e5e8
|
4
|
+
data.tar.gz: a00c4b833fd76ccc548e742fd0338ecf1492f9d18349d3cfa1cfee58015dbb75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87ef10f83a3e903da5e602737083f138ca95848adce671b041b75a44b2b254e8377d260b603a0687177d90044a6bb127fd102f8b596724afec09a718a6a2ae30
|
7
|
+
data.tar.gz: 49ec9dd06d050f71d9dc7b4f077611cdbb5532832f83771510ab5e56a817c0a5c3852bdcddde56eba6d09b6bc25dbe3e33f99453fb15ba2e87cf6dd172b7637d
|
@@ -46,7 +46,10 @@ module Qa::Authorities
|
|
46
46
|
index = AssignFast.index_for_authority(subauthority)
|
47
47
|
return_data = "#{index}%2Cidroot%2Cauth%2Ctype"
|
48
48
|
num_rows = 20 # max allowed by the API
|
49
|
-
|
49
|
+
|
50
|
+
# sort=usage+desc is not documented by OCLC but seems necessary to get the sort
|
51
|
+
# we formerly got without specifying, that is most useful in our use case.
|
52
|
+
"http://fast.oclc.org/searchfast/fastsuggest?&query=#{escaped_query}&queryIndex=#{index}&queryReturn=#{return_data}&suggest=autoSubject&rows=#{num_rows}&sort=usage+desc"
|
50
53
|
end
|
51
54
|
|
52
55
|
private
|
@@ -54,7 +54,7 @@ module Qa::Authorities
|
|
54
54
|
end
|
55
55
|
rescue StandardError => e
|
56
56
|
cause = response.fetch('error', {}).fetch('cause', 'UNKNOWN')
|
57
|
-
cause = cause.
|
57
|
+
cause = cause.presence || 'UNKNOWN'
|
58
58
|
Rails.logger.warn " ERROR fetching Getty response: #{e.message}; cause: #{cause}"
|
59
59
|
{}
|
60
60
|
end
|
@@ -54,7 +54,7 @@ module Qa::Authorities
|
|
54
54
|
end
|
55
55
|
rescue StandardError => e
|
56
56
|
cause = response.fetch('error', {}).fetch('cause', 'UNKNOWN')
|
57
|
-
cause = cause.
|
57
|
+
cause = cause.presence || 'UNKNOWN'
|
58
58
|
Rails.logger.warn " ERROR fetching Getty response: #{e.message}; cause: #{cause}"
|
59
59
|
{}
|
60
60
|
end
|
data/lib/qa/version.rb
CHANGED
@@ -199,7 +199,7 @@ describe Qa::TermsController, type: :controller do
|
|
199
199
|
|
200
200
|
context "assign_fast" do
|
201
201
|
before do
|
202
|
-
stub_request(:get, "http://fast.oclc.org/searchfast/fastsuggest?query=word&queryIndex=suggest50&queryReturn=suggest50,idroot,auth,type&rows=20&suggest=autoSubject")
|
202
|
+
stub_request(:get, "http://fast.oclc.org/searchfast/fastsuggest?query=word&queryIndex=suggest50&queryReturn=suggest50,idroot,auth,type&rows=20&suggest=autoSubject&sort=usage+desc")
|
203
203
|
.with(headers: { 'Accept' => 'application/json' })
|
204
204
|
.to_return(body: webmock_fixture("assign-fast-topical-result.json"), status: 200, headers: {})
|
205
205
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Qa::Authorities::AssignFast do
|
4
|
+
let(:query) { "word (ling" }
|
5
|
+
let(:expected_url) { "http://fast.oclc.org/searchfast/fastsuggest?&query=word%20ling&queryIndex=suggestall&queryReturn=suggestall%2Cidroot%2Cauth%2Ctype&suggest=autoSubject&rows=20&sort=usage+desc" }
|
6
|
+
|
4
7
|
# subauthority infrastructure
|
5
8
|
describe "#new" do
|
6
9
|
context "without a sub-authority" do
|
@@ -30,8 +33,7 @@ describe Qa::Authorities::AssignFast do
|
|
30
33
|
end
|
31
34
|
|
32
35
|
it "is correctly formed" do
|
33
|
-
|
34
|
-
expect(authority.build_query_url("word (ling")).to eq(url)
|
36
|
+
expect(authority.build_query_url(query)).to eq(expected_url)
|
35
37
|
end
|
36
38
|
end
|
37
39
|
|
@@ -43,27 +45,29 @@ describe Qa::Authorities::AssignFast do
|
|
43
45
|
context "when we sent a bad character" do
|
44
46
|
# server returns 200 with empty response; JSON throws a ParserError
|
45
47
|
before do
|
46
|
-
stub_request(:get,
|
48
|
+
stub_request(:get, expected_url)
|
47
49
|
.with(headers: { 'Accept' => 'application/json' })
|
48
50
|
.to_return(status: 200, body: "", headers: {})
|
49
51
|
end
|
50
52
|
it "logs an info and returns an empty array" do
|
51
|
-
expect(Rails.logger).to receive(:info).with(
|
52
|
-
msg = "Could not parse response as JSON. Request url: "
|
53
|
-
"http://fast.oclc.org/searchfast/fastsuggest?&query=word%20ling&queryIndex=suggestall&queryReturn=suggestall%2Cidroot%2Cauth%2Ctype&suggest=autoSubject&rows=20"
|
53
|
+
expect(Rails.logger).to receive(:info).with("Retrieving json for url: #{expected_url}")
|
54
|
+
msg = "Could not parse response as JSON. Request url: #{expected_url}"
|
54
55
|
expect(Rails.logger).to receive(:info).with(msg)
|
55
|
-
results = authority.search(
|
56
|
+
results = authority.search(query)
|
56
57
|
expect(results).to eq([])
|
57
58
|
end
|
58
59
|
end
|
59
60
|
|
60
61
|
context "when query is blank" do
|
62
|
+
let(:query) { "" }
|
63
|
+
let(:expected_url) { "http://fast.oclc.org/searchfast/fastsuggest?&query=&queryIndex=suggestall&queryReturn=suggestall%2Cidroot%2Cauth%2Ctype&suggest=autoSubject&rows=20&sort=usage+desc" }
|
64
|
+
|
61
65
|
# server returns results but no results header
|
62
66
|
let :results do
|
63
|
-
stub_request(:get,
|
67
|
+
stub_request(:get, expected_url)
|
64
68
|
.with(headers: { 'Accept' => 'application/json' })
|
65
69
|
.to_return(body: webmock_fixture("assign-fast-noheader.json"), status: 200, headers: {})
|
66
|
-
authority.search(
|
70
|
+
authority.search(query)
|
67
71
|
end
|
68
72
|
it "returns an empty array" do
|
69
73
|
expect(results).to eq([])
|
@@ -72,10 +76,10 @@ describe Qa::Authorities::AssignFast do
|
|
72
76
|
|
73
77
|
context "with no results" do
|
74
78
|
let :results do
|
75
|
-
stub_request(:get,
|
79
|
+
stub_request(:get, expected_url)
|
76
80
|
.with(headers: { 'Accept' => 'application/json' })
|
77
81
|
.to_return(body: webmock_fixture("assign-fast-noresults.json"), status: 200, headers: {})
|
78
|
-
authority.search(
|
82
|
+
authority.search(query)
|
79
83
|
end
|
80
84
|
it "returns an empty array" do
|
81
85
|
expect(results).to eq([])
|
@@ -84,10 +88,10 @@ describe Qa::Authorities::AssignFast do
|
|
84
88
|
|
85
89
|
context "with suggestall results" do
|
86
90
|
let :results do
|
87
|
-
stub_request(:get,
|
91
|
+
stub_request(:get, expected_url)
|
88
92
|
.with(headers: { 'Accept' => 'application/json' })
|
89
93
|
.to_return(body: webmock_fixture("assign-fast-oneresult.json"), status: 200, headers: {})
|
90
|
-
authority.search(
|
94
|
+
authority.search(query)
|
91
95
|
end
|
92
96
|
it "is correctly parsed" do
|
93
97
|
expect(results.count).to eq(1)
|
@@ -99,11 +103,14 @@ describe Qa::Authorities::AssignFast do
|
|
99
103
|
end
|
100
104
|
|
101
105
|
context "with topical results" do
|
106
|
+
let(:query) { "word" }
|
107
|
+
let(:expected_url) { "http://fast.oclc.org/searchfast/fastsuggest?query=word&queryIndex=suggest50&queryReturn=suggest50,idroot,auth,type&rows=20&suggest=autoSubject&sort=usage+desc" }
|
108
|
+
|
102
109
|
let :results do
|
103
|
-
stub_request(:get,
|
110
|
+
stub_request(:get, expected_url)
|
104
111
|
.with(headers: { 'Accept' => 'application/json' })
|
105
112
|
.to_return(body: webmock_fixture("assign-fast-topical-result.json"), status: 200, headers: {})
|
106
|
-
described_class.subauthority_for("topical").search(
|
113
|
+
described_class.subauthority_for("topical").search(query)
|
107
114
|
end
|
108
115
|
it "is correctly parsed" do
|
109
116
|
expect(results.count).to eq(20)
|
@@ -38,7 +38,7 @@ describe Qa::Authorities::Getty::AAT do
|
|
38
38
|
# Rails 3.1 actually quotes the failing code in the error message,
|
39
39
|
# so let's match this error message with a multiline regex instead of
|
40
40
|
# a string.
|
41
|
-
expect(Rails.logger).to receive(:warn).with(/ERROR fetching Getty response: .*undefined method.*for nil
|
41
|
+
expect(Rails.logger).to receive(:warn).with(/ERROR fetching Getty response: .*undefined method.*for nil.*; cause: UNKNOWN/m)
|
42
42
|
expect(subject).to be {}
|
43
43
|
end
|
44
44
|
end
|
@@ -38,7 +38,7 @@ describe Qa::Authorities::Getty::TGN do
|
|
38
38
|
# Rails 3.1 actually quotes the failing code in the error message,
|
39
39
|
# so let's match this error message with a multiline regex instead of
|
40
40
|
# a string.
|
41
|
-
expect(Rails.logger).to receive(:warn).with(/ERROR fetching Getty response: .*undefined method.*for nil
|
41
|
+
expect(Rails.logger).to receive(:warn).with(/ERROR fetching Getty response: .*undefined method.*for nil.*; cause: UNKNOWN/m)
|
42
42
|
expect(subject).to be {}
|
43
43
|
end
|
44
44
|
end
|
@@ -38,7 +38,7 @@ describe Qa::Authorities::Getty::Ulan do
|
|
38
38
|
# Rails 3.1 actually quotes the failing code in the error message,
|
39
39
|
# so let's match this error message with a multiline regex instead of
|
40
40
|
# a string.
|
41
|
-
expect(Rails.logger).to receive(:warn).with(/ERROR fetching Getty response: .*undefined method.*for nil
|
41
|
+
expect(Rails.logger).to receive(:warn).with(/ERROR fetching Getty response: .*undefined method.*for nil.*; cause: UNKNOWN/m)
|
42
42
|
expect(subject).to be {}
|
43
43
|
end
|
44
44
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen Anderson
|
@@ -16,7 +16,7 @@ authors:
|
|
16
16
|
autorequire:
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
|
-
date:
|
19
|
+
date: 2024-08-06 00:00:00.000000000 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: activerecord-import
|