From 33fffa1eededbba9a399a9639d5cf4b7af3ff32a Mon Sep 17 00:00:00 2001 From: kjgarza Date: Thu, 30 Jan 2020 16:23:50 +0100 Subject: [PATCH 1/9] factory for orcid_events --- spec/factories/default.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spec/factories/default.rb b/spec/factories/default.rb index 74c91d0a2..336376d44 100644 --- a/spec/factories/default.rb +++ b/spec/factories/default.rb @@ -358,5 +358,14 @@ relation_type_id { "unique-dataset-investigations-regular" } occurred_at { "2015-06-13T16:14:19Z" } end + + factory :event_for_datacite_orcid_auto_update do + source_id { "datacite-orcid-auto-updatee" } + source_token { "5348967fhdjksr3wyui325" } + sequence(:obj_id) { |n| "https://orcid.org/0000-0003-1419-211{n}" } + sequence(:subj_id) { |n| "http://doi.org/10.5061/DRYAD.47SD5e/#{n}" } + relation_type_id { "is-authored-by" } + occurred_at { "2015-06-13T16:14:19Z" } + end end end From a442139dbc2a31904f4c5b98a20cfc26d23b9d7c Mon Sep 17 00:00:00 2001 From: kjgarza Date: Thu, 30 Jan 2020 16:24:14 +0100 Subject: [PATCH 2/9] added seedbank for better seeding --- Gemfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Gemfile b/Gemfile index e26ed9879..e97328d38 100644 --- a/Gemfile +++ b/Gemfile @@ -86,6 +86,7 @@ group :development do gem "spring" gem "spring-watcher-listen", "~> 2.0.0" gem "spring-commands-rspec" + gem "seedbank" # gem "httplog", "~> 1.0" end From 6aeced43634fa5583aca232e4cccf4b79170bef3 Mon Sep 17 00:00:00 2001 From: kjgarza Date: Thu, 30 Jan 2020 16:24:28 +0100 Subject: [PATCH 3/9] seeding for different cases --- db/seeds/development/base.seeds.rb | 13 +++++++++++++ db/seeds/development/researcher_profile.seeds.rb | 10 ++++++++++ 2 files changed, 23 insertions(+) create mode 100644 db/seeds/development/base.seeds.rb create mode 100644 db/seeds/development/researcher_profile.seeds.rb diff --git a/db/seeds/development/base.seeds.rb b/db/seeds/development/base.seeds.rb new file mode 100644 index 000000000..b5b0f15ca --- /dev/null +++ b/db/seeds/development/base.seeds.rb @@ -0,0 +1,13 @@ +require "factory_bot_rails" + + +FactoryBot.create(:provider, symbol: "ADMIN") +provider = FactoryBot.create(:provider, symbol: "DATACITE") +client = FactoryBot.create(:client, provider: provider, symbol: ENV['MDS_USERNAME'], password: ENV['MDS_PASSWORD']) +prefix = FactoryBot.create(:prefix, prefix: "10.14454") +FactoryBot.create(:client_prefix, client: client, prefix: prefix) +dois = FactoryBot.create_list(:doi,10, client: client) + +FactoryBot.create_list(:event_for_datacite_related, 3, obj_id: dois.first.doi) +FactoryBot.create_list(:event_for_datacite_usage, 2, obj_id: dois.first.doi) + diff --git a/db/seeds/development/researcher_profile.seeds.rb b/db/seeds/development/researcher_profile.seeds.rb new file mode 100644 index 000000000..ca23107b1 --- /dev/null +++ b/db/seeds/development/researcher_profile.seeds.rb @@ -0,0 +1,10 @@ +require "factory_bot_rails" + +after :base do + client = Client.all.first + dois = FactoryBot.create_list(:doi,70, client: client, state: "findable") + + FactoryBot.create_list(:event_for_datacite_related, 34, obj_id: dois.first.doi) + FactoryBot.create_list(:event_for_datacite_usage, 32, obj_id: dois.first.doi) + FactoryBot.create_list(:event_for_datacite_orcid_auto_update, 5, subj_id: dois.first.doi, obj_id: 'http://orcid.org/0000-0003-2926-8353') +end \ No newline at end of file From 60e7c72a51a39ad93daeaa9b8d7c899e0b2ccb14 Mon Sep 17 00:00:00 2001 From: kjgarza Date: Thu, 30 Jan 2020 18:49:42 +0100 Subject: [PATCH 4/9] seedeing after --- db/seeds/development/base.seeds.rb | 2 +- db/seeds/development/researcher_profile.seeds.rb | 5 +++-- spec/factories/default.rb | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/db/seeds/development/base.seeds.rb b/db/seeds/development/base.seeds.rb index b5b0f15ca..bc34588f9 100644 --- a/db/seeds/development/base.seeds.rb +++ b/db/seeds/development/base.seeds.rb @@ -6,7 +6,7 @@ client = FactoryBot.create(:client, provider: provider, symbol: ENV['MDS_USERNAME'], password: ENV['MDS_PASSWORD']) prefix = FactoryBot.create(:prefix, prefix: "10.14454") FactoryBot.create(:client_prefix, client: client, prefix: prefix) -dois = FactoryBot.create_list(:doi,10, client: client) +dois = FactoryBot.create_list(:doi,10, client: client, state: "findable") FactoryBot.create_list(:event_for_datacite_related, 3, obj_id: dois.first.doi) FactoryBot.create_list(:event_for_datacite_usage, 2, obj_id: dois.first.doi) diff --git a/db/seeds/development/researcher_profile.seeds.rb b/db/seeds/development/researcher_profile.seeds.rb index ca23107b1..1cd6dfe54 100644 --- a/db/seeds/development/researcher_profile.seeds.rb +++ b/db/seeds/development/researcher_profile.seeds.rb @@ -1,10 +1,11 @@ require "factory_bot_rails" -after :base do +after "development:base" do client = Client.all.first dois = FactoryBot.create_list(:doi,70, client: client, state: "findable") FactoryBot.create_list(:event_for_datacite_related, 34, obj_id: dois.first.doi) FactoryBot.create_list(:event_for_datacite_usage, 32, obj_id: dois.first.doi) - FactoryBot.create_list(:event_for_datacite_orcid_auto_update, 5, subj_id: dois.first.doi, obj_id: 'http://orcid.org/0000-0003-2926-8353') + FactoryBot.create(:event_for_datacite_orcid_auto_update, subj_id: dois.first.doi, obj_id: 'http://orcid.org/0000-0003-2926-8353') + FactoryBot.create_list(:event_for_datacite_orcid_auto_update, 5, obj_id: 'http://orcid.org/0000-0003-2926-8353') end \ No newline at end of file diff --git a/spec/factories/default.rb b/spec/factories/default.rb index 336376d44..d585541a5 100644 --- a/spec/factories/default.rb +++ b/spec/factories/default.rb @@ -362,7 +362,7 @@ factory :event_for_datacite_orcid_auto_update do source_id { "datacite-orcid-auto-updatee" } source_token { "5348967fhdjksr3wyui325" } - sequence(:obj_id) { |n| "https://orcid.org/0000-0003-1419-211{n}" } + sequence(:obj_id) { |n| "https://orcid.org/0000-0003-1419-211#{n}}" } sequence(:subj_id) { |n| "http://doi.org/10.5061/DRYAD.47SD5e/#{n}" } relation_type_id { "is-authored-by" } occurred_at { "2015-06-13T16:14:19Z" } From 66d098aa18b4e12ed9b53e52894d721ac4eeb09c Mon Sep 17 00:00:00 2001 From: kjgarza Date: Wed, 11 Mar 2020 10:59:29 +0100 Subject: [PATCH 5/9] instructions on how to use --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index d0861d125..c1c022093 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,14 @@ You can now point your browser to `http://localhost:8065` and use the applicatio ## Development +For basic setup one can use the following: + +```bash +bundle exec rake db:create +bundle exec rake db:schema:load +bundle exec rake db:seed:development:base +``` + We use Rspec for testing: ```bash From 86b6c48e1c169960374b87a8883cdf6486f2e9d9 Mon Sep 17 00:00:00 2001 From: kjgarza Date: Wed, 11 Mar 2020 10:59:40 +0100 Subject: [PATCH 6/9] warnings for messages --- db/seeds/development/base.seeds.rb | 18 ++++++++++-------- .../development/researcher_profile.seeds.rb | 12 +++++++----- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/db/seeds/development/base.seeds.rb b/db/seeds/development/base.seeds.rb index bc34588f9..1614d5ed7 100644 --- a/db/seeds/development/base.seeds.rb +++ b/db/seeds/development/base.seeds.rb @@ -1,13 +1,15 @@ require "factory_bot_rails" +fail "Seed tasks can only be used in the development enviroment" if Rails.env.production? +fail "You need to set up a MDS_USERNAME and MDS_PASSWORD" if ENV["MDS_USERNAME"].blank? || ENV["MDS_PASSWORD"].blank? FactoryBot.create(:provider, symbol: "ADMIN") provider = FactoryBot.create(:provider, symbol: "DATACITE") -client = FactoryBot.create(:client, provider: provider, symbol: ENV['MDS_USERNAME'], password: ENV['MDS_PASSWORD']) -prefix = FactoryBot.create(:prefix, prefix: "10.14454") -FactoryBot.create(:client_prefix, client: client, prefix: prefix) -dois = FactoryBot.create_list(:doi,10, client: client, state: "findable") - -FactoryBot.create_list(:event_for_datacite_related, 3, obj_id: dois.first.doi) -FactoryBot.create_list(:event_for_datacite_usage, 2, obj_id: dois.first.doi) - +client = FactoryBot.create(:client, provider: provider, symbol: ENV["MDS_USERNAME"], password: ENV["MDS_PASSWORD"]) +if Prefix.where(prefix: "10.14454").blank? + prefix = FactoryBot.create(:prefix, prefix: "10.14454") + FactoryBot.create(:client_prefix, client: client, prefix: prefix) +end +dois = FactoryBot.create_list(:doi, 10, client: client, state: "findable") +FactoryBot.create_list(:event_for_datacite_related, 3, obj_id: dois.first.doi) +FactoryBot.create_list(:event_for_datacite_usage, 2, obj_id: dois.first.doi) \ No newline at end of file diff --git a/db/seeds/development/researcher_profile.seeds.rb b/db/seeds/development/researcher_profile.seeds.rb index 1cd6dfe54..05819ea0e 100644 --- a/db/seeds/development/researcher_profile.seeds.rb +++ b/db/seeds/development/researcher_profile.seeds.rb @@ -1,11 +1,13 @@ require "factory_bot_rails" +fail "Seed tasks can only be used in the development enviroment" if Rails.env.production? + after "development:base" do client = Client.all.first - dois = FactoryBot.create_list(:doi,70, client: client, state: "findable") + dois = FactoryBot.create_list(:doi, 70, client: client, state: "findable") - FactoryBot.create_list(:event_for_datacite_related, 34, obj_id: dois.first.doi) + FactoryBot.create_list(:event_for_datacite_related, 34, obj_id: dois.first.doi) FactoryBot.create_list(:event_for_datacite_usage, 32, obj_id: dois.first.doi) - FactoryBot.create(:event_for_datacite_orcid_auto_update, subj_id: dois.first.doi, obj_id: 'http://orcid.org/0000-0003-2926-8353') - FactoryBot.create_list(:event_for_datacite_orcid_auto_update, 5, obj_id: 'http://orcid.org/0000-0003-2926-8353') -end \ No newline at end of file + FactoryBot.create(:event_for_datacite_orcid_auto_update, subj_id: dois.first.doi, obj_id: "http://orcid.org/0000-0003-2926-8353") + FactoryBot.create_list(:event_for_datacite_orcid_auto_update, 5, obj_id: "http://orcid.org/0000-0003-2926-8353") +end From fbf2b72f18a5f609331b54ebd91adb355e17ae01 Mon Sep 17 00:00:00 2001 From: kjgarza Date: Wed, 11 Mar 2020 11:57:31 +0100 Subject: [PATCH 7/9] missing factory --- spec/factories/default.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/spec/factories/default.rb b/spec/factories/default.rb index fd27c8b2b..63a48953a 100644 --- a/spec/factories/default.rb +++ b/spec/factories/default.rb @@ -453,6 +453,18 @@ occurred_at { "2015-06-13T16:14:19Z" } end + factory :event_for_datacite_usage do + source_id { "datacite-usage" } + source_token { "5348967fhdjksr3wyui325" } + total { rand(1..100).to_int } + sequence(:subj_id) { |_n| "https://api.test.datacite.org/report/#{SecureRandom.uuid}" } + subj { { "datePublished" => "2006-06-13T16:14:19Z" } } + obj { { "date_published" => "2007-06-13T16:14:19Z" } } + obj_id { "http://doi.org/10.5061/DRYAD.47SD5/1" } + relation_type_id { "unique-dataset-investigations-regular" } + occurred_at { "2015-06-13T16:14:19Z" } + end + factory :event_for_datacite_orcid_auto_update do source_id { "datacite-orcid-auto-update" } source_token { "5348967fhdjksr3wyui325" } From 6d4b708044e751ac175dce83a1d81b0a05380ed7 Mon Sep 17 00:00:00 2001 From: kjgarza Date: Mon, 20 Apr 2020 19:20:47 +0200 Subject: [PATCH 8/9] accomodate table prefix changes --- db/seeds/development/base.seeds.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/db/seeds/development/base.seeds.rb b/db/seeds/development/base.seeds.rb index 1614d5ed7..dd1c92b03 100644 --- a/db/seeds/development/base.seeds.rb +++ b/db/seeds/development/base.seeds.rb @@ -3,12 +3,12 @@ fail "Seed tasks can only be used in the development enviroment" if Rails.env.production? fail "You need to set up a MDS_USERNAME and MDS_PASSWORD" if ENV["MDS_USERNAME"].blank? || ENV["MDS_PASSWORD"].blank? -FactoryBot.create(:provider, symbol: "ADMIN") -provider = FactoryBot.create(:provider, symbol: "DATACITE") -client = FactoryBot.create(:client, provider: provider, symbol: ENV["MDS_USERNAME"], password: ENV["MDS_PASSWORD"]) -if Prefix.where(prefix: "10.14454").blank? - prefix = FactoryBot.create(:prefix, prefix: "10.14454") - FactoryBot.create(:client_prefix, client: client, prefix: prefix) +FactoryBot.create(:provider, symbol: "ADMIN") if Provider.where(symbol: "ADMIN").blank? +provider = Provider.where(symbol: "DATACITE").first || FactoryBot.create(:provider, symbol: "DATACITE") +client = Client.where(symbol: "DATACITE.TEST").first || FactoryBot.create(:client, provider: provider, symbol: ENV["MDS_USERNAME"], password: ENV["MDS_PASSWORD"]) +if Prefix.where(uid: "10.14454").blank? + prefix = FactoryBot.create(:prefix, uid: "10.14454") + FactoryBot.create(:client_prefix, client_id: client.id, prefix_id: prefix.id) end dois = FactoryBot.create_list(:doi, 10, client: client, state: "findable") FactoryBot.create_list(:event_for_datacite_related, 3, obj_id: dois.first.doi) From 2a58ab45d2be98a3fc120c8c11ace8abc21739f4 Mon Sep 17 00:00:00 2001 From: kjgarza Date: Mon, 20 Apr 2020 19:25:51 +0200 Subject: [PATCH 9/9] update readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c1c022093..778db40ea 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,8 @@ bundle exec rake db:schema:load bundle exec rake db:seed:development:base ``` +All other seed opntion can be found using rake --tasks + We use Rspec for testing: ```bash