Server IP : 85.214.239.14 / Your IP : 3.138.32.150 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /srv/modoboa/env/lib64/python3.5/site-packages/modoboa/lib/tests/ |
Upload File : |
"""Testing utilities.""" import socket from django.core import management from django.test import TestCase from rest_framework.authtoken.models import Token from rest_framework.test import APITestCase from modoboa.core import models as core_models from .. import sysutils try: s = socket.create_connection(("127.0.0.1", 25)) s.close() NO_SMTP = False except socket.error: NO_SMTP = True try: import ldap # noqa NO_LDAP = False except ImportError: NO_LDAP = True class ParametersMixin(object): """Add tools to manage parameters.""" @classmethod def setUpTestData(cls): # noqa """Set LocalConfig instance.""" super(ParametersMixin, cls).setUpTestData() cls.localconfig = core_models.LocalConfig.objects.first() def set_global_parameter(self, name, value, app=None): """Set global parameter for the given app.""" if app is None: app = sysutils.guess_extension_name() self.localconfig.parameters.set_value(name, value, app=app) self.localconfig.save() def set_global_parameters(self, parameters, app=None): """Set/update global parameters for the given app.""" if app is None: app = sysutils.guess_extension_name() self.localconfig.parameters.set_values(parameters, app=app) self.localconfig.save() class ModoTestCase(ParametersMixin, TestCase): """All test cases must inherit from this one.""" @classmethod def setUpTestData(cls): # noqa """Create a default user.""" super(ModoTestCase, cls).setUpTestData() management.call_command("load_initial_data") def setUp(self, username="admin", password="password"): """Initiate test context.""" self.assertEqual( self.client.login(username=username, password=password), True) def ajax_request(self, method, url, params=None, status=200): if params is None: params = {} response = getattr(self.client, method)( url, params, HTTP_X_REQUESTED_WITH="XMLHttpRequest") self.assertEqual(response.status_code, status) return response.json() def ajax_post(self, *args, **kwargs): return self.ajax_request("post", *args, **kwargs) def ajax_put(self, *args, **kwargs): return self.ajax_request("put", *args, **kwargs) def ajax_delete(self, *args, **kwargs): return self.ajax_request("delete", *args, **kwargs) def ajax_get(self, *args, **kwargs): return self.ajax_request("get", *args, **kwargs) class ModoAPITestCase(ParametersMixin, APITestCase): """All test cases must inherit from this one.""" @classmethod def setUpTestData(cls): # noqa """Create a default user.""" super(ModoAPITestCase, cls).setUpTestData() management.call_command("load_initial_data") cls.token = Token.objects.create( user=core_models.User.objects.get(username="admin")) def setUp(self): """Setup.""" super(ModoAPITestCase, self).setUp() self.client.credentials(HTTP_AUTHORIZATION="Token " + self.token.key)