parliament-utils 0.8.4 → 0.8.5
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/lib/parliament/utils/config/initializers/airbrake.rb +1 -3
- data/lib/parliament/utils/helpers/application_helper.rb +38 -38
- data/lib/parliament/utils/helpers/filter_helper.rb +3 -3
- data/lib/parliament/utils/helpers/houses_helper.rb +73 -71
- data/lib/parliament/utils/helpers/postcode_helper.rb +0 -1
- data/lib/parliament/utils/helpers/request_helper.rb +2 -2
- data/lib/parliament/utils/helpers/translation_helper.rb +1 -1
- data/lib/parliament/utils/helpers/v_card_helper.rb +6 -2
- data/lib/parliament/utils/services/markdown_converter.rb +1 -1
- data/lib/parliament/utils/services/markdown_scrubber.rb +2 -2
- data/lib/parliament/utils/test_helpers/bandiera_helper.rb +2 -2
- data/lib/parliament/utils/test_helpers/rails_helper.rb +24 -24
- data/lib/parliament/utils/test_helpers/rspec_helper.rb +55 -56
- data/lib/parliament/utils/test_helpers/simplecov_helper.rb +9 -5
- data/lib/parliament/utils/test_helpers/vcr_helper.rb +2 -2
- data/lib/parliament/utils/test_helpers/webmock_helper.rb +1 -1
- data/lib/parliament/utils/version.rb +1 -1
- metadata +2 -3
- data/.DS_Store +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a93c4e7d7614401ed2be2cce1d75216064cb8a05
|
|
4
|
+
data.tar.gz: 6d4483d22db5f03fdbf05d93e1f9d8aee233b45c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5ee2a42fb6a4f7bc3c03ed3f2c8be735a82a280adbe1f7f2a3a77a9f1fa0efe4d164de7dfdb82933cbcf8afeed1ebc932040cb27611443feac6a734054e6936d
|
|
7
|
+
data.tar.gz: bf8f28a614588820653311e0a56c0ad51a53acfc6f87001798e0f8497b6482bb89248f196e43ceacd5be3326c0fa8c3f24066212271f8ad480bea20ffc667f92
|
|
@@ -62,9 +62,7 @@ if defined?(Airbrake) && ENV['AIRBRAKE_PROJECT_ID'].present? && ENV['AIRBRAKE_PR
|
|
|
62
62
|
# Airbrake. This can be based on type, message, file, region or any other part
|
|
63
63
|
# of the error's JSON
|
|
64
64
|
Airbrake.add_filter do |notice|
|
|
65
|
-
if notice[:errors].any? { |error| error[:type] == 'ActionController::RoutingError' }
|
|
66
|
-
notice.ignore!
|
|
67
|
-
end
|
|
65
|
+
notice.ignore! if notice[:errors].any? { |error| error[:type] == 'ActionController::RoutingError' }
|
|
68
66
|
end
|
|
69
67
|
|
|
70
68
|
# If you want to convert your log messages to Airbrake errors, we offer an
|
|
@@ -7,47 +7,47 @@ module Parliament
|
|
|
7
7
|
# Note: All of the below are used to generate MIME types that our application will answer to, but NOT the
|
|
8
8
|
# alternatives shown in our header. See ALTERNATIVE_MIME_TYPE_CONFIG.
|
|
9
9
|
API_MIME_TYPE_CONFIG = [
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
10
|
+
{
|
|
11
|
+
nt: 'application/n-triples'
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
ttl: 'text/turtle'
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
tsv: 'text/tab-separated-values'
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
csv: 'text/csv'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
rj: 'application/json+rdf'
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
jsonld: 'application/json+ld',
|
|
27
|
+
json: 'application/json'
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
rdfxml: 'application/rdf+xml',
|
|
31
|
+
rdf: 'application/xml',
|
|
32
|
+
xml: 'text/xml'
|
|
33
|
+
}
|
|
34
34
|
].freeze
|
|
35
35
|
|
|
36
36
|
# Use the above, minus the last two entries (json & xml), to build an alternative URL list.
|
|
37
37
|
# Then re-create JSON and XML with the correct alternatives
|
|
38
|
-
ALTERNATIVE_MIME_TYPE_CONFIG = API_MIME_TYPE_CONFIG.take(API_MIME_TYPE_CONFIG.size-2).concat(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
38
|
+
ALTERNATIVE_MIME_TYPE_CONFIG = API_MIME_TYPE_CONFIG.take(API_MIME_TYPE_CONFIG.size - 2).concat(
|
|
39
|
+
[
|
|
40
|
+
{
|
|
41
|
+
json: 'application/json+ld'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
xml: 'application/rdf+xml'
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
47
|
)
|
|
48
48
|
|
|
49
|
-
API_MIME_TYPES = Parliament::Utils::Helpers::ApplicationHelper::API_MIME_TYPE_CONFIG.map
|
|
50
|
-
API_FILE_EXTENSIONS = Parliament::Utils::Helpers::ApplicationHelper::API_MIME_TYPE_CONFIG.map
|
|
49
|
+
API_MIME_TYPES = Parliament::Utils::Helpers::ApplicationHelper::API_MIME_TYPE_CONFIG.map(&:values).flatten.freeze
|
|
50
|
+
API_FILE_EXTENSIONS = Parliament::Utils::Helpers::ApplicationHelper::API_MIME_TYPE_CONFIG.map(&:keys).flatten.freeze
|
|
51
51
|
ALTERNATIVE_MIME_TYPES_FLATTENED = Parliament::Utils::Helpers::ApplicationHelper::ALTERNATIVE_MIME_TYPE_CONFIG.reduce(:merge)
|
|
52
52
|
|
|
53
53
|
# Sets the title for a page.
|
|
@@ -58,6 +58,7 @@ module Parliament
|
|
|
58
58
|
content_for(:title) { page_title }
|
|
59
59
|
page_title
|
|
60
60
|
end
|
|
61
|
+
|
|
61
62
|
# Before every request that provides data, see if the user is requesting a format that can be served by the data API.
|
|
62
63
|
# If they are, transparently redirect them with a '302: Found' status code
|
|
63
64
|
def data_check
|
|
@@ -81,7 +82,7 @@ module Parliament
|
|
|
81
82
|
request_extension = File.extname(URI.parse(request.url).path)
|
|
82
83
|
redirect_url.path = redirect_url.path + request_extension if request_extension != ''
|
|
83
84
|
|
|
84
|
-
|
|
85
|
+
redirect_to(redirect_url.to_s)
|
|
85
86
|
end
|
|
86
87
|
|
|
87
88
|
# Get the data URL for our current controller and action OR raise a StandardError
|
|
@@ -107,7 +108,7 @@ module Parliament
|
|
|
107
108
|
alternates = []
|
|
108
109
|
|
|
109
110
|
ALTERNATIVE_MIME_TYPES_FLATTENED.each do |extension, format| # (key, value)
|
|
110
|
-
uri =
|
|
111
|
+
uri = URI.parse(url)
|
|
111
112
|
uri.path = "#{uri.path}.#{extension}"
|
|
112
113
|
|
|
113
114
|
alternates << { type: format, href: uri.to_s }
|
|
@@ -127,7 +128,6 @@ module Parliament
|
|
|
127
128
|
def reset_alternates
|
|
128
129
|
Pugin.alternates = []
|
|
129
130
|
end
|
|
130
|
-
|
|
131
131
|
end
|
|
132
132
|
end
|
|
133
133
|
end
|
|
@@ -10,7 +10,7 @@ module Parliament
|
|
|
10
10
|
#
|
|
11
11
|
# @return [Parliament::Response::NTripleResponse] Ntriple response filtered by types
|
|
12
12
|
def self.filter(request, *types)
|
|
13
|
-
types_to_filter =
|
|
13
|
+
types_to_filter = filter_types(*types)
|
|
14
14
|
Parliament::Utils::Helpers::RequestHelper.filter_response_data(
|
|
15
15
|
request, *types_to_filter
|
|
16
16
|
)
|
|
@@ -46,10 +46,10 @@ module Parliament
|
|
|
46
46
|
#
|
|
47
47
|
# @return [Parliament::Response::NTripleResponse] Ntriple response filtered by letters
|
|
48
48
|
def self.filter_sort(request, sort_type, type, letters)
|
|
49
|
-
type, letters =
|
|
49
|
+
type, letters = filter(request, type, letters)
|
|
50
50
|
type = type.sort_by(sort_type)
|
|
51
51
|
letters = letters.map(&:value)
|
|
52
|
-
|
|
52
|
+
[type, letters]
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
55
|
end
|
|
@@ -2,77 +2,79 @@ module Parliament
|
|
|
2
2
|
module Utils
|
|
3
3
|
module Helpers
|
|
4
4
|
module HousesHelper
|
|
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
|
-
|
|
5
|
+
class << self
|
|
6
|
+
# Checks if house is the House of Commons and sets @commons_id and @lords_id if not already set.
|
|
7
|
+
#
|
|
8
|
+
# @param [Grom::Node] house a Grom::Node with type https://id.parliament.uk/schema/House.
|
|
9
|
+
# @return [Boolean] boolean depending on whether the house has the same id as the House of Commons.
|
|
10
|
+
def commons?(house)
|
|
11
|
+
set_ids
|
|
12
|
+
|
|
13
|
+
house.graph_id == @commons_id
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Checks if house is the House of Lords and sets @commons_id and @lords_id if not already set.
|
|
17
|
+
#
|
|
18
|
+
# @param [Grom::Node] house a Grom::Node with type https://id.parliament.uk/schema/House.
|
|
19
|
+
# @return [Boolean] boolean depending on whether the house has the same id as the House of Lords.
|
|
20
|
+
def lords?(house)
|
|
21
|
+
!commons?(house)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Sets and returns the id for the House of Commons.
|
|
25
|
+
#
|
|
26
|
+
# @return [String] @commons_id the id for the House of Commons.
|
|
27
|
+
def commons_id
|
|
28
|
+
set_ids
|
|
29
|
+
|
|
30
|
+
@commons_id
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Sets and returns the id for the House of Lords.
|
|
34
|
+
#
|
|
35
|
+
# @return [String] @lords_id the id for the House of Lords.
|
|
36
|
+
def lords_id
|
|
37
|
+
set_ids
|
|
38
|
+
|
|
39
|
+
@lords_id
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Returns the current house id for the page alongside the other house id.
|
|
43
|
+
#
|
|
44
|
+
# @param [Grom::Node] house The house that a particular person is linked to.
|
|
45
|
+
# @return [Array<String, String>] The current house id and other house id.
|
|
46
|
+
def house_id_string(house)
|
|
47
|
+
is_commons = commons?(house)
|
|
48
|
+
|
|
49
|
+
house_ids = [commons_id, lords_id]
|
|
50
|
+
return house_ids if is_commons
|
|
51
|
+
|
|
52
|
+
house_ids.reverse
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Returns the current
|
|
56
|
+
#
|
|
57
|
+
# @param [Grom::Node] house The house that a particular person is linked to.
|
|
58
|
+
# @return [Array<String, String>] The current person type and other person type.
|
|
59
|
+
def person_type_string(house)
|
|
60
|
+
is_mp = commons?(house)
|
|
61
|
+
|
|
62
|
+
types = [I18n.t('mp_plural'), I18n.t('lord_plural')]
|
|
63
|
+
|
|
64
|
+
return types if is_mp
|
|
65
|
+
|
|
66
|
+
types.reverse
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
private_class_method
|
|
70
|
+
|
|
71
|
+
def set_ids
|
|
72
|
+
return if @commons_id && @lords_id
|
|
73
|
+
houses = Parliament::Utils::Helpers::ParliamentHelper.parliament_request.house_index.get.filter('https://id.parliament.uk/schema/House').sort_by(:name)
|
|
74
|
+
|
|
75
|
+
@commons_id = houses.first.graph_id
|
|
76
|
+
@lords_id = houses.last.graph_id
|
|
77
|
+
end
|
|
76
78
|
end
|
|
77
79
|
end
|
|
78
80
|
end
|
|
@@ -40,7 +40,7 @@ module Parliament
|
|
|
40
40
|
#
|
|
41
41
|
# @return [String] uri with specific path added for filtering parliamentary data within sparql queries
|
|
42
42
|
def self.namespace_uri_path(path)
|
|
43
|
-
|
|
43
|
+
namespace_uri + path
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
# Returns uri with schema path and specific type added for filtering parliamentary data within sparql queries
|
|
@@ -49,7 +49,7 @@ module Parliament
|
|
|
49
49
|
#
|
|
50
50
|
# @return [String] uri with schema path and specific type added for filtering parliamentary data within sparql queries
|
|
51
51
|
def self.namespace_uri_schema_path(type)
|
|
52
|
-
|
|
52
|
+
namespace_uri_path("/schema/#{type}")
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
55
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'vcard'
|
|
2
|
+
|
|
1
3
|
# Namespace for helper methods to generate a vcard.
|
|
2
4
|
module Parliament
|
|
3
5
|
module Utils
|
|
@@ -10,13 +12,15 @@ module Parliament
|
|
|
10
12
|
def create_vcard(contact_point)
|
|
11
13
|
Vcard::Vcard::Maker.make2 do |maker|
|
|
12
14
|
maker.add_name do |name|
|
|
13
|
-
person_set(contact_point, name)
|
|
14
|
-
postal_address_set(contact_point, maker)
|
|
15
15
|
contacts_set(contact_point, maker)
|
|
16
|
+
postal_address_set(contact_point, maker)
|
|
17
|
+
person_set(contact_point, name)
|
|
16
18
|
end
|
|
17
19
|
end
|
|
18
20
|
end
|
|
19
21
|
|
|
22
|
+
private
|
|
23
|
+
|
|
20
24
|
# Sets the contact details of a vcard.
|
|
21
25
|
#
|
|
22
26
|
# @param [Grom::Node] contact_point a Grom::Node with type: https://id.parliament.uk/schema/ContactPoint.
|
|
@@ -13,7 +13,7 @@ module Parliament
|
|
|
13
13
|
#
|
|
14
14
|
def autolink(link, link_type)
|
|
15
15
|
if link_type == :url
|
|
16
|
-
return parliament_live_video_embed(link) if link
|
|
16
|
+
return parliament_live_video_embed(link) if link =~ /parliamentlive.tv\/event\/index\/[a-z0-9-]{36}/i
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
link # call super instead if we actually want autolinking
|
|
@@ -5,8 +5,8 @@ module Parliament
|
|
|
5
5
|
# Overrides default sanitization allowing Parliament tags and/or attributes
|
|
6
6
|
def initialize
|
|
7
7
|
super
|
|
8
|
-
self.tags = %w
|
|
9
|
-
self.attributes = %w
|
|
8
|
+
self.tags = %w[p div h1 h2 h3 h4 h5 h6 span a ol li ul strong em i itag strike del u sup sub blockquote cite table thead tbody tfoot tr th td iframe image pre code dl dt dd hr br]
|
|
9
|
+
self.attributes = %w[class href src name title allowfullscreen seamless frameborder style]
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def skip_node?(node)
|
|
@@ -6,8 +6,8 @@ module Parliament
|
|
|
6
6
|
module TestHelpers
|
|
7
7
|
module BandieraHelper
|
|
8
8
|
def self.load_rspec_config(config)
|
|
9
|
-
#Stubs Bandiera::Client methods enabled? and get_features_for_group to clean up logs
|
|
10
|
-
#and streamline cassettes
|
|
9
|
+
# Stubs Bandiera::Client methods enabled? and get_features_for_group to clean up logs
|
|
10
|
+
# and streamline cassettes
|
|
11
11
|
config.before(:each) do
|
|
12
12
|
allow(BANDIERA_CLIENT).to receive(:enabled?).and_return(false)
|
|
13
13
|
allow(Pugin::PuginBandieraClient::BANDIERA_CLIENT).to receive(:get_features_for_group).and_return({})
|
|
@@ -4,33 +4,33 @@ module Parliament
|
|
|
4
4
|
module RailsHelper
|
|
5
5
|
def self.load_rspec_config(config)
|
|
6
6
|
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
|
|
7
|
-
# # RSpec Rails can automatically mix in different behaviours to your tests
|
|
8
|
-
# # based on their file location, for example enabling you to call `get` and
|
|
9
|
-
# # `post` in specs under `spec/controllers`.
|
|
10
|
-
# #
|
|
11
|
-
# # You can disable this behaviour by removing the line below, and instead
|
|
12
|
-
# # explicitly tag your specs with their type, e.g.:
|
|
13
|
-
# #
|
|
14
|
-
# # RSpec.describe UsersController, :type => :controller do
|
|
15
|
-
# # # ...
|
|
16
|
-
# # end
|
|
17
|
-
# #
|
|
18
|
-
# # The different available types are documented in the features, such as in
|
|
19
|
-
# # https://relishapp.com/rspec/rspec-rails/docs
|
|
7
|
+
# # RSpec Rails can automatically mix in different behaviours to your tests
|
|
8
|
+
# # based on their file location, for example enabling you to call `get` and
|
|
9
|
+
# # `post` in specs under `spec/controllers`.
|
|
10
|
+
# #
|
|
11
|
+
# # You can disable this behaviour by removing the line below, and instead
|
|
12
|
+
# # explicitly tag your specs with their type, e.g.:
|
|
13
|
+
# #
|
|
14
|
+
# # RSpec.describe UsersController, :type => :controller do
|
|
15
|
+
# # # ...
|
|
16
|
+
# # end
|
|
17
|
+
# #
|
|
18
|
+
# # The different available types are documented in the features, such as in
|
|
19
|
+
# # https://relishapp.com/rspec/rspec-rails/docs
|
|
20
20
|
config.infer_spec_type_from_file_location!
|
|
21
|
-
#
|
|
22
|
-
# # Filter lines from Rails gems in backtraces.
|
|
21
|
+
#
|
|
22
|
+
# # Filter lines from Rails gems in backtraces.
|
|
23
23
|
config.filter_rails_from_backtrace!
|
|
24
|
-
# # arbitrary gems may also be filtered via:
|
|
25
|
-
# # config.filter_gems_from_backtrace("gem name")
|
|
24
|
+
# # arbitrary gems may also be filtered via:
|
|
25
|
+
# # config.filter_gems_from_backtrace("gem name")
|
|
26
26
|
config.include Parliament::Utils::Helpers::ApplicationHelper
|
|
27
|
-
#
|
|
28
|
-
# # Set Parliament::Utils::Helpers::HousesHelper#set_ids instance variables to nil after each spec.
|
|
29
|
-
# # Calling certain Parliament::Utils::Helpers::HousesHelper methods (e.g. Parliament::Utils::Helpers::HousesHelper#commons?) causes
|
|
30
|
-
# # Parliament::Utils::Helpers::HousesHelper#set_ids to be called which sets @commons_id and @lords_id.
|
|
31
|
-
# # Setting these to nil causes each spec that requires them to make another
|
|
32
|
-
# # Parliament::Utils::Helpers::ParliamentHelper request and generate a VCR cassette and stops any RSpec
|
|
33
|
-
# # ordering issues where they may or may not have been set by the previous spec.
|
|
27
|
+
#
|
|
28
|
+
# # Set Parliament::Utils::Helpers::HousesHelper#set_ids instance variables to nil after each spec.
|
|
29
|
+
# # Calling certain Parliament::Utils::Helpers::HousesHelper methods (e.g. Parliament::Utils::Helpers::HousesHelper#commons?) causes
|
|
30
|
+
# # Parliament::Utils::Helpers::HousesHelper#set_ids to be called which sets @commons_id and @lords_id.
|
|
31
|
+
# # Setting these to nil causes each spec that requires them to make another
|
|
32
|
+
# # Parliament::Utils::Helpers::ParliamentHelper request and generate a VCR cassette and stops any RSpec
|
|
33
|
+
# # ordering issues where they may or may not have been set by the previous spec.
|
|
34
34
|
config.after(:each) do
|
|
35
35
|
Parliament::Utils::Helpers::HousesHelper.instance_variable_set(:@commons_id, nil)
|
|
36
36
|
Parliament::Utils::Helpers::HousesHelper.instance_variable_set(:@lords_id, nil)
|
|
@@ -2,72 +2,71 @@ module Parliament
|
|
|
2
2
|
module Utils
|
|
3
3
|
module TestHelpers
|
|
4
4
|
module RSpecHelper
|
|
5
|
-
|
|
6
5
|
def self.load_rspec_config(config)
|
|
7
6
|
# RSpec.configure do |config|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
# rspec-expectations config goes here. You can use an alternate
|
|
8
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
|
9
|
+
# assertions if you prefer.
|
|
10
|
+
config.expect_with :rspec do |expectations|
|
|
11
|
+
# This option will default to `true` in RSpec 4. It makes the `description`
|
|
12
|
+
# and `failure_message` of custom matchers include text for helper methods
|
|
13
|
+
# defined using `chain`, e.g.:
|
|
14
|
+
# be_bigger_than(2).and_smaller_than(4).description
|
|
15
|
+
# # => "be bigger than 2 and smaller than 4"
|
|
16
|
+
# ...rather than:
|
|
17
|
+
# # => "be bigger than 2"
|
|
18
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
|
19
|
+
end
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
|
22
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
|
23
|
+
config.mock_with :rspec do |mocks|
|
|
24
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
|
25
|
+
# a real object. This is generally recommended, and will default to
|
|
26
|
+
# `true` in RSpec 4.
|
|
27
|
+
mocks.verify_partial_doubles = true
|
|
28
|
+
end
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
# These two settings work together to allow you to limit a spec run
|
|
31
|
+
# to individual examples or groups you care about by tagging them with
|
|
32
|
+
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
|
33
|
+
# get run.
|
|
34
|
+
config.filter_run :focus
|
|
35
|
+
config.run_all_when_everything_filtered = true
|
|
37
36
|
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
# Disable RSpec exposing methods globally on `Module` and `main`
|
|
38
|
+
config.disable_monkey_patching!
|
|
40
39
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
|
41
|
+
# file, and it's useful to allow more verbose output when running an
|
|
42
|
+
# individual spec file.
|
|
43
|
+
if config.files_to_run.one?
|
|
44
|
+
# Use the documentation formatter for detailed output,
|
|
45
|
+
# unless a formatter has already been configured
|
|
46
|
+
# (e.g. via a command-line flag).
|
|
47
|
+
config.default_formatter = 'doc'
|
|
48
|
+
end
|
|
50
49
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
# Print the 10 slowest examples and example groups at the
|
|
51
|
+
# end of the spec run, to help surface which specs are running
|
|
52
|
+
# particularly slow.
|
|
53
|
+
config.profile_examples = 10
|
|
55
54
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
config.expect_with :rspec do |c|
|
|
56
|
+
c.syntax = :expect
|
|
57
|
+
end
|
|
59
58
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
# Run specs in random order to surface order dependencies. If you find an
|
|
60
|
+
# order dependency and want to debug it, you can fix the order by providing
|
|
61
|
+
# the seed, which is printed after each run.
|
|
62
|
+
# --seed 1234
|
|
63
|
+
config.order = :random
|
|
65
64
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
|
66
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
|
67
|
+
# test failures related to randomization by passing the same `--seed` value
|
|
68
|
+
# as the one that triggered the failure.
|
|
69
|
+
Kernel.srand config.seed
|
|
71
70
|
# end
|
|
72
71
|
end
|
|
73
72
|
end
|
|
@@ -5,13 +5,17 @@ module Parliament
|
|
|
5
5
|
require 'coveralls'
|
|
6
6
|
require 'simplecov'
|
|
7
7
|
|
|
8
|
-
def self.load_rspec_config(
|
|
8
|
+
def self.load_rspec_config(_config)
|
|
9
9
|
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
Coveralls::SimpleCov::Formatter,
|
|
11
|
+
SimpleCov::Formatter::HTMLFormatter
|
|
12
|
+
])
|
|
13
|
+
|
|
13
14
|
profile = defined?(Rails) ? 'rails' : nil
|
|
14
|
-
|
|
15
|
+
|
|
16
|
+
SimpleCov.start profile do
|
|
17
|
+
add_filter 'spec'
|
|
18
|
+
end
|
|
15
19
|
end
|
|
16
20
|
end
|
|
17
21
|
end
|
|
@@ -41,7 +41,7 @@ module Parliament
|
|
|
41
41
|
parliament_match || bandiera_match || opensearch_match || hybrid_bills_match
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
-
config.default_cassette_options = { match_requests_on: [
|
|
44
|
+
config.default_cassette_options = { match_requests_on: %i[method filtered_uri] }
|
|
45
45
|
|
|
46
46
|
# Dynamically filter our sensitive information
|
|
47
47
|
config.filter_sensitive_data('<AUTH_TOKEN>') { ENV['PARLIAMENT_AUTH_TOKEN'] } if ENV['PARLIAMENT_AUTH_TOKEN']
|
|
@@ -55,7 +55,7 @@ module Parliament
|
|
|
55
55
|
should_ignore = ['_:node', '^^<http://www.w3.org/2001/XMLSchema#date>', '^^<http://www.w3.org/2001/XMLSchema#dateTime>', '^^<http://www.w3.org/2001/XMLSchema#integer>']
|
|
56
56
|
|
|
57
57
|
# Check if content type header exists and if it includes application/n-triples
|
|
58
|
-
if interaction.response.headers['Content-Type']
|
|
58
|
+
if interaction.response.headers['Content-Type']&.include?('application/n-triples')
|
|
59
59
|
# Split our data by line
|
|
60
60
|
lines = interaction.response.body.split("\n")
|
|
61
61
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: parliament-utils
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.8.
|
|
4
|
+
version: 0.8.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rebecca Appleyard
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-05-
|
|
11
|
+
date: 2018-05-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: parliament-ruby
|
|
@@ -297,7 +297,6 @@ executables: []
|
|
|
297
297
|
extensions: []
|
|
298
298
|
extra_rdoc_files: []
|
|
299
299
|
files:
|
|
300
|
-
- ".DS_Store"
|
|
301
300
|
- ".gitignore"
|
|
302
301
|
- ".hound.yml"
|
|
303
302
|
- ".rspec"
|
data/.DS_Store
DELETED
|
Binary file
|