Re: [Kimchi-devel] [PATCH v2][Wok 7/8] Fix test utils imports and add auth tests

On 06/06/2016 04:13 PM, Rodrigo Trujillo wrote:
This patch add auth test to GET and POST requests in API of Plugins Manager. It also fixes imports in tests/utils.py
Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo@linux.vnet.ibm.com> --- tests/test_plugin.py | 5 +++-- tests/test_server.py | 10 +++++++++- tests/utils.py | 7 ++++--- 3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/tests/test_plugin.py b/tests/test_plugin.py index 7c5e8e8..d785cfa 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -23,7 +23,8 @@ import json import unittest from functools import partial
-from wok.utils import get_enabled_plugins +#from wok.pluginsmanager import get_enabled_plugins +from wok.pluginsmanager import Plugins
import utils
@@ -50,7 +51,7 @@ def tearDownModule():
@unittest.skipUnless( - 'sample' in [plugin for plugin, _config in get_enabled_plugins()], + 'sample' in Plugins().get_enabled_plugins(), 'sample plugin is not enabled, skip this test!') class PluginTests(unittest.TestCase):
diff --git a/tests/test_server.py b/tests/test_server.py index 1f5a236..6e4749e 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -188,12 +188,20 @@ class ServerTests(unittest.TestCase):
def test_auth_protected(self): hdrs = {'AUTHORIZATION': ''} - uris = ['/tasks'] + uris = ['/tasks', + '/pluginsmanager', + '/pluginsmanager/sample']
for uri in uris: resp = self.request(uri, None, 'GET', hdrs) self.assertEquals(401, resp.status)
+ uris = ['/pluginsmanager/sample/disable'] + + for uri in uris: + resp = self.request(uri, {}, 'POST', hdrs) + self.assertEquals(401, resp.status) + def test_auth_bad_creds(self): # Test HTTPBA hdrs = {'AUTHORIZATION': "Basic " + base64.b64encode("nouser:badpass")} diff --git a/tests/utils.py b/tests/utils.py index d158ba1..ed709e1 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -38,8 +38,9 @@ from lxml import etree
import wok.server from wok.config import config, PluginPaths
-from wok.auth import User, USER_NAME, USER_GROUPS, USER_ROLES, tabs
Keep importing 'tabs' to do not parse the file multiple times.
+from wok.auth import User, USER_NAME, USER_GROUPS, USER_ROLES from wok.exception import NotFoundError, OperationFailed +from wok.pluginsmanager import get_all_tabs from wok.utils import wok_log
@@ -192,14 +193,14 @@ class FakeUser(User): self.user = {} self.user[USER_NAME] = username self.user[USER_GROUPS] = None - self.user[USER_ROLES] = dict.fromkeys(tabs, 'user') + self.user[USER_ROLES] = dict.fromkeys(get_all_tabs(), 'user')
def get_groups(self): return sorted([group.gr_name for group in grp.getgrall()])[0:3]
def get_roles(self): if self.sudo: - self.user[USER_ROLES] = dict.fromkeys(tabs, 'admin') + self.user[USER_ROLES] = dict.fromkeys(get_all_tabs(), 'admin') return self.user[USER_ROLES]
def get_user(self):

On 06/08/2016 04:11 PM, Aline Manera wrote:
On 06/06/2016 04:13 PM, Rodrigo Trujillo wrote:
This patch add auth test to GET and POST requests in API of Plugins Manager. It also fixes imports in tests/utils.py
Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo@linux.vnet.ibm.com> --- tests/test_plugin.py | 5 +++-- tests/test_server.py | 10 +++++++++- tests/utils.py | 7 ++++--- 3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/tests/test_plugin.py b/tests/test_plugin.py index 7c5e8e8..d785cfa 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -23,7 +23,8 @@ import json import unittest from functools import partial
-from wok.utils import get_enabled_plugins +#from wok.pluginsmanager import get_enabled_plugins +from wok.pluginsmanager import Plugins
import utils
@@ -50,7 +51,7 @@ def tearDownModule():
@unittest.skipUnless( - 'sample' in [plugin for plugin, _config in get_enabled_plugins()], + 'sample' in Plugins().get_enabled_plugins(), 'sample plugin is not enabled, skip this test!') class PluginTests(unittest.TestCase):
diff --git a/tests/test_server.py b/tests/test_server.py index 1f5a236..6e4749e 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -188,12 +188,20 @@ class ServerTests(unittest.TestCase):
def test_auth_protected(self): hdrs = {'AUTHORIZATION': ''} - uris = ['/tasks'] + uris = ['/tasks', + '/pluginsmanager', + '/pluginsmanager/sample']
for uri in uris: resp = self.request(uri, None, 'GET', hdrs) self.assertEquals(401, resp.status)
+ uris = ['/pluginsmanager/sample/disable'] + + for uri in uris: + resp = self.request(uri, {}, 'POST', hdrs) + self.assertEquals(401, resp.status) + def test_auth_bad_creds(self): # Test HTTPBA hdrs = {'AUTHORIZATION': "Basic " + base64.b64encode("nouser:badpass")} diff --git a/tests/utils.py b/tests/utils.py index d158ba1..ed709e1 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -38,8 +38,9 @@ from lxml import etree
import wok.server from wok.config import config, PluginPaths
-from wok.auth import User, USER_NAME, USER_GROUPS, USER_ROLES, tabs
Keep importing 'tabs' to do not parse the file multiple times.
'tabs' will not back to auth, like explained before Also, does not make sense a module "auth" provide a variable related to UI tabs. Here I can see that the function is called multiple times. Got to think a better solution. Maybe change the function in PluginsManager to keep a variable and not read file every time .
+from wok.auth import User, USER_NAME, USER_GROUPS, USER_ROLES from wok.exception import NotFoundError, OperationFailed +from wok.pluginsmanager import get_all_tabs from wok.utils import wok_log
@@ -192,14 +193,14 @@ class FakeUser(User): self.user = {} self.user[USER_NAME] = username self.user[USER_GROUPS] = None - self.user[USER_ROLES] = dict.fromkeys(tabs, 'user') + self.user[USER_ROLES] = dict.fromkeys(get_all_tabs(), 'user')
def get_groups(self): return sorted([group.gr_name for group in grp.getgrall()])[0:3]
def get_roles(self): if self.sudo: - self.user[USER_ROLES] = dict.fromkeys(tabs, 'admin') + self.user[USER_ROLES] = dict.fromkeys(get_all_tabs(), 'admin') return self.user[USER_ROLES]
def get_user(self):
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel

On 06/08/2016 06:37 PM, Rodrigo Trujillo wrote:
On 06/08/2016 04:11 PM, Aline Manera wrote:
On 06/06/2016 04:13 PM, Rodrigo Trujillo wrote:
This patch add auth test to GET and POST requests in API of Plugins Manager. It also fixes imports in tests/utils.py
Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo@linux.vnet.ibm.com> --- tests/test_plugin.py | 5 +++-- tests/test_server.py | 10 +++++++++- tests/utils.py | 7 ++++--- 3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/tests/test_plugin.py b/tests/test_plugin.py index 7c5e8e8..d785cfa 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -23,7 +23,8 @@ import json import unittest from functools import partial
-from wok.utils import get_enabled_plugins +#from wok.pluginsmanager import get_enabled_plugins +from wok.pluginsmanager import Plugins
import utils
@@ -50,7 +51,7 @@ def tearDownModule():
@unittest.skipUnless( - 'sample' in [plugin for plugin, _config in get_enabled_plugins()], + 'sample' in Plugins().get_enabled_plugins(), 'sample plugin is not enabled, skip this test!') class PluginTests(unittest.TestCase):
diff --git a/tests/test_server.py b/tests/test_server.py index 1f5a236..6e4749e 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -188,12 +188,20 @@ class ServerTests(unittest.TestCase):
def test_auth_protected(self): hdrs = {'AUTHORIZATION': ''} - uris = ['/tasks'] + uris = ['/tasks', + '/pluginsmanager', + '/pluginsmanager/sample']
for uri in uris: resp = self.request(uri, None, 'GET', hdrs) self.assertEquals(401, resp.status)
+ uris = ['/pluginsmanager/sample/disable'] + + for uri in uris: + resp = self.request(uri, {}, 'POST', hdrs) + self.assertEquals(401, resp.status) + def test_auth_bad_creds(self): # Test HTTPBA hdrs = {'AUTHORIZATION': "Basic " + base64.b64encode("nouser:badpass")} diff --git a/tests/utils.py b/tests/utils.py index d158ba1..ed709e1 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -38,8 +38,9 @@ from lxml import etree
import wok.server from wok.config import config, PluginPaths
-from wok.auth import User, USER_NAME, USER_GROUPS, USER_ROLES, tabs
Keep importing 'tabs' to do not parse the file multiple times.
'tabs' will not back to auth, like explained before Also, does not make sense a module "auth" provide a variable related to UI tabs.
I am not saying to you get the function back to auth.py I am saying to do: tabs = <the function wherever it is> And use 'tabs' in the code when needed.
Here I can see that the function is called multiple times. Got to think a better solution. Maybe change the function in PluginsManager to keep a variable and not read file every time .
+from wok.auth import User, USER_NAME, USER_GROUPS, USER_ROLES from wok.exception import NotFoundError, OperationFailed +from wok.pluginsmanager import get_all_tabs from wok.utils import wok_log
@@ -192,14 +193,14 @@ class FakeUser(User): self.user = {} self.user[USER_NAME] = username self.user[USER_GROUPS] = None - self.user[USER_ROLES] = dict.fromkeys(tabs, 'user') + self.user[USER_ROLES] = dict.fromkeys(get_all_tabs(), 'user')
def get_groups(self): return sorted([group.gr_name for group in grp.getgrall()])[0:3]
def get_roles(self): if self.sudo: - self.user[USER_ROLES] = dict.fromkeys(tabs, 'admin') + self.user[USER_ROLES] = dict.fromkeys(get_all_tabs(), 'admin') return self.user[USER_ROLES]
def get_user(self):
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel
participants (2)
-
Aline Manera
-
Rodrigo Trujillo