[noosfero/noosfero][master] Add rake task to activate all available plugins
Rodrigo Souto
gitlab at gitlab.com
Wed May 20 17:08:37 BRT 2015
Rodrigo Souto pushed to branch master at Noosfero / noosfero
Commits:
b464989a by Gabriela Navarro at 2015-05-20T17:05:27Z
Add rake task to activate all available plugins
- - - - -
3 changed files:
- app/models/environment.rb
- + lib/tasks/enable_plugins.rake
- test/unit/environment_test.rb
Changes:
=====================================
app/models/environment.rb
=====================================
--- a/app/models/environment.rb
+++ b/app/models/environment.rb
@@ -339,6 +339,16 @@ class Environment < ActiveRecord::Base
self.save!
end
+ def enable_all_plugins
+ Noosfero::Plugin.available_plugin_names.each do |plugin|
+ plugin_name = plugin.to_s + "Plugin"
+ unless self.enabled_plugins.include?(plugin_name)
+ self.enabled_plugins += [plugin_name]
+ end
+ end
+ self.save!
+ end
+
# Disables a feature identified by its name
def disable(feature, must_save=true)
self.settings["#{feature}_enabled".to_sym] = false
=====================================
lib/tasks/enable_plugins.rake
=====================================
--- /dev/null
+++ b/lib/tasks/enable_plugins.rake
@@ -0,0 +1,9 @@
+namespace :noosfero do
+ namespace :plugins do
+ task :enable_all => :environment do
+ Environment.all.each do |env|
+ puts "Plugins Activated on #{env.name}" if env.enable_all_plugins
+ end
+ end
+ end
+end
=====================================
test/unit/environment_test.rb
=====================================
--- a/test/unit/environment_test.rb
+++ b/test/unit/environment_test.rb
@@ -524,7 +524,7 @@ class EnvironmentTest < ActiveSupport::TestCase
p1= fast_create(Person, :is_template => true, :environment_id => e.id)
p2 = fast_create(Person, :environment_id => e.id)
p3 = fast_create(Person, :is_template => true, :environment_id => e.id)
- assert_equivalent [p1,p3], e.person_templates
+ assert_equivalent [p1,p3], e.person_templates
end
should 'person_templates return an empty array if there is no templates of person' do
@@ -532,7 +532,7 @@ class EnvironmentTest < ActiveSupport::TestCase
fast_create(Person, :environment_id => e.id)
fast_create(Person, :environment_id => e.id)
- assert_equivalent [], e.person_templates
+ assert_equivalent [], e.person_templates
end
should 'person_default_template return the template defined as default' do
@@ -585,7 +585,7 @@ class EnvironmentTest < ActiveSupport::TestCase
c1= fast_create(Community, :is_template => true, :environment_id => e.id)
c2 = fast_create(Community, :environment_id => e.id)
c3 = fast_create(Community, :is_template => true, :environment_id => e.id)
- assert_equivalent [c1,c3], e.community_templates
+ assert_equivalent [c1,c3], e.community_templates
end
should 'community_templates return an empty array if there is no templates of community' do
@@ -646,7 +646,7 @@ class EnvironmentTest < ActiveSupport::TestCase
e1= fast_create(Enterprise, :is_template => true, :environment_id => env.id)
e2 = fast_create(Enterprise, :environment_id => env.id)
e3 = fast_create(Enterprise, :is_template => true, :environment_id => env.id)
- assert_equivalent [e1,e3], env.enterprise_templates
+ assert_equivalent [e1,e3], env.enterprise_templates
end
should 'enterprise_templates return an empty array if there is no templates of enterprise' do
@@ -654,7 +654,7 @@ class EnvironmentTest < ActiveSupport::TestCase
fast_create(Enterprise, :environment_id => env.id)
fast_create(Enterprise, :environment_id => env.id)
- assert_equivalent [], env.enterprise_templates
+ assert_equivalent [], env.enterprise_templates
end
should 'enterprise_default_template return the template defined as default' do
@@ -1428,6 +1428,36 @@ class EnvironmentTest < ActiveSupport::TestCase
assert !environment.plugin_enabled?(Plugin)
end
+ should 'activate on database all available plugins' do
+ plugins_enable = ["Statistics", "Foo", "PeopleBlock"]
+ Noosfero::Plugins.stubs(:available_plugin_names).returns(plugins_enable)
+ env1 = Environment.create(:name => "Test")
+ env2 = Environment.create(:name => "Test 2")
+
+ env1.enable_all_plugins
+ env2.enable_all_plugins
+
+ plugins = ["PeopleBlockPlugin", "StatisticsPlugin", "FooPlugin"]
+ plugins.each do |plugin|
+ assert env1.enabled_plugins.include?(plugin)
+ assert env2.enabled_plugins.include?(plugin)
+ end
+ end
+
+ should 'dont activate plugins that are not available' do
+ env1 = Environment.create(:name => "Test")
+ env2 = Environment.create(:name => "Test 2")
+
+ env1.enable_all_plugins
+ env2.enable_all_plugins
+
+ plugins = ["SomePlugin", "OtherPlugin", "ThirdPlugin"]
+ plugins.each do |plugin|
+ assert_equal false, env1.enabled_plugins.include?(plugin)
+ assert_equal false, env2.enabled_plugins.include?(plugin)
+ end
+ end
+
should 'have production costs' do
assert_respond_to Environment.default, :production_costs
end
View it on GitLab: https://gitlab.com/noosfero/noosfero/commit/b464989afb12e24c1a22d30c5d097e9555ed5494
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20150520/47f542c3/attachment.html>
More information about the Noosfero-dev
mailing list