Commit e04a0099beb7b9e2fa85b610ab8043ee0b212d2c
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Merge branch 'virtuoso_integration' into production
* virtuoso_integration: changed time_ago_as_sentence to time_ago_in_words fixed display last_harvest fix problema creating job fix saving last_harvest to settings test fixed test fixed new unit test save_harvest_time at the end of a harverst
Showing
6 changed files
with
136 additions
and
26 deletions
Show diff stats
plugins/virtuoso/lib/virtuoso_plugin/dspace_harvest.rb
| @@ -60,14 +60,14 @@ class VirtuosoPlugin::DspaceHarvest | @@ -60,14 +60,14 @@ class VirtuosoPlugin::DspaceHarvest | ||
| 60 | raise ex | 60 | raise ex |
| 61 | end | 61 | end |
| 62 | end | 62 | end |
| 63 | + save_harvest_time_settings(harvest_time) | ||
| 63 | puts "ending harvest #{harvest_time}" | 64 | puts "ending harvest #{harvest_time}" |
| 64 | end | 65 | end |
| 65 | 66 | ||
| 66 | def save_harvest_time_settings(harvest_time) | 67 | def save_harvest_time_settings(harvest_time) |
| 67 | - dspace_settings = {"dspace_uri" => dspace_uri, "last_harvest" => last_harvest} | ||
| 68 | settings.dspace_servers.each do |s| | 68 | settings.dspace_servers.each do |s| |
| 69 | if s["dspace_uri"] == dspace_uri | 69 | if s["dspace_uri"] == dspace_uri |
| 70 | - settings.dspace_servers.delete(dspace_settings) | 70 | + settings.dspace_servers.delete(s) |
| 71 | end | 71 | end |
| 72 | end | 72 | end |
| 73 | @dspace_settings = {"dspace_uri" => dspace_uri, "last_harvest" => harvest_time} | 73 | @dspace_settings = {"dspace_uri" => dspace_uri, "last_harvest" => harvest_time} |
| @@ -102,8 +102,8 @@ class VirtuosoPlugin::DspaceHarvest | @@ -102,8 +102,8 @@ class VirtuosoPlugin::DspaceHarvest | ||
| 102 | 102 | ||
| 103 | class Job < Struct.new(:environment_id, :dspace_uri) | 103 | class Job < Struct.new(:environment_id, :dspace_uri) |
| 104 | def perform | 104 | def perform |
| 105 | - environment = Environment.find(environment_id, dspace_uri) | ||
| 106 | - harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri" => dspace_uri, "last_harvest" => last_harvest}) | 105 | + environment = Environment.find(environment_id) |
| 106 | + harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri" => dspace_uri}) | ||
| 107 | harvest.run | 107 | harvest.run |
| 108 | end | 108 | end |
| 109 | end | 109 | end |
| @@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
| 1 | +#require File.dirname(__FILE__) + '/../test_helper.rb' | ||
| 2 | +# | ||
| 3 | +#class DspaceTest < ActiveSupport::TestCase | ||
| 4 | +# | ||
| 5 | +# def setup | ||
| 6 | +# @environment = Environment.default | ||
| 7 | +# end | ||
| 8 | +# | ||
| 9 | +# attr_reader :environment | ||
| 10 | +# | ||
| 11 | +# should 'list at least one record' do | ||
| 12 | +# settings = | ||
| 13 | +# { :virtuoso_uri=>"http://hom.virtuoso.participa.br", | ||
| 14 | +# :virtuoso_username=>"dba", | ||
| 15 | +# :virtuoso_password=>"dba", | ||
| 16 | +# :virtuoso_readonly_username=>"dba", | ||
| 17 | +# :virtuoso_readonly_password=>"dba", | ||
| 18 | +# :dspace_servers=>[ | ||
| 19 | +# {"dspace_uri"=>"http://hom.dspace.participa.br"} | ||
| 20 | +# ] | ||
| 21 | +# } | ||
| 22 | +# settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, settings) | ||
| 23 | +# harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri"=>"http://hom.dspace.participa.br"}) | ||
| 24 | +# params = harvest.last_harvest ? {:from => harvest.last_harvest.utc} : {} | ||
| 25 | +# records = harvest.dspace_client.list_records(params) | ||
| 26 | +# assert_not_equal records.count, 0 | ||
| 27 | +# end | ||
| 28 | +#end | ||
| 0 | \ No newline at end of file | 29 | \ No newline at end of file |
| @@ -0,0 +1,33 @@ | @@ -0,0 +1,33 @@ | ||
| 1 | +#require File.dirname(__FILE__) + '/../test_helper.rb' | ||
| 2 | +# | ||
| 3 | +#class DspaceTest < ActiveSupport::TestCase | ||
| 4 | +# | ||
| 5 | +# def setup | ||
| 6 | +# @environment = Environment.default | ||
| 7 | +# end | ||
| 8 | +# | ||
| 9 | +# attr_reader :environment | ||
| 10 | +# | ||
| 11 | +# | ||
| 12 | +# should 'update last_harvest after harvert' do | ||
| 13 | +# time = Time.now.utc | ||
| 14 | +# settings = | ||
| 15 | +# { :virtuoso_uri=>"http://hom.virtuoso.participa.br", | ||
| 16 | +# :virtuoso_username=>"dba", | ||
| 17 | +# :virtuoso_password=>"dba", | ||
| 18 | +# :virtuoso_readonly_username=>"dba", | ||
| 19 | +# :virtuoso_readonly_password=>"dba", | ||
| 20 | +# :dspace_servers=>[ | ||
| 21 | +# {"dspace_uri"=>"http://hom.dspace.participa.br"} | ||
| 22 | +# ] | ||
| 23 | +# } | ||
| 24 | +# @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, settings) | ||
| 25 | +# harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri"=>"http://hom.dspace.participa.br" }) | ||
| 26 | +# harvest.run | ||
| 27 | +# assert_not_equal harvest.last_harvest, nil | ||
| 28 | +# Noosfero::Plugin::Settings.new(environment.reload, VirtuosoPlugin) | ||
| 29 | +# assert_not_equal harvest.last_harvest, nil | ||
| 30 | +# assert_not_equal harvest.last_harvest, Time.now.utc | ||
| 31 | +# end | ||
| 32 | +# | ||
| 33 | +#end | ||
| 0 | \ No newline at end of file | 34 | \ No newline at end of file |
plugins/virtuoso/test/unit/dspace_harvest_test.rb
| 1 | -require File.dirname(__FILE__) + '/../test_helper' | 1 | +require File.dirname(__FILE__) + '/../test_helper.rb' |
| 2 | 2 | ||
| 3 | class DspaceHarvestTest < ActiveSupport::TestCase | 3 | class DspaceHarvestTest < ActiveSupport::TestCase |
| 4 | 4 | ||
| @@ -15,11 +15,11 @@ class DspaceHarvestTest < ActiveSupport::TestCase | @@ -15,11 +15,11 @@ class DspaceHarvestTest < ActiveSupport::TestCase | ||
| 15 | :virtuoso_readonly_username=>"readonly_username", | 15 | :virtuoso_readonly_username=>"readonly_username", |
| 16 | :virtuoso_readonly_password=>"readonly_password", | 16 | :virtuoso_readonly_password=>"readonly_password", |
| 17 | :dspace_servers=>[ | 17 | :dspace_servers=>[ |
| 18 | - {"dspace_uri"=>"http://dspace1.noosfero.com","last_harvest" => 5 }, | 18 | + {"dspace_uri"=>"http://dspace1.noosfero.com","last_harvest" => Time.now.utc }, |
| 19 | {"dspace_uri"=>"http://dspace2.noosfero.com"}, | 19 | {"dspace_uri"=>"http://dspace2.noosfero.com"}, |
| 20 | - {"dspace_uri"=>"http://dspace3.noosfero.com", "last_harvest" => 0}, | 20 | + {"dspace_uri"=>"http://dspace3.noosfero.com", "last_harvest" => Time.now.utc}, |
| 21 | {"dspace_uri"=>"http://dspace4.noosfero.com", "last_harvest" => nil}, | 21 | {"dspace_uri"=>"http://dspace4.noosfero.com", "last_harvest" => nil}, |
| 22 | - {"dspace_uri"=>"http://dspace5.noosfero.com", "last_harvest" => 9}, | 22 | + {"dspace_uri"=>"http://dspace5.noosfero.com", "last_harvest" => Time.now.utc}, |
| 23 | ] | 23 | ] |
| 24 | } | 24 | } |
| 25 | end | 25 | end |
| @@ -36,17 +36,21 @@ class DspaceHarvestTest < ActiveSupport::TestCase | @@ -36,17 +36,21 @@ class DspaceHarvestTest < ActiveSupport::TestCase | ||
| 36 | end | 36 | end |
| 37 | 37 | ||
| 38 | should 'save_harvest_time_settings' do | 38 | should 'save_harvest_time_settings' do |
| 39 | - @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, mock_settings) | 39 | + Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, mock_settings) |
| 40 | harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri"=>"http://dspace5.noosfero.com", "last_harvest" => 9}) | 40 | harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri"=>"http://dspace5.noosfero.com", "last_harvest" => 9}) |
| 41 | assert harvest.last_harvest, 9 | 41 | assert harvest.last_harvest, 9 |
| 42 | harvest.save_harvest_time_settings(10) | 42 | harvest.save_harvest_time_settings(10) |
| 43 | - @settings = Noosfero::Plugin::Settings.new(environment.reload, VirtuosoPlugin) | ||
| 44 | assert harvest.last_harvest, 10 | 43 | assert harvest.last_harvest, 10 |
| 44 | + settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin) | ||
| 45 | + dspace_server = settings.dspace_servers[4] | ||
| 46 | + settings = Noosfero::Plugin::Settings.new(environment.reload, VirtuosoPlugin) | ||
| 47 | + dspace_server = settings.dspace_servers[4] | ||
| 48 | + assert_equal 10, dspace_server["last_harvest"] | ||
| 45 | end | 49 | end |
| 46 | 50 | ||
| 47 | should 'create delayed job when start' do | 51 | should 'create delayed job when start' do |
| 48 | - @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, mock_settings) | ||
| 49 | - @settings.save! | 52 | + settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, mock_settings) |
| 53 | + settings.save! | ||
| 50 | harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri"=>"http://dspace1.noosfero.com", "last_harvest" => 5}) | 54 | harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri"=>"http://dspace1.noosfero.com", "last_harvest" => 5}) |
| 51 | assert !harvest.find_job.present? | 55 | assert !harvest.find_job.present? |
| 52 | harvest.start | 56 | harvest.start |
| @@ -54,8 +58,8 @@ class DspaceHarvestTest < ActiveSupport::TestCase | @@ -54,8 +58,8 @@ class DspaceHarvestTest < ActiveSupport::TestCase | ||
| 54 | end | 58 | end |
| 55 | 59 | ||
| 56 | should 'not duplicate harvest job' do | 60 | should 'not duplicate harvest job' do |
| 57 | - @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, mock_settings) | ||
| 58 | - @settings.save! | 61 | + settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, mock_settings) |
| 62 | + settings.save! | ||
| 59 | harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri"=>"http://dspace1.noosfero.com", "last_harvest" => 5}) | 63 | harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri"=>"http://dspace1.noosfero.com", "last_harvest" => 5}) |
| 60 | assert_difference "harvest.find_job.count", 1 do | 64 | assert_difference "harvest.find_job.count", 1 do |
| 61 | 5.times { harvest.start } | 65 | 5.times { harvest.start } |
| @@ -67,8 +71,8 @@ class DspaceHarvestTest < ActiveSupport::TestCase | @@ -67,8 +71,8 @@ class DspaceHarvestTest < ActiveSupport::TestCase | ||
| 67 | end | 71 | end |
| 68 | 72 | ||
| 69 | should 'try to harvest all dspaces from start with mock configuration' do | 73 | should 'try to harvest all dspaces from start with mock configuration' do |
| 70 | - @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, mock_settings) | ||
| 71 | - @settings.save! | 74 | + settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, mock_settings) |
| 75 | + settings.save! | ||
| 72 | VirtuosoPlugin::DspaceHarvest.harvest_all(environment, true) | 76 | VirtuosoPlugin::DspaceHarvest.harvest_all(environment, true) |
| 73 | end | 77 | end |
| 74 | 78 | ||
| @@ -77,9 +81,50 @@ class DspaceHarvestTest < ActiveSupport::TestCase | @@ -77,9 +81,50 @@ class DspaceHarvestTest < ActiveSupport::TestCase | ||
| 77 | end | 81 | end |
| 78 | 82 | ||
| 79 | should 'try to harvest all dspaces with mock configuration' do | 83 | should 'try to harvest all dspaces with mock configuration' do |
| 80 | - @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, mock_settings) | ||
| 81 | - @settings.save! | 84 | + settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, mock_settings) |
| 85 | + settings.save! | ||
| 82 | VirtuosoPlugin::DspaceHarvest.harvest_all(environment, false) | 86 | VirtuosoPlugin::DspaceHarvest.harvest_all(environment, false) |
| 83 | end | 87 | end |
| 84 | 88 | ||
| 85 | -end | 89 | + should 'update last_harvest after harvert' do |
| 90 | + time = Time.now.utc | ||
| 91 | + settings = | ||
| 92 | + { :virtuoso_uri=>"http://virtuoso", | ||
| 93 | + :virtuoso_username=>"username", | ||
| 94 | + :virtuoso_password=>"password", | ||
| 95 | + :virtuoso_readonly_username=>"username", | ||
| 96 | + :virtuoso_readonly_password=>"password", | ||
| 97 | + :dspace_servers=>[ | ||
| 98 | + {"dspace_uri"=>"http://dspace","last_harvest" => time } | ||
| 99 | + ] | ||
| 100 | + } | ||
| 101 | + @settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, settings) | ||
| 102 | + harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri"=>"http://dspace" }) | ||
| 103 | + dspace_client = mock | ||
| 104 | + harvest.expects(:dspace_client).returns(dspace_client) | ||
| 105 | + dspace_client.expects(:list_records).returns([]) | ||
| 106 | + harvest.run | ||
| 107 | + assert_not_equal harvest.last_harvest, nil | ||
| 108 | + Noosfero::Plugin::Settings.new(environment.reload, VirtuosoPlugin) | ||
| 109 | + assert_not_equal harvest.last_harvest, nil | ||
| 110 | + assert_not_equal harvest.last_harvest, Time.now.utc | ||
| 111 | + end | ||
| 112 | + | ||
| 113 | + should 'list records' do | ||
| 114 | + settings = | ||
| 115 | + { :virtuoso_uri=>"http://hom.virtuoso.participa.br", | ||
| 116 | + :virtuoso_username=>"dba", | ||
| 117 | + :virtuoso_password=>"dba", | ||
| 118 | + :virtuoso_readonly_username=>"dba", | ||
| 119 | + :virtuoso_readonly_password=>"dba", | ||
| 120 | + :dspace_servers=>[ | ||
| 121 | + {"dspace_uri"=>"http://hom.dspace.participa.br"} | ||
| 122 | + ] | ||
| 123 | + } | ||
| 124 | + settings = Noosfero::Plugin::Settings.new(environment, VirtuosoPlugin, settings) | ||
| 125 | + harvest = VirtuosoPlugin::DspaceHarvest.new(environment, {"dspace_uri"=>"http://hom.dspace.participa.br"}) | ||
| 126 | + params = harvest.last_harvest ? {:from => harvest.last_harvest.utc} : {} | ||
| 127 | + records = harvest.dspace_client.list_records(params) | ||
| 128 | + assert_not_equal records.count, 0 | ||
| 129 | + end | ||
| 130 | +end | ||
| 86 | \ No newline at end of file | 131 | \ No newline at end of file |
plugins/virtuoso/views/virtuoso_plugin_admin/_server_list_item.html.erb
| 1 | <div> | 1 | <div> |
| 2 | - <% value = server_list_item[:dspace_uri] if server_list_item %> | 2 | + <% |
| 3 | + | ||
| 4 | + value = server_list_item[:dspace_uri] if server_list_item %> | ||
| 3 | <%= text_field_tag 'settings[dspace_servers][][dspace_uri]', value, { :class => 'link-name', :maxlength => 60, :size=> 58 } %> | 5 | <%= text_field_tag 'settings[dspace_servers][][dspace_uri]', value, { :class => 'link-name', :maxlength => 60, :size=> 58 } %> |
| 4 | <%= button_without_text(:delete, _('Delete'), "#" , :class=>"delete-server-list-row") %> | 6 | <%= button_without_text(:delete, _('Delete'), "#" , :class=>"delete-server-list-row") %> |
| 5 | - <% last_execution = server_list_item[:last_harvest] if server_list_item | ||
| 6 | - if last_execution %> | 7 | + |
| 8 | + <% | ||
| 9 | + last_execution = server_list_item["last_harvest"] if server_list_item | ||
| 10 | + if last_execution | ||
| 11 | + %> | ||
| 7 | <div class="date" style="display: inline-block;"> | 12 | <div class="date" style="display: inline-block;"> |
| 8 | <span class="label"><strong><%= _('Last execution:') %></strong></span> | 13 | <span class="label"><strong><%= _('Last execution:') %></strong></span> |
| 9 | - <span class="value"><%= time_ago_as_sentence last_execution %></span> | 14 | + <span class="value"><%= time_ago_in_words last_execution %></span> |
| 10 | </div> | 15 | </div> |
| 11 | <% end %> | 16 | <% end %> |
| 12 | <BR><BR> | 17 | <BR><BR> |
| 13 | </div> | 18 | </div> |
| 14 | - |
plugins/virtuoso/views/virtuoso_plugin_admin/index.html.erb
| @@ -7,9 +7,9 @@ | @@ -7,9 +7,9 @@ | ||
| 7 | <strong> | 7 | <strong> |
| 8 | <%= labelled_form_field _('Virtuoso URL:'), f.text_field(:virtuoso_uri, :size=> 60) %> | 8 | <%= labelled_form_field _('Virtuoso URL:'), f.text_field(:virtuoso_uri, :size=> 60) %> |
| 9 | <%= labelled_form_field _('Virtuoso Admin Username:'), f.text_field(:virtuoso_username, :size=> 60) %> | 9 | <%= labelled_form_field _('Virtuoso Admin Username:'), f.text_field(:virtuoso_username, :size=> 60) %> |
| 10 | - <%= labelled_form_field _('Virtuoso Admin Password:'), f.password_field(:virtuoso_password, :size=> 60) %> | 10 | + <%= labelled_form_field _('Virtuoso Admin Password:'), f.password_field(:virtuoso_password, :size=> 60, value: @settings.virtuoso_password) %> |
| 11 | <%= labelled_form_field _('Virtuoso Read-Only Username:'), f.text_field(:virtuoso_readonly_username, :size=> 60) %> | 11 | <%= labelled_form_field _('Virtuoso Read-Only Username:'), f.text_field(:virtuoso_readonly_username, :size=> 60) %> |
| 12 | - <%= labelled_form_field _('Virtuoso Read-Only Password:'), f.password_field(:virtuoso_readonly_password, :size=> 60) %> | 12 | + <%= labelled_form_field _('Virtuoso Read-Only Password:'), f.password_field(:virtuoso_readonly_password, :size=> 60, value: @settings.virtuoso_readonly_password) %> |
| 13 | </strong> | 13 | </strong> |
| 14 | <BR> | 14 | <BR> |
| 15 | <div class="dspace-servers-config-box" > | 15 | <div class="dspace-servers-config-box" > |