From f982baccb2dc288815d4d9195cfdde0477d361a4 Mon Sep 17 00:00:00 2001 From: "Vladimir Sharshov (warpc)" Date: Tue, 11 Oct 2016 18:47:14 +0300 Subject: [PATCH] Fix wrong detection of plugin deletable property Add tests Change-Id: I1577f2035777319219980ec181d8275597c5bced Closes-Bug: #1632377 --- nailgun/nailgun/plugins/manager.py | 2 +- .../nailgun/test/unit/test_plugin_manager.py | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 nailgun/nailgun/test/unit/test_plugin_manager.py diff --git a/nailgun/nailgun/plugins/manager.py b/nailgun/nailgun/plugins/manager.py index 8e17c50c0c..80822a78b0 100644 --- a/nailgun/nailgun/plugins/manager.py +++ b/nailgun/nailgun/plugins/manager.py @@ -761,7 +761,7 @@ class PluginManager(object): :type plugin: plugin model :returns: boolean """ - return ClusterPlugin.is_plugin_used(plugin.id) + return not ClusterPlugin.is_plugin_used(plugin.id) @classmethod def _get_specific_version(cls, versions, plugin_id): diff --git a/nailgun/nailgun/test/unit/test_plugin_manager.py b/nailgun/nailgun/test/unit/test_plugin_manager.py new file mode 100644 index 0000000000..403764e587 --- /dev/null +++ b/nailgun/nailgun/test/unit/test_plugin_manager.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- + +# Copyright 2017 Mirantis, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from nailgun import objects +from nailgun.plugins import manager + +from nailgun.test.base import BaseTestCase + + +class TestPluginManager(BaseTestCase): + + def setUp(self): + super(TestPluginManager, self).setUp() + self.cluster = self.env.create() + self.plugin_manager = manager.PluginManager + self.plugin = self.env.create_plugin(api=False) + + def test_return_false_if_plugin_used(self): + self.cluster.plugins.append(self.plugin) + objects.ClusterPlugin.set_attributes(self.cluster.id, + self.plugin.id, + enabled=True) + self.db.refresh(self.plugin) + self.assertEqual(False, self.plugin_manager + ._is_plugin_deletable(self.plugin)) + + def test_return_true_if_plugin_unused(self): + self.assertEqual(True, self.plugin_manager + ._is_plugin_deletable(self.plugin))