puree 2.5.0 → 2.5.1
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 +6 -0
- data/lib/puree/model/research_output_scopus_metric.rb +2 -12
- data/lib/puree/version.rb +1 -1
- data/lib/puree/xml_extractor/mixins/event_mixin.rb +1 -1
- data/lib/puree/xml_extractor/organisational_unit.rb +1 -1
- data/lib/puree/xml_extractor/research_output.rb +3 -3
- data/test/common/address.rb +14 -0
- data/test/common/endeavour_person.rb +11 -0
- data/test/common/name_header.rb +9 -0
- data/test/common/person_name.rb +8 -0
- data/test/common/related_content_header.rb +10 -0
- data/test/common/temporal_range.rb +5 -0
- data/test/common/title_header.rb +9 -0
- data/test/extractor/resource_find_test.rb +5 -1
- data/test/model/person_name_test.rb +37 -0
- data/test/test_model_helper.rb +1 -0
- data/test/xml_extractor/xml_extractor_conference_paper_test.rb +10 -3
- data/test/xml_extractor/xml_extractor_dataset_test.rb +37 -14
- data/test/xml_extractor/xml_extractor_event_test.rb +1 -1
- data/test/xml_extractor/xml_extractor_external_organisation_test.rb +1 -0
- data/test/xml_extractor/xml_extractor_journal_article_test.rb +3 -2
- data/test/xml_extractor/xml_extractor_journal_test.rb +3 -1
- data/test/xml_extractor/xml_extractor_organisation_test.rb +7 -3
- data/test/xml_extractor/xml_extractor_person_test.rb +7 -3
- data/test/xml_extractor/xml_extractor_project_test.rb +43 -12
- data/test/xml_extractor/xml_extractor_research_output_test.rb +52 -21
- data/test/xml_extractor/xml_extractor_thesis_test.rb +4 -4
- metadata +20 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 823c32f826a65eb4b0721134ab79bcadcd62f748c6ed78d4d471466e503c1312
|
4
|
+
data.tar.gz: '0860c55ae39eaece7f7e23a756d0b02d665f5d0e8c437340e1200d416edf93aa'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 622f8407995641df0034b05d141440aa489a4d3b424b6fd5bd6062a9aac5ee0e519afb6fc4a96ebb87021f44f2edb75454f0f66194d075e7ac9f7ccc0d9d9c66
|
7
|
+
data.tar.gz: d506dee62955ebdce2076f2b74a6f347d5beb1ad22093a64ed5b248d2520377477fd0e77d8459836971ff51c737082d77c8c09d21683ebdd0e8c72da309fd0fe
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
## 2.5.1 2019-01-11
|
6
|
+
### Fixed
|
7
|
+
- Research output - file URL, scopus metric data types.
|
8
|
+
- Conference paper - event title.
|
9
|
+
- Organisational unit - address post code.
|
10
|
+
|
5
11
|
## 2.5.0 2019-01-04
|
6
12
|
### Added
|
7
13
|
- REST timeouts.
|
@@ -6,20 +6,10 @@ module Puree
|
|
6
6
|
class ResearchOutputScopusMetric < Puree::Model::Structure
|
7
7
|
|
8
8
|
# @return [Integer, nil]
|
9
|
-
|
9
|
+
attr_accessor :value
|
10
10
|
|
11
11
|
# @return [Integer, nil]
|
12
|
-
|
13
|
-
|
14
|
-
# @param v [Integer]
|
15
|
-
def value=(v)
|
16
|
-
@value = v if v && !v.empty?
|
17
|
-
end
|
18
|
-
|
19
|
-
# @param v [Integer]
|
20
|
-
def year=(v)
|
21
|
-
@year = v if v && !v.empty?
|
22
|
-
end
|
12
|
+
attr_accessor :year
|
23
13
|
|
24
14
|
end
|
25
15
|
end
|
data/lib/puree/version.rb
CHANGED
@@ -12,7 +12,7 @@ module Puree
|
|
12
12
|
if !xpath_result.empty?
|
13
13
|
header = Puree::Model::EventHeader.new
|
14
14
|
header.uuid = xpath_result.xpath('@uuid').text.strip
|
15
|
-
header.title = xpath_result.xpath('
|
15
|
+
header.title = xpath_result.xpath('name').text.strip
|
16
16
|
return header if header.data?
|
17
17
|
end
|
18
18
|
nil
|
@@ -21,7 +21,7 @@ module Puree
|
|
21
21
|
a.street = street unless street.empty?
|
22
22
|
building = xpath_result.xpath('building').text.strip
|
23
23
|
a.building = building unless building.empty?
|
24
|
-
postcode = xpath_result.xpath('
|
24
|
+
postcode = xpath_result.xpath('postalcode').text.strip
|
25
25
|
a.postcode = postcode unless building.empty?
|
26
26
|
city = xpath_result.xpath('city').text.strip
|
27
27
|
a.city = city unless city.empty?
|
@@ -53,7 +53,7 @@ module Puree
|
|
53
53
|
model.name = d.xpath('file/fileName').text.strip
|
54
54
|
model.mime = d.xpath('file/mimeType').text.strip
|
55
55
|
model.size = d.xpath('file/size').text.strip.to_i
|
56
|
-
model.url = d.xpath('file/
|
56
|
+
model.url = d.xpath('file/fileURL').text.strip
|
57
57
|
# document_license = d.xpath('licenseType')
|
58
58
|
# if !document_license.empty?
|
59
59
|
# license = Puree::Model::CopyrightLicense.new
|
@@ -142,8 +142,8 @@ module Puree
|
|
142
142
|
data = []
|
143
143
|
xpath_result.each do |i|
|
144
144
|
s = Puree::Model::ResearchOutputScopusMetric.new
|
145
|
-
s.value = i.xpath('value').text.strip
|
146
|
-
s.year = i.xpath('year').text.strip
|
145
|
+
s.value = i.xpath('value').text.strip.to_i
|
146
|
+
s.year = i.xpath('year').text.strip.to_i
|
147
147
|
data << s
|
148
148
|
end
|
149
149
|
data
|
@@ -0,0 +1,14 @@
|
|
1
|
+
def assert_address(data)
|
2
|
+
assert_instance_of Puree::Model::Address, data
|
3
|
+
assert data.data?
|
4
|
+
assert_instance_of String, data.street
|
5
|
+
refute_empty data.street
|
6
|
+
assert_instance_of String, data.building
|
7
|
+
refute_empty data.building
|
8
|
+
assert_instance_of String, data.postcode
|
9
|
+
refute_empty data.postcode
|
10
|
+
assert_instance_of String, data.city
|
11
|
+
refute_empty data.city
|
12
|
+
assert_instance_of String, data.country
|
13
|
+
refute_empty data.country
|
14
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require_relative 'person_name'
|
2
|
+
|
3
|
+
def assert_endeavour_person(data)
|
4
|
+
assert_instance_of Puree::Model::EndeavourPerson, data
|
5
|
+
assert data.data?
|
6
|
+
assert_instance_of String, data.uuid
|
7
|
+
refute_empty data.uuid
|
8
|
+
assert_instance_of String, data.role
|
9
|
+
refute_empty data.role
|
10
|
+
assert_person_name data.name
|
11
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
def assert_related_content_header(data)
|
2
|
+
assert_instance_of Puree::Model::RelatedContentHeader, data
|
3
|
+
assert data.data?
|
4
|
+
assert_instance_of String, data.uuid
|
5
|
+
refute_empty data.uuid
|
6
|
+
assert_instance_of String, data.title
|
7
|
+
refute_empty data.title
|
8
|
+
assert_instance_of String, data.type
|
9
|
+
refute_empty data.type
|
10
|
+
end
|
@@ -76,7 +76,11 @@ class TestResourceFind < Minitest::Test
|
|
76
76
|
|
77
77
|
def test_project
|
78
78
|
# The Channel Scheme - Preston
|
79
|
-
id = '2af1fb5c-ac04-40f3-9cb4-073fb92fcf96'
|
79
|
+
# id = '2af1fb5c-ac04-40f3-9cb4-073fb92fcf96'
|
80
|
+
# FINISHED
|
81
|
+
# uuid changed to
|
82
|
+
id = '6acfd7ae-4012-4c82-bb71-2976dbbafbd6'
|
83
|
+
# pure_id = '236466684'
|
80
84
|
extractor = Puree::Extractor::Project.new config
|
81
85
|
model = extractor.find id
|
82
86
|
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'test_model_helper'
|
2
|
+
|
3
|
+
class TestPersonName < Minitest::Test
|
4
|
+
|
5
|
+
def person_name_new
|
6
|
+
Puree::Model::PersonName.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_new
|
10
|
+
assert_instance_of Puree::Model::PersonName, person_name_new
|
11
|
+
end
|
12
|
+
|
13
|
+
def person_name
|
14
|
+
name = person_name_new
|
15
|
+
name.first = 'Foo'
|
16
|
+
name.last = 'Bar'
|
17
|
+
name
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_first_last
|
21
|
+
assert_equal person_name.first_last, 'Foo Bar'
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_last_first
|
25
|
+
assert_equal person_name.last_first, 'Bar, Foo'
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_initial_last
|
29
|
+
assert_equal person_name.initial_last, 'F. Bar'
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_last_initial
|
33
|
+
assert_equal person_name.last_initial, 'Bar, F.'
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'test_helper'
|
@@ -22,8 +22,15 @@ class TestXMLExtractorPaper < Minitest::Test
|
|
22
22
|
|
23
23
|
asserts_resource x
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
event = x.event
|
26
|
+
assert_instance_of Puree::Model::EventHeader, event
|
27
|
+
assert event.data?
|
28
|
+
|
29
|
+
assert_instance_of String, event.title
|
30
|
+
refute_empty event.title
|
31
|
+
|
32
|
+
assert_instance_of String, event.uuid
|
33
|
+
refute_empty event.uuid
|
27
34
|
|
28
35
|
assert_instance_of Integer, x.pages
|
29
36
|
end
|
@@ -42,7 +49,7 @@ class TestXMLExtractorPaper < Minitest::Test
|
|
42
49
|
id = 'db2193b7-5cc7-496d-9bd5-35192c6d7ece'
|
43
50
|
x = xml_extractor_from_id id
|
44
51
|
|
45
|
-
|
52
|
+
assert x.peer_reviewed
|
46
53
|
end
|
47
54
|
|
48
55
|
def test_absence
|
@@ -1,4 +1,8 @@
|
|
1
1
|
require 'test_xml_extractor_helper'
|
2
|
+
require_relative '../common/endeavour_person'
|
3
|
+
require_relative '../common/name_header'
|
4
|
+
require_relative '../common/related_content_header'
|
5
|
+
require_relative '../common/temporal_range'
|
2
6
|
|
3
7
|
class TestXMLExtractorDataset < Minitest::Test
|
4
8
|
|
@@ -28,11 +32,25 @@ class TestXMLExtractorDataset < Minitest::Test
|
|
28
32
|
refute_empty x.description
|
29
33
|
|
30
34
|
assert_instance_of String, x.doi
|
31
|
-
refute_empty x.doi
|
35
|
+
refute_empty x.doi
|
32
36
|
|
33
37
|
assert_instance_of Array, x.files
|
34
38
|
assert_instance_of Puree::Model::File, x.files.first
|
35
|
-
|
39
|
+
assert x.files.first.data?
|
40
|
+
|
41
|
+
data = x.files.first
|
42
|
+
assert_instance_of Puree::Model::File, data
|
43
|
+
assert data.data?
|
44
|
+
assert_instance_of String, data.name
|
45
|
+
refute_empty data.name
|
46
|
+
# assert_instance_of String, data.mime
|
47
|
+
# refute_empty data.mime
|
48
|
+
# assert_instance_of Integer, data.size
|
49
|
+
assert_instance_of String, data.url
|
50
|
+
refute_empty data.url
|
51
|
+
assert_instance_of Puree::Model::CopyrightLicense, data.license
|
52
|
+
assert_instance_of String, data.license.name
|
53
|
+
refute_empty data.license.name
|
36
54
|
|
37
55
|
assert_instance_of Array, x.keywords
|
38
56
|
assert_instance_of String, x.keywords.first
|
@@ -40,35 +58,34 @@ class TestXMLExtractorDataset < Minitest::Test
|
|
40
58
|
|
41
59
|
assert_instance_of Array, x.organisational_units
|
42
60
|
assert_instance_of Puree::Model::OrganisationalUnitHeader, x.organisational_units.first
|
43
|
-
|
61
|
+
assert_name_header x.organisational_units.first
|
44
62
|
|
45
63
|
assert_instance_of Puree::Model::OrganisationalUnitHeader, x.owner
|
46
|
-
|
64
|
+
assert_name_header x.owner
|
47
65
|
|
48
66
|
assert_instance_of Array, x.persons_internal
|
49
67
|
assert_instance_of Puree::Model::EndeavourPerson, x.persons_internal.first
|
50
|
-
|
68
|
+
assert_endeavour_person x.persons_internal.first
|
51
69
|
|
52
70
|
assert_instance_of Array, x.persons_external
|
53
71
|
assert_instance_of Puree::Model::EndeavourPerson, x.persons_external.first
|
54
|
-
|
72
|
+
assert_endeavour_person x.persons_external.first
|
55
73
|
|
56
74
|
assert_instance_of Puree::Model::TemporalRange, x.production
|
57
|
-
|
75
|
+
assert_temporal_range x.production
|
58
76
|
|
59
77
|
assert_instance_of Array, x.research_outputs
|
60
|
-
|
61
|
-
assert_equal true, x.research_outputs.first.data?
|
78
|
+
assert_related_content_header x.research_outputs.first
|
62
79
|
|
63
80
|
assert_instance_of Puree::Model::PublisherHeader, x.publisher
|
64
|
-
|
81
|
+
assert_name_header x.publisher
|
65
82
|
|
66
83
|
assert_instance_of Array, x.spatial_places
|
67
84
|
assert_instance_of String, x.spatial_places.first
|
68
85
|
refute_empty x.spatial_places.first
|
69
86
|
|
70
87
|
assert_instance_of Puree::Model::TemporalRange, x.temporal
|
71
|
-
|
88
|
+
assert_temporal_range x.temporal
|
72
89
|
|
73
90
|
assert_instance_of String, x.title
|
74
91
|
refute_empty x.title
|
@@ -83,8 +100,12 @@ class TestXMLExtractorDataset < Minitest::Test
|
|
83
100
|
x = xml_extractor_from_id id
|
84
101
|
|
85
102
|
assert_instance_of Array, x.persons_other
|
86
|
-
|
87
|
-
|
103
|
+
data = x.persons_other.first
|
104
|
+
assert_instance_of Puree::Model::EndeavourPerson, data
|
105
|
+
assert data.data?
|
106
|
+
assert_instance_of String, data.role
|
107
|
+
refute_empty data.role
|
108
|
+
assert_person_name data.name
|
88
109
|
end
|
89
110
|
|
90
111
|
def test_spatial_point
|
@@ -93,7 +114,9 @@ class TestXMLExtractorDataset < Minitest::Test
|
|
93
114
|
x = xml_extractor_from_id id
|
94
115
|
|
95
116
|
assert_instance_of Puree::Model::SpatialPoint, x.spatial_point
|
96
|
-
|
117
|
+
assert x.spatial_point.data?
|
118
|
+
assert_instance_of Float, x.spatial_point.latitude
|
119
|
+
assert_instance_of Float, x.spatial_point.longitude
|
97
120
|
end
|
98
121
|
|
99
122
|
def test_absence
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'test_xml_extractor_helper'
|
2
|
+
require_relative '../common/title_header'
|
2
3
|
|
3
4
|
class TestXMLExtractorJournalArticle < Minitest::Test
|
4
5
|
|
@@ -25,14 +26,14 @@ class TestXMLExtractorJournalArticle < Minitest::Test
|
|
25
26
|
assert_instance_of Integer, x.issue
|
26
27
|
|
27
28
|
assert_instance_of Puree::Model::JournalHeader, x.journal
|
28
|
-
|
29
|
+
assert_title_header x.journal
|
29
30
|
|
30
31
|
assert_instance_of String, x.page_range
|
31
32
|
refute_empty x.page_range
|
32
33
|
|
33
34
|
assert_instance_of Integer, x.pages
|
34
35
|
|
35
|
-
|
36
|
+
assert [true, false].include? x.peer_reviewed
|
36
37
|
|
37
38
|
assert_instance_of Integer, x.volume
|
38
39
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'test_xml_extractor_helper'
|
2
|
+
require_relative '../common/name_header'
|
2
3
|
|
3
4
|
class TestXMLExtractorJournal < Minitest::Test
|
4
5
|
|
@@ -26,7 +27,8 @@ class TestXMLExtractorJournal < Minitest::Test
|
|
26
27
|
refute_empty x.issn
|
27
28
|
|
28
29
|
assert_instance_of Puree::Model::PublisherHeader, x.publisher
|
29
|
-
|
30
|
+
assert x.publisher.data?
|
31
|
+
assert_name_header x.publisher
|
30
32
|
|
31
33
|
assert_instance_of String, x.title
|
32
34
|
refute_empty x.title
|
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'test_xml_extractor_helper'
|
2
|
+
require_relative '../common/name_header'
|
3
|
+
require_relative '../common/address'
|
2
4
|
|
3
5
|
class TestXMLExtractorOrganisation < Minitest::Test
|
4
6
|
|
@@ -23,7 +25,7 @@ class TestXMLExtractorOrganisation < Minitest::Test
|
|
23
25
|
asserts_resource x
|
24
26
|
|
25
27
|
assert_instance_of Puree::Model::Address, x.address
|
26
|
-
|
28
|
+
assert_address x.address
|
27
29
|
|
28
30
|
assert_instance_of Array, x.email_addresses
|
29
31
|
assert_instance_of String, x.email_addresses.first
|
@@ -33,11 +35,13 @@ class TestXMLExtractorOrganisation < Minitest::Test
|
|
33
35
|
refute_empty x.name
|
34
36
|
|
35
37
|
assert_instance_of Puree::Model::OrganisationalUnitHeader, x.parent
|
36
|
-
|
38
|
+
assert x.parent.data?
|
39
|
+
assert_name_header x.parent
|
37
40
|
|
38
41
|
assert_instance_of Array, x.parents
|
39
42
|
assert_instance_of Puree::Model::OrganisationalUnitHeader, x.parents.first
|
40
|
-
|
43
|
+
assert x.parents.first.data?
|
44
|
+
assert_name_header x.parents.first
|
41
45
|
|
42
46
|
assert_instance_of Array, x.phone_numbers
|
43
47
|
assert_instance_of String, x.phone_numbers.first
|
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'test_xml_extractor_helper'
|
2
|
+
require_relative '../common/name_header'
|
3
|
+
require_relative '../common/person_name'
|
2
4
|
|
3
5
|
class TestXMLExtractorPerson < Minitest::Test
|
4
6
|
|
@@ -24,7 +26,8 @@ class TestXMLExtractorPerson < Minitest::Test
|
|
24
26
|
|
25
27
|
assert_instance_of Array, x.affiliations
|
26
28
|
assert_instance_of Puree::Model::OrganisationalUnitHeader, x.affiliations.first
|
27
|
-
|
29
|
+
assert x.affiliations.first.data?
|
30
|
+
assert_name_header x.affiliations.first
|
28
31
|
|
29
32
|
assert_instance_of Array, x.email_addresses
|
30
33
|
assert_instance_of String, x.email_addresses.first
|
@@ -36,14 +39,15 @@ class TestXMLExtractorPerson < Minitest::Test
|
|
36
39
|
|
37
40
|
assert_instance_of Array, x.identifiers
|
38
41
|
assert_instance_of Puree::Model::Identifier, x.identifiers.first
|
39
|
-
|
42
|
+
assert x.identifiers.first.data?
|
40
43
|
|
41
44
|
assert_instance_of Array, x.keywords
|
42
45
|
assert_instance_of String, x.keywords.first
|
43
46
|
refute_empty x.keywords.first
|
44
47
|
|
45
48
|
assert_instance_of Puree::Model::PersonName, x.name
|
46
|
-
|
49
|
+
assert x.name.data?
|
50
|
+
assert_person_name x.name
|
47
51
|
|
48
52
|
assert_instance_of String, x.orcid
|
49
53
|
refute_empty x.orcid
|
@@ -1,4 +1,7 @@
|
|
1
1
|
require 'test_xml_extractor_helper'
|
2
|
+
require_relative '../common/endeavour_person'
|
3
|
+
require_relative '../common/name_header'
|
4
|
+
require_relative '../common/temporal_range'
|
2
5
|
|
3
6
|
class TestXMLExtractorProject < Minitest::Test
|
4
7
|
|
@@ -17,7 +20,11 @@ class TestXMLExtractorProject < Minitest::Test
|
|
17
20
|
|
18
21
|
def test_core
|
19
22
|
# The Channel Scheme - Preston
|
20
|
-
id = '2af1fb5c-ac04-40f3-9cb4-073fb92fcf96'
|
23
|
+
# id = '2af1fb5c-ac04-40f3-9cb4-073fb92fcf96'
|
24
|
+
# FINISHED
|
25
|
+
# uuid changed to
|
26
|
+
id = '6acfd7ae-4012-4c82-bb71-2976dbbafbd6'
|
27
|
+
# pure_id = '236466684'
|
21
28
|
x = xml_extractor_from_id id
|
22
29
|
|
23
30
|
assert_instance_of String, x.acronym
|
@@ -25,11 +32,13 @@ class TestXMLExtractorProject < Minitest::Test
|
|
25
32
|
|
26
33
|
assert_instance_of Array, x.external_organisations
|
27
34
|
assert_instance_of Puree::Model::ExternalOrganisationHeader, x.external_organisations.first
|
28
|
-
|
35
|
+
assert x.external_organisations.first.data?
|
36
|
+
assert_name_header x.external_organisations.first
|
29
37
|
|
30
38
|
assert_instance_of Array, x.organisational_units
|
31
39
|
assert_instance_of Puree::Model::OrganisationalUnitHeader, x.organisational_units.first
|
32
|
-
|
40
|
+
assert x.organisational_units.first.data?
|
41
|
+
assert_name_header x.organisational_units.first
|
33
42
|
|
34
43
|
assert_instance_of String, x.status
|
35
44
|
refute_empty x.status
|
@@ -42,17 +51,22 @@ class TestXMLExtractorProject < Minitest::Test
|
|
42
51
|
|
43
52
|
assert_instance_of Array, x.persons_internal
|
44
53
|
assert_instance_of Puree::Model::EndeavourPerson, x.persons_internal.first
|
45
|
-
|
54
|
+
assert x.persons_internal.first.data?
|
55
|
+
assert_endeavour_person x.persons_internal.first
|
46
56
|
|
47
57
|
# persons_other, see Dataset test
|
48
58
|
|
49
59
|
assert_instance_of Puree::Model::TemporalRange, x.temporal
|
50
|
-
|
60
|
+
assert_temporal_range x.temporal
|
51
61
|
end
|
52
62
|
|
53
63
|
def test_description
|
54
64
|
# Designing an inclusive curriculum in higher education
|
55
|
-
id = '926f34e9-e461-406a-a2b8-3f831456ada0'
|
65
|
+
# id = '926f34e9-e461-406a-a2b8-3f831456ada0'
|
66
|
+
# FINISHED
|
67
|
+
# uuid changed to
|
68
|
+
id = '2bf4b724-7c3a-49c7-8a5a-4060a2fc975f'
|
69
|
+
# pure_id = '236382102'
|
56
70
|
x = xml_extractor_from_id id
|
57
71
|
|
58
72
|
assert_instance_of String, x.description
|
@@ -61,17 +75,25 @@ class TestXMLExtractorProject < Minitest::Test
|
|
61
75
|
|
62
76
|
def test_identifiers
|
63
77
|
# Blackburn Parenting and Intensive Family Support Project
|
64
|
-
id = '1b15fa94-39f0-4809-976a-a04b53592004'
|
78
|
+
# id = '1b15fa94-39f0-4809-976a-a04b53592004'
|
79
|
+
# FINISHED
|
80
|
+
# uuid changed to
|
81
|
+
id = 'fc3baafd-f147-4c07-9acc-c98b269fcc4c'
|
82
|
+
# pure_id = '236466374'
|
65
83
|
x = xml_extractor_from_id id
|
66
84
|
|
67
85
|
assert_instance_of Array, x.identifiers
|
68
86
|
assert_instance_of Puree::Model::Identifier, x.identifiers.first
|
69
|
-
|
87
|
+
assert x.identifiers.first.data?
|
70
88
|
end
|
71
89
|
|
72
90
|
def test_url
|
73
91
|
# Designing an inclusive curriculum in higher education
|
74
|
-
id = '926f34e9-e461-406a-a2b8-3f831456ada0'
|
92
|
+
# id = '926f34e9-e461-406a-a2b8-3f831456ada0'
|
93
|
+
# FINISHED
|
94
|
+
# uuid changed to
|
95
|
+
id = '2bf4b724-7c3a-49c7-8a5a-4060a2fc975f'
|
96
|
+
# pure_id = '236382102'
|
75
97
|
x = xml_extractor_from_id id
|
76
98
|
|
77
99
|
assert_instance_of String, x.url
|
@@ -80,12 +102,17 @@ class TestXMLExtractorProject < Minitest::Test
|
|
80
102
|
|
81
103
|
def test_persons_external
|
82
104
|
# Children, flood and urban resilience
|
83
|
-
id = 'a4d07102-8bbb-4110-8969-580a8fd019c0'
|
105
|
+
# id = 'a4d07102-8bbb-4110-8969-580a8fd019c0'
|
106
|
+
# FINISHED
|
107
|
+
# uuid changed to
|
108
|
+
id = '31834af4-2b68-49c4-9caf-6875d1ba78eb'
|
109
|
+
# pure_id = '236476404'
|
84
110
|
x = xml_extractor_from_id id
|
85
111
|
|
86
112
|
assert_instance_of Array, x.persons_external
|
87
113
|
assert_instance_of Puree::Model::EndeavourPerson, x.persons_external.first
|
88
|
-
|
114
|
+
assert x.persons_external.first.data?
|
115
|
+
assert_endeavour_person x.persons_external.first
|
89
116
|
end
|
90
117
|
|
91
118
|
def test_absence
|
@@ -127,7 +154,11 @@ class TestXMLExtractorProject < Minitest::Test
|
|
127
154
|
|
128
155
|
def test_model
|
129
156
|
# The Channel Scheme - Preston
|
130
|
-
id = '2af1fb5c-ac04-40f3-9cb4-073fb92fcf96'
|
157
|
+
# id = '2af1fb5c-ac04-40f3-9cb4-073fb92fcf96'
|
158
|
+
# FINISHED
|
159
|
+
# uuid changed to
|
160
|
+
id = '6acfd7ae-4012-4c82-bb71-2976dbbafbd6'
|
161
|
+
# pure_id = '236466684'
|
131
162
|
x = xml_extractor_from_id id
|
132
163
|
|
133
164
|
assert_instance_of Puree::Model::Project, x.model
|
@@ -1,4 +1,7 @@
|
|
1
1
|
require 'test_xml_extractor_helper'
|
2
|
+
require_relative '../common/endeavour_person'
|
3
|
+
require_relative '../common/name_header'
|
4
|
+
require_relative '../common/related_content_header'
|
2
5
|
|
3
6
|
# Tests Resource methods, via a JournalArticle
|
4
7
|
# Unless otherwise stated, tests ResearchOutput methods via a JournalArticle
|
@@ -34,8 +37,16 @@ class TestXMLExtractorResearchOutput < Minitest::Test
|
|
34
37
|
refute_empty x.doi.to_s
|
35
38
|
|
36
39
|
assert_instance_of Array, x.files
|
37
|
-
|
38
|
-
|
40
|
+
data = x.files.first
|
41
|
+
assert_instance_of Puree::Model::File, data
|
42
|
+
assert data.data?
|
43
|
+
assert_instance_of String, data.name
|
44
|
+
refute_empty data.name
|
45
|
+
assert_instance_of String, data.mime
|
46
|
+
refute_empty data.mime
|
47
|
+
assert_instance_of Integer, data.size
|
48
|
+
assert_instance_of String, data.url
|
49
|
+
refute_empty data.url
|
39
50
|
|
40
51
|
assert_instance_of String, x.language
|
41
52
|
refute_empty x.language
|
@@ -48,29 +59,28 @@ class TestXMLExtractorResearchOutput < Minitest::Test
|
|
48
59
|
refute_empty x.open_access_permission
|
49
60
|
|
50
61
|
assert_instance_of Array, x.organisational_units
|
51
|
-
|
52
|
-
assert_equal true, x.organisational_units.first.data?
|
62
|
+
assert_name_header x.organisational_units.first
|
53
63
|
|
54
|
-
|
55
|
-
assert_equal true, x.owner.data?
|
64
|
+
assert_name_header x.owner
|
56
65
|
|
57
66
|
assert_instance_of Array, x.persons_internal
|
58
|
-
|
59
|
-
assert_equal true, x.persons_internal.first.data?
|
67
|
+
assert_endeavour_person x.persons_internal.first
|
60
68
|
|
61
69
|
assert_instance_of Array, x.persons_external
|
62
|
-
|
63
|
-
assert_equal true, x.persons_external.first.data?
|
70
|
+
assert_endeavour_person x.persons_external.first
|
64
71
|
|
65
72
|
assert_instance_of Array, x.publication_statuses
|
66
|
-
|
67
|
-
|
73
|
+
data = x.publication_statuses.first
|
74
|
+
assert_instance_of Puree::Model::PublicationStatus, data
|
75
|
+
assert data.data?
|
76
|
+
assert_instance_of String, data.stage
|
77
|
+
refute_empty data.stage
|
78
|
+
assert_instance_of Time, data.date
|
68
79
|
|
69
80
|
# persons_other, see Dataset test
|
70
81
|
|
71
82
|
assert_instance_of Array, x.research_outputs
|
72
|
-
|
73
|
-
assert_equal true, x.research_outputs.first.data?
|
83
|
+
assert_related_content_header x.research_outputs.first
|
74
84
|
|
75
85
|
assert_instance_of String, x.type
|
76
86
|
refute_empty x.type
|
@@ -94,6 +104,7 @@ class TestXMLExtractorResearchOutput < Minitest::Test
|
|
94
104
|
x = xml_extractor_from_id id
|
95
105
|
|
96
106
|
assert_instance_of Array, x.dois
|
107
|
+
assert_instance_of String, x.dois.first
|
97
108
|
refute_empty x.dois
|
98
109
|
end
|
99
110
|
|
@@ -107,14 +118,31 @@ class TestXMLExtractorResearchOutput < Minitest::Test
|
|
107
118
|
refute_empty x.keywords.first
|
108
119
|
end
|
109
120
|
|
110
|
-
def test_projects
|
111
|
-
|
112
|
-
|
121
|
+
# def test_projects
|
122
|
+
# # Measurements of the Higgs boson production and decay rates and coupling strengths using pp collision data at s√=7s=7 and 8 TeV in the ATLAS experiment
|
123
|
+
# id = '24ec62e9-a3cc-4402-9ec9-396067949031'
|
124
|
+
# x = xml_extractor_from_id id
|
125
|
+
#
|
126
|
+
# assert_instance_of Array, x.projects
|
127
|
+
#
|
128
|
+
# assert_instance_of Puree::Model::RelatedContentHeader, x.projects.first
|
129
|
+
# assert_related_content_header x.projects.first
|
130
|
+
# Project ATLAS: ATLAS listed as relation in Pure app but no longer available in API response
|
131
|
+
# end
|
132
|
+
|
133
|
+
def test_projects_2
|
134
|
+
# Plant diversity and root traits benefit physical properties key to soil function in grasslands
|
135
|
+
id = '458ad0e7-6950-4e30-9374-125fbf628548'
|
113
136
|
x = xml_extractor_from_id id
|
114
137
|
|
115
138
|
assert_instance_of Array, x.projects
|
139
|
+
|
140
|
+
# Lancaster Environment Centre Project
|
141
|
+
# Active on 2019-01-11
|
142
|
+
# pure_id = '236382106'
|
116
143
|
assert_instance_of Puree::Model::RelatedContentHeader, x.projects.first
|
117
|
-
|
144
|
+
assert_related_content_header x.projects.first
|
145
|
+
assert x.projects.first.uuid === 'a2bf957f-d54b-495a-97ac-cf360eeda67f'
|
118
146
|
end
|
119
147
|
|
120
148
|
def test_scopus_citations_count
|
@@ -138,8 +166,11 @@ class TestXMLExtractorResearchOutput < Minitest::Test
|
|
138
166
|
x = xml_extractor_from_id id
|
139
167
|
|
140
168
|
assert_instance_of Array, x.scopus_metrics
|
141
|
-
|
142
|
-
|
169
|
+
data = x.scopus_metrics.first
|
170
|
+
assert_instance_of Puree::Model::ResearchOutputScopusMetric, data
|
171
|
+
assert data.data?
|
172
|
+
assert_instance_of Integer, data.value
|
173
|
+
assert_instance_of Integer, data.year
|
143
174
|
end
|
144
175
|
|
145
176
|
def test_subtitle
|
@@ -260,6 +291,6 @@ class TestXMLExtractorResearchOutput < Minitest::Test
|
|
260
291
|
x = Puree::XMLExtractor::JournalArticle.new xml
|
261
292
|
assert_instance_of Array, x.projects
|
262
293
|
assert_instance_of Puree::Model::RelatedContentHeader, x.projects.first
|
263
|
-
|
294
|
+
assert_related_content_header x.projects.first
|
264
295
|
end
|
265
296
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'test_xml_extractor_helper'
|
2
|
+
require_relative '../common/name_header'
|
2
3
|
|
3
4
|
class TestXMLExtractorThesis < Minitest::Test
|
4
5
|
|
@@ -24,11 +25,10 @@ class TestXMLExtractorThesis < Minitest::Test
|
|
24
25
|
|
25
26
|
assert_instance_of Time, x.award_date
|
26
27
|
|
27
|
-
|
28
|
-
assert_equal true, x.awarding_institution.data?
|
28
|
+
assert_name_header x.awarding_institution
|
29
29
|
|
30
30
|
assert_instance_of Puree::Model::PublisherHeader, x.publisher
|
31
|
-
|
31
|
+
assert_name_header x.publisher
|
32
32
|
|
33
33
|
assert_instance_of String, x.type
|
34
34
|
refute_empty x.type
|
@@ -41,7 +41,7 @@ class TestXMLExtractorThesis < Minitest::Test
|
|
41
41
|
|
42
42
|
assert_instance_of Array, x.sponsors
|
43
43
|
assert_instance_of Puree::Model::ExternalOrganisationHeader, x.sponsors.first
|
44
|
-
|
44
|
+
assert_name_header x.sponsors.first
|
45
45
|
end
|
46
46
|
|
47
47
|
def test_qualification
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrian Albin-Clark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -199,14 +199,23 @@ files:
|
|
199
199
|
- lib/puree/xml_extractor/thesis.rb
|
200
200
|
- lib/puree/xml_extractor/xml_extractor.rb
|
201
201
|
- puree.gemspec
|
202
|
+
- test/common/address.rb
|
203
|
+
- test/common/endeavour_person.rb
|
204
|
+
- test/common/name_header.rb
|
205
|
+
- test/common/person_name.rb
|
206
|
+
- test/common/related_content_header.rb
|
207
|
+
- test/common/temporal_range.rb
|
208
|
+
- test/common/title_header.rb
|
202
209
|
- test/extractor/resource_count_test.rb
|
203
210
|
- test/extractor/resource_find_test.rb
|
204
211
|
- test/extractor/resource_random_test.rb
|
205
212
|
- test/integration/research_output_types_test.rb
|
213
|
+
- test/model/person_name_test.rb
|
206
214
|
- test/rest/base_test.rb
|
207
215
|
- test/rest/common_test.rb
|
208
216
|
- test/test_extractor_helper.rb
|
209
217
|
- test/test_helper.rb
|
218
|
+
- test/test_model_helper.rb
|
210
219
|
- test/test_rest_helper.rb
|
211
220
|
- test/test_xml_extractor_helper.rb
|
212
221
|
- test/xml_extractor/xml_extractor_collection_test.rb
|
@@ -248,14 +257,23 @@ signing_key:
|
|
248
257
|
specification_version: 4
|
249
258
|
summary: Metadata extraction from the Pure Research Information System.
|
250
259
|
test_files:
|
260
|
+
- test/common/address.rb
|
261
|
+
- test/common/endeavour_person.rb
|
262
|
+
- test/common/name_header.rb
|
263
|
+
- test/common/person_name.rb
|
264
|
+
- test/common/related_content_header.rb
|
265
|
+
- test/common/temporal_range.rb
|
266
|
+
- test/common/title_header.rb
|
251
267
|
- test/extractor/resource_count_test.rb
|
252
268
|
- test/extractor/resource_find_test.rb
|
253
269
|
- test/extractor/resource_random_test.rb
|
254
270
|
- test/integration/research_output_types_test.rb
|
271
|
+
- test/model/person_name_test.rb
|
255
272
|
- test/rest/base_test.rb
|
256
273
|
- test/rest/common_test.rb
|
257
274
|
- test/test_extractor_helper.rb
|
258
275
|
- test/test_helper.rb
|
276
|
+
- test/test_model_helper.rb
|
259
277
|
- test/test_rest_helper.rb
|
260
278
|
- test/test_xml_extractor_helper.rb
|
261
279
|
- test/xml_extractor/xml_extractor_collection_test.rb
|