diff --git a/Gemfile b/Gemfile index ee7b592a..ea0ef4e3 100644 --- a/Gemfile +++ b/Gemfile @@ -42,13 +42,12 @@ gem 'haml', '~> 5.2.2' # pin see https://github.com/ncbo/ontologies_api/pull/107 gem 'redcarpet' # NCBO gems (can be from a local dev path or from rubygems/git) -gem 'ncbo_annotator', github: 'ncbo/ncbo_annotator', branch: 'master' -gem 'ncbo_cron', github: 'ncbo/ncbo_cron', branch: 'master' -gem 'ncbo_ontology_recommender', github: 'ncbo/ncbo_ontology_recommender', branch: 'master' -gem 'sparql-client', github: 'ncbo/sparql-client', branch: 'master' -gem 'goo', github: 'ncbo/goo', branch: 'master' -gem 'ontologies_linked_data', github: 'ncbo/ontologies_linked_data', branch: 'master' - +gem 'goo', github: 'ncbo/goo', branch: 'develop' +gem 'ncbo_annotator', github: 'ncbo/ncbo_annotator', branch: 'develop' +gem 'ncbo_cron', github: 'ncbo/ncbo_cron', branch: 'develop' +gem 'ncbo_ontology_recommender', github: 'ncbo/ncbo_ontology_recommender', branch: 'develop' +gem 'ontologies_linked_data', github: 'ncbo/ontologies_linked_data', branch: 'develop' +gem 'sparql-client', github: 'ncbo/sparql-client', branch: 'develop' group :development do # bcrypt_pbkdf and ed35519 is required for capistrano deployments when using ed25519 keys; see https://github.com/miloserdow/capistrano-deploy/issues/42 diff --git a/Gemfile.lock b/Gemfile.lock index 8c28aa1d..45fd55d0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GIT remote: https://github.com/ncbo/goo.git - revision: 39f67ab7fae7675b6ff417ace0ab923e40ffcbcd - branch: master + revision: 35721855ba808517698d8b94eb38d4553001c4b6 + branch: develop specs: goo (0.0.2) addressable (~> 2.8) @@ -16,8 +16,8 @@ GIT GIT remote: https://github.com/ncbo/ncbo_annotator.git - revision: b6d50ebb79f114bf81a1cd89d0f8b4d4cbcddda2 - branch: master + revision: 2abcd54c148d0983570d681506002d9d3782d2eb + branch: develop specs: ncbo_annotator (0.0.1) goo @@ -27,8 +27,8 @@ GIT GIT remote: https://github.com/ncbo/ncbo_cron.git - revision: 095ee0fab70b0fe0f2486655811cc8347b6a63ff - branch: master + revision: 8fa7a03a5a6ca63ebb3675fb9f7b2f1e1f408e2f + branch: develop specs: ncbo_cron (0.0.1) dante @@ -45,8 +45,8 @@ GIT GIT remote: https://github.com/ncbo/ncbo_ontology_recommender.git - revision: 9dbd4f179e42c52095129d353a5ac584e9bd47f3 - branch: master + revision: 084cfc74a78b1c6334f3b74e228ddbf80d36e30a + branch: develop specs: ncbo_ontology_recommender (0.0.1) goo @@ -56,8 +56,8 @@ GIT GIT remote: https://github.com/ncbo/ontologies_linked_data.git - revision: 0ce77f2781ac3353716407c22d8fc16d9bfd2c8f - branch: master + revision: 6389fa2052e06ff8e21c64fd1be0030beca4c828 + branch: develop specs: ontologies_linked_data (0.0.1) activesupport @@ -76,8 +76,8 @@ GIT GIT remote: https://github.com/ncbo/sparql-client.git - revision: e89c26aa96f184dbe9b52d51e04fb3d9ba998dbc - branch: master + revision: 1657f0dd69fd4b522d3549a6848670175f5e98cc + branch: develop specs: sparql-client (1.0.1) json_pure (>= 1.4) @@ -235,7 +235,7 @@ GEM mime-types-data (~> 3.2015) mime-types-data (3.2024.1105) mini_mime (1.1.5) - minitest (5.25.1) + minitest (5.25.2) minitest-hooks (1.5.2) minitest (> 5.3) minitest-stub_any_instance (1.0.3) @@ -260,7 +260,7 @@ GEM net-protocol net-ssh (7.3.0) netrc (0.11.0) - newrelic_rpm (9.15.0) + newrelic_rpm (9.16.0) oj (3.16.7) bigdecimal (>= 3.0) ostruct (>= 0.2) @@ -456,4 +456,4 @@ DEPENDENCIES webrick BUNDLED WITH - 2.5.7 + 2.5.20 diff --git a/test/controllers/test_classes_controller.rb b/test/controllers/test_classes_controller.rb index 69ae98a0..838385d7 100644 --- a/test/controllers/test_classes_controller.rb +++ b/test/controllers/test_classes_controller.rb @@ -106,8 +106,7 @@ def test_all_class_pages assert last_response.ok? count_terms = count_terms + page_response["collection"].length end while page_response["nextPage"] - #bnodes thing got fixed. changed to 486. - assert_equal 486, count_terms + assert_equal 487, count_terms #one more page should bring no results call = "/ontologies/#{ont.acronym}/classes" @@ -295,42 +294,43 @@ def test_descendants_for_cls descendants_data = {} descendants_data['http://bioontology.org/ontologies/ResearchArea.owl#Area_of_Research'] =[ "http://bioontology.org/ontologies/ResearchArea.owl#Behavioral_Science", - "http://bioontology.org/ontologies/ResearchArea.owl#Bioinformatics", - "http://bioontology.org/ontologies/ResearchArea.owl#Biostatistics", - "http://bioontology.org/ontologies/ResearchArea.owl#Clinical_Studies", - "http://bioontology.org/ontologies/ResearchArea.owl#Computational_Biology", - "http://bioontology.org/ontologies/ResearchArea.owl#Epidemiology", - "http://bioontology.org/ontologies/ResearchArea.owl#Genomics", - "http://bioontology.org/ontologies/ResearchArea.owl#Metabolomics", - "http://bioontology.org/ontologies/ResearchArea.owl#Nursing", - "http://bioontology.org/ontologies/ResearchArea.owl#Outcomes_Research", - "http://bioontology.org/ontologies/ResearchArea.owl#Pathology", - "http://bioontology.org/ontologies/ResearchArea.owl#Pediatrics", - "http://bioontology.org/ontologies/ResearchArea.owl#Pharmacokinetics_Pharmacodynamics", - "http://bioontology.org/ontologies/ResearchArea.owl#Physiology", - "http://bioontology.org/ontologies/ResearchArea.owl#Preclinical", - "http://bioontology.org/ontologies/ResearchArea.owl#Proteomics", - "http://bioontology.org/ontologies/ResearchArea.owl#Psychometrics", - "http://bioontology.org/ontologies/ResearchArea.owl#Research_IT", - "http://bioontology.org/ontologies/ResearchArea.owl#Toxicology"] + "http://bioontology.org/ontologies/ResearchArea.owl#Bioinformatics", + "http://bioontology.org/ontologies/ResearchArea.owl#Biostatistics", + "http://bioontology.org/ontologies/ResearchArea.owl#Clinical_Studies", + "http://bioontology.org/ontologies/ResearchArea.owl#Computational_Biology", + "http://bioontology.org/ontologies/ResearchArea.owl#Epidemiology", + "http://bioontology.org/ontologies/ResearchArea.owl#Genomics", + "http://bioontology.org/ontologies/ResearchArea.owl#Metabolomics", + "http://bioontology.org/ontologies/ResearchArea.owl#Nursing", + "http://bioontology.org/ontologies/ResearchArea.owl#Outcomes_Research", + "http://bioontology.org/ontologies/ResearchArea.owl#Pathology", + "http://bioontology.org/ontologies/ResearchArea.owl#Pediatrics", + "http://bioontology.org/ontologies/ResearchArea.owl#Pharmacokinetics_Pharmacodynamics", + "http://bioontology.org/ontologies/ResearchArea.owl#Physiology", + "http://bioontology.org/ontologies/ResearchArea.owl#Preclinical", + "http://bioontology.org/ontologies/ResearchArea.owl#Proteomics", + "http://bioontology.org/ontologies/ResearchArea.owl#Psychometrics", + "http://bioontology.org/ontologies/ResearchArea.owl#Research_IT", + "http://bioontology.org/ontologies/ResearchArea.owl#Toxicology"] descendants_data['http://bioontology.org/ontologies/Activity.owl#Activity'] = ["http://bioontology.org/ontologies/Activity.owl#Biospecimen_Management", - "http://bioontology.org/ontologies/Activity.owl#Community_Engagement", - "http://bioontology.org/ontologies/Activity.owl#Gene_Therapy", - "http://bioontology.org/ontologies/Activity.owl#Health_Services", - "http://bioontology.org/ontologies/Activity.owl#IRB", - "http://bioontology.org/ontologies/Activity.owl#Medical_Device_Development", - "http://bioontology.org/ontologies/Activity.owl#Regulatory_Compliance", - "http://bioontology.org/ontologies/Activity.owl#Research_Funding", - "http://bioontology.org/ontologies/Activity.owl#Research_Lab_Management", - "http://bioontology.org/ontologies/Activity.owl#Resource_Inventory", - "http://bioontology.org/ontologies/Activity.owl#Small_Molecule", - "http://bioontology.org/ontologies/Activity.owl#Social_Networking", - "http://bioontology.org/ontologies/Activity.owl#Software_Development", - "http://bioontology.org/ontologies/Activity.owl#Surgical_Procedure", - "http://bioontology.org/ontologies/Activity.owl#Therapeutics", - "http://bioontology.org/ontologies/Activity.owl#Training"] + "http://bioontology.org/ontologies/Activity.owl#Catalog", + "http://bioontology.org/ontologies/Activity.owl#Community_Engagement", + "http://bioontology.org/ontologies/Activity.owl#Gene_Therapy", + "http://bioontology.org/ontologies/Activity.owl#Health_Services", + "http://bioontology.org/ontologies/Activity.owl#IRB", + "http://bioontology.org/ontologies/Activity.owl#Medical_Device_Development", + "http://bioontology.org/ontologies/Activity.owl#Regulatory_Compliance", + "http://bioontology.org/ontologies/Activity.owl#Research_Funding", + "http://bioontology.org/ontologies/Activity.owl#Research_Lab_Management", + "http://bioontology.org/ontologies/Activity.owl#Resource_Inventory", + "http://bioontology.org/ontologies/Activity.owl#Small_Molecule", + "http://bioontology.org/ontologies/Activity.owl#Social_Networking", + "http://bioontology.org/ontologies/Activity.owl#Software_Development", + "http://bioontology.org/ontologies/Activity.owl#Surgical_Procedure", + "http://bioontology.org/ontologies/Activity.owl#Therapeutics", + "http://bioontology.org/ontologies/Activity.owl#Training"] clss_ids = [ 'http://bioontology.org/ontologies/Activity.owl#Activity', "http://bioontology.org/ontologies/ResearchArea.owl#Area_of_Research" ] @@ -514,8 +514,7 @@ def test_class_page_with_metric_count assert last_response.ok? count_terms = count_terms + page_response["collection"].length end while page_response["nextPage"] - #bnodes thing got fixed. changed to 486. - assert_equal 486, count_terms + assert_equal 487, count_terms #one more page should bring no results call = "/ontologies/#{ont.acronym}/classes" @@ -526,7 +525,7 @@ def test_class_page_with_metric_count assert page_response["collection"].length == 0 end - def test_default_multilingual + def test_multilingual ont = Ontology.find("TEST-ONT-0").include(:acronym).first sub = ont.latest_submission sub.bring_remaining @@ -561,10 +560,54 @@ def test_default_multilingual assert last_response.ok? page_response = MultiJson.load(last_response.body) # show french value as specified in submission naturalLanguage - assert_equal 'Biospecimen Management', page_response["prefLabel"] + assert_equal 'Gestion des échantillons biologiques', page_response["prefLabel"] sub.naturalLanguage = [] sub.save + + # prefLabel NOT present, rdfs:label is defined in multiple languages, default portal language + get "/ontologies/#{ont.acronym}/classes/#{CGI.escape('http://bioontology.org/ontologies/Activity.owl#Catalog')}?lang=all" + assert last_response.ok? + page_response = MultiJson.load(last_response.body) + assert_equal 'Catalog', page_response["prefLabel"]["en"] + assert_equal 'Catalogo', page_response["prefLabel"]["it"] + assert_equal 'Catalogue', page_response["prefLabel"]["fr"] + assert_equal 'Catálogo', page_response["prefLabel"]["es"] + assert_equal 'カタログ', page_response["prefLabel"]["ja"] + + # prefLabel NOT present, rdfs:label is defined in multiple languages, + # portal language is set to one of the defined languages + sub.naturalLanguage = ['ja'] + sub.save + get "/ontologies/#{ont.acronym}/classes/#{CGI.escape('http://bioontology.org/ontologies/Activity.owl#Catalog')}" + assert last_response.ok? + page_response = MultiJson.load(last_response.body) + # show Japanese value as specified in submission naturalLanguage + assert_equal 'カタログ', page_response["prefLabel"] + + sub.naturalLanguage = [] + sub.save + + # prefLabel NOT present, multiple rdfs:label(s) are defined with no language designation + get "/ontologies/#{ont.acronym}/classes/#{CGI.escape('http://bioontology.org/ontologies/Activity.owl#Regulatory_Compliance')}" + assert last_response.ok? + page_response = MultiJson.load(last_response.body) + assert_equal 'Regulatory Compliance', page_response["prefLabel"] + + # prefLabel is defined in a non-language format as well as in French and Italian - default check with no language requested + get "/ontologies/#{ont.acronym}/classes/#{CGI.escape('http://bioontology.org/ontologies/Activity.owl#Research_Lab_Management')}" + assert last_response.ok? + page_response = MultiJson.load(last_response.body) + assert_equal 'Research Lab Management', page_response["prefLabel"] + + # prefLabel is defined in a non-language format as well as in French and Italian - all languages are requested + get "/ontologies/#{ont.acronym}/classes/#{CGI.escape('http://bioontology.org/ontologies/Activity.owl#Research_Lab_Management')}?lang=all" + assert last_response.ok? + page_response = MultiJson.load(last_response.body) + + assert_equal 'Research Lab Management', page_response["prefLabel"]["none"] + assert_equal 'Gestion du laboratoire de recherche', page_response["prefLabel"]["fr"] + assert_equal 'Gestione del laboratorio di ricerca', page_response["prefLabel"]["it"] end end diff --git a/test/controllers/test_metrics_controller.rb b/test/controllers/test_metrics_controller.rb index 0d8b547d..8031d967 100644 --- a/test/controllers/test_metrics_controller.rb +++ b/test/controllers/test_metrics_controller.rb @@ -9,15 +9,15 @@ def before_suite end OntologySubmission.all.each {|s| s.delete } Ontology.all.each {|o| o.delete } - @@data = {"classes"=>486, - "averageChildCount"=>5, - "maxChildCount"=>65, - "classesWithOneChild"=>14, - "classesWithMoreThan25Children"=>2, - "classesWithNoDefinition"=>11, - "individuals"=>124, - "properties"=>63, - "maxDepth"=> 7 } + @@data = {"classes" => 487, + "averageChildCount" => 5, + "maxChildCount" => 65, + "classesWithOneChild" => 14, + "classesWithMoreThan25Children" => 2, + "classesWithNoDefinition" => 11, + "individuals" => 124, + "properties" => 63, + "maxDepth" => 7 } @@options = { ont_count: 2, submission_count: 3, submissions_to_process: [1, 2], @@ -35,8 +35,8 @@ def test_all_metrics #TODO: improve this test and test for two different ontologies #though this is tested in LD metrics.each do |m| - @@data.each do |k,v| - assert_equal(m[k], v) + @@data.each do |k, v| + assert_equal(v, m[k]) end assert m["@id"] == m["submission"].first + "/metrics" end @@ -49,27 +49,29 @@ def test_single_metrics metrics = MultiJson.load(last_response.body) @@data.each do |k,v| - assert_equal(metrics[k], v) + assert_equal(v, metrics[k]) end end def test_metrics_with_submission_id ontology = 'TEST-ONT-0' - get "/ontologies/#{ontology}/submissions/1/metrics" + get "/ontologies/#{ontology}/submissions/2/metrics" assert last_response.ok? metrics = MultiJson.load(last_response.body) + @@data.each do |k,v| - assert_equal(metrics[k], v) + assert_equal(v, metrics[k]) end end def test_metrics_with_submission_id_as_param ontology = 'TEST-ONT-0' - get "/ontologies/#{ontology}/metrics?submissionId=1" + get "/ontologies/#{ontology}/metrics?ontology_submission_id=2" assert last_response.ok? metrics = MultiJson.load(last_response.body) + @@data.each do |k,v| - assert_equal(metrics[k], v) + assert_equal(v, metrics[k]) end end