diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_ipalib/test_capabilities.py | 33 | ||||
-rw-r--r-- | tests/test_ipalib/test_frontend.py | 43 | ||||
-rw-r--r-- | tests/test_ipalib/test_messages.py | 29 | ||||
-rw-r--r-- | tests/test_xmlrpc/test_ping_plugin.py | 5 | ||||
-rw-r--r-- | tests/test_xmlrpc/test_user_plugin.py | 3 | ||||
-rw-r--r-- | tests/test_xmlrpc/xmlrpc_test.py | 5 |
6 files changed, 112 insertions, 6 deletions
diff --git a/tests/test_ipalib/test_capabilities.py b/tests/test_ipalib/test_capabilities.py new file mode 100644 index 000000000..21e53c2dc --- /dev/null +++ b/tests/test_ipalib/test_capabilities.py @@ -0,0 +1,33 @@ +# Authors: +# Petr Viktorin <pviktori@redhat.com> +# +# Copyright (C) 2012 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +""" +Test the `ipalib.errors` module. +""" + +from ipalib.capabilities import capabilities, client_has_capability + + +def test_client_has_capability(): + assert capabilities['messages'] == u'2.52' + assert client_has_capability(u'2.52', 'messages') + assert client_has_capability(u'2.60', 'messages') + assert client_has_capability(u'3.0', 'messages') + assert not client_has_capability(u'2.11', 'messages') + assert not client_has_capability(u'0.1', 'messages') diff --git a/tests/test_ipalib/test_frontend.py b/tests/test_ipalib/test_frontend.py index 4b4735599..3a540608d 100644 --- a/tests/test_ipalib/test_frontend.py +++ b/tests/test_ipalib/test_frontend.py @@ -27,7 +27,7 @@ from tests.util import assert_equal from ipalib.constants import TYPE_ERROR from ipalib.base import NameSpace from ipalib import frontend, backend, plugable, errors, parameters, config -from ipalib import output +from ipalib import output, messages from ipalib.parameters import Str from ipapython.version import API_VERSION @@ -619,6 +619,47 @@ class test_Command(ClassChecker): assert o.run.im_func is self.cls.run.im_func assert ('forward', args, kw) == o.run(*args, **kw) + def test_messages(self): + """ + Test correct handling of messages + """ + class TestMessage(messages.PublicMessage): + type = 'info' + format = 'This is a message.' + errno = 1234 + + class my_cmd(self.cls): + def execute(self, *args, **kw): + result = {'name': 'execute'} + messages.add_message(kw['version'], result, TestMessage()) + return result + + def forward(self, *args, **kw): + result = {'name': 'forward'} + messages.add_message(kw['version'], result, TestMessage()) + return result + + args = ('Hello,', 'world,') + kw = dict(how_are='you', on_this='fine day?', version=API_VERSION) + + expected = [TestMessage().to_dict()] + + # Test in server context: + (api, home) = create_test_api(in_server=True) + api.finalize() + o = my_cmd() + o.set_api(api) + assert o.run.im_func is self.cls.run.im_func + assert {'name': 'execute', 'messages': expected} == o.run(*args, **kw) + + # Test in non-server context + (api, home) = create_test_api(in_server=False) + api.finalize() + o = my_cmd() + o.set_api(api) + assert o.run.im_func is self.cls.run.im_func + assert {'name': 'forward', 'messages': expected} == o.run(*args, **kw) + def test_validate_output_basic(self): """ Test the `ipalib.frontend.Command.validate_output` method. diff --git a/tests/test_ipalib/test_messages.py b/tests/test_ipalib/test_messages.py index d6a4b9aa1..ebc400ee2 100644 --- a/tests/test_ipalib/test_messages.py +++ b/tests/test_ipalib/test_messages.py @@ -22,6 +22,7 @@ Test the `ipalib.messages` module. """ from ipalib import messages +from ipalib.capabilities import capabilities from tests.test_ipalib import test_errors @@ -58,3 +59,31 @@ def test_to_dict(): ) assert HelloMessage(greeting='Hello', object='world').to_dict() == expected + + +def test_add_message(): + result = {} + + assert capabilities['messages'] == u'2.52' + + messages.add_message(u'2.52', result, + HelloMessage(greeting='Hello', object='world')) + messages.add_message(u'2.1', result, + HelloMessage(greeting="'Lo", object='version')) + messages.add_message(u'2.60', result, + HelloMessage(greeting='Hi', object='version')) + + assert result == {'messages': [ + dict( + name='HelloMessage', + type='info', + message='Hello, world!', + code=1234, + ), + dict( + name='HelloMessage', + type='info', + message='Hi, version!', + code=1234, + ) + ]} diff --git a/tests/test_xmlrpc/test_ping_plugin.py b/tests/test_xmlrpc/test_ping_plugin.py index 284aed54f..3673b436f 100644 --- a/tests/test_xmlrpc/test_ping_plugin.py +++ b/tests/test_xmlrpc/test_ping_plugin.py @@ -21,9 +21,10 @@ Test the `ipalib/plugins/ping.py` module, and XML-RPC in general. """ -from ipalib import api, errors, _ -from tests.util import assert_equal, Fuzzy +from ipalib import api, errors, messages, _ +from tests.util import Fuzzy from xmlrpc_test import Declarative +from ipapython.version import API_VERSION class test_ping(Declarative): diff --git a/tests/test_xmlrpc/test_user_plugin.py b/tests/test_xmlrpc/test_user_plugin.py index 50630a0f9..a61db23d5 100644 --- a/tests/test_xmlrpc/test_user_plugin.py +++ b/tests/test_xmlrpc/test_user_plugin.py @@ -23,11 +23,12 @@ Test the `ipalib/plugins/user.py` module. """ -from ipalib import api, errors +from ipalib import api, errors, messages from tests.test_xmlrpc import objectclasses from tests.util import assert_equal, assert_not_equal from xmlrpc_test import Declarative, fuzzy_digits, fuzzy_uuid, fuzzy_password, fuzzy_string, fuzzy_dergeneralizedtime from ipapython.dn import DN +from ipapython.version import API_VERSION user1=u'tuser1' user2=u'tuser2' diff --git a/tests/test_xmlrpc/xmlrpc_test.py b/tests/test_xmlrpc/xmlrpc_test.py index 0a046b454..89a653088 100644 --- a/tests/test_xmlrpc/xmlrpc_test.py +++ b/tests/test_xmlrpc/xmlrpc_test.py @@ -25,9 +25,9 @@ import sys import socket import nose from tests.util import assert_deepequal, Fuzzy -from ipalib import api, request -from ipalib import errors +from ipalib import api, request, errors from ipalib.x509 import valid_issuer +from ipapython.version import API_VERSION # Matches a gidnumber like '1391016742' @@ -271,6 +271,7 @@ class Declarative(XMLRPC_test): def check(self, nice, desc, command, expected, extra_check=None): (cmd, args, options) = command + options.setdefault('version', API_VERSION) if cmd not in api.Command: raise nose.SkipTest('%r not in api.Command' % cmd) if isinstance(expected, errors.PublicError): |