prefer standard library version of mock over back port

This commit is contained in:
Andrew Fyfe
2018-03-31 15:45:23 +01:00
parent 587eb77476
commit 1aff9b2a98
7 changed files with 70 additions and 36 deletions
+9 -3
View File
@@ -8,7 +8,6 @@ import copy
import json
import dns.resolver
from mock import patch
from django.test import override_settings
from django.urls import reverse
@@ -21,6 +20,13 @@ from modoboa.lib.tests import ModoAPITestCase
from . import utils
from .. import factories, models
try:
# mock is part of the Python (>= 3.3) standard library
from unittest import mock
except ImportError:
# fall back to the mock backport
import mock
class DomainAPITestCase(ModoAPITestCase):
"""Check API."""
@@ -71,8 +77,8 @@ class DomainAPITestCase(ModoAPITestCase):
url, {"name": "test4.com", "default_mailbox_quota": 10})
self.assertEqual(response.status_code, 403)
@patch.object(dns.resolver.Resolver, "query")
@patch("socket.getaddrinfo")
@mock.patch.object(dns.resolver.Resolver, "query")
@mock.patch("socket.getaddrinfo")
def test_create_domain_with_mx_check(self, mock_getaddrinfo, mock_query):
"""Check domain creation when MX check is activated."""
self.set_global_parameter("enable_admin_limits", False, app="limits")
+9 -3
View File
@@ -9,7 +9,6 @@ import shutil
import tempfile
import dns.resolver
from mock import patch
from testfixtures import compare
from django.core.management import call_command
@@ -24,6 +23,13 @@ from . import utils
from .. import factories
from ..models import Alias, Domain
try:
# mock is part of the Python (>= 3.3) standard library
from unittest import mock
except ImportError:
# fall back to the mock backport
import mock
class DomainTestCase(ModoTestCase):
"""Test case for Domain."""
@@ -205,8 +211,8 @@ class DomainTestCase(ModoTestCase):
self.assertContains(response, "value=\"500\"")
self.assertContains(response, "value=\"50\"")
@patch.object(dns.resolver.Resolver, "query")
@patch("socket.getaddrinfo")
@mock.patch.object(dns.resolver.Resolver, "query")
@mock.patch("socket.getaddrinfo")
def test_create_and_check_mx(self, mock_getaddrinfo, mock_query):
"""Check for authorized MX record."""
reseller = core_factories.UserFactory(
+9 -3
View File
@@ -3,7 +3,6 @@
from __future__ import unicode_literals
import dns.resolver
from mock import patch
from django.core.files.base import ContentFile
from django.urls import reverse
@@ -15,6 +14,13 @@ from . import utils
from .. import factories
from ..models import Alias, Domain, DomainAlias
try:
# mock is part of the Python (>= 3.3) standard library
from unittest import mock
except ImportError:
# fall back to the mock backport
import mock
class ImportTestCase(ModoTestCase):
@@ -78,8 +84,8 @@ domainalias; domalias1.com; domain1.com; True
response,
"Default mailbox quota cannot be greater than domain quota")
@patch.object(dns.resolver.Resolver, "query")
@patch("socket.getaddrinfo")
@mock.patch.object(dns.resolver.Resolver, "query")
@mock.patch("socket.getaddrinfo")
def test_domain_import_with_mx_check(self, mock_getaddrinfo, mock_query):
"""Check domain import when MX check is enabled."""
reseller = core_factories.UserFactory(
@@ -8,8 +8,6 @@ import os
import shutil
import tempfile
import mock
from django.core.management import call_command
from django.test import override_settings
from django.urls import reverse
@@ -17,6 +15,13 @@ from django.urls import reverse
from modoboa.lib.tests import ModoTestCase
from .. import factories, models
try:
# mock is part of the Python (>= 3.3) standard library
from unittest import mock
except ImportError:
# fall back to the mock backport
import mock
@override_settings(
DOVECOT_LOOKUP_PATH=["{}/dovecot".format(os.path.dirname(__file__))])
+24 -18
View File
@@ -5,7 +5,6 @@
from __future__ import unicode_literals
import dns.resolver
from mock import patch
from testfixtures import LogCapture
from django.core import mail, management
@@ -19,6 +18,13 @@ from . import utils
from .. import factories, models
from ..lib import get_domain_mx_list
try:
# mock is part of the Python (>= 3.3) standard library
from unittest import mock
except ImportError:
# fall back to the mock backport
import mock
class MXTestCase(ModoTestCase):
"""TestCase for DNSBL related features."""
@@ -49,9 +55,9 @@ class MXTestCase(ModoTestCase):
cls.localconfig.save()
models.MXRecord.objects.all().delete()
@patch("gevent.socket.gethostbyname")
@patch("socket.getaddrinfo")
@patch.object(dns.resolver.Resolver, "query")
@mock.patch("gevent.socket.gethostbyname")
@mock.patch("socket.getaddrinfo")
@mock.patch.object(dns.resolver.Resolver, "query")
def test_management_command(
self, mock_query, mock_getaddrinfo, mock_g_gethostbyname):
"""Check that command works fine."""
@@ -77,9 +83,9 @@ class MXTestCase(ModoTestCase):
qs = models.MXRecord.objects.filter(domain=self.domain)
self.assertEqual(id_, qs[0].id)
@patch("gevent.socket.gethostbyname")
@patch("socket.getaddrinfo")
@patch.object(dns.resolver.Resolver, "query")
@mock.patch("gevent.socket.gethostbyname")
@mock.patch("socket.getaddrinfo")
@mock.patch.object(dns.resolver.Resolver, "query")
def test_single_domain_update(
self, mock_query, mock_getaddrinfo, mock_g_gethostbyname):
"""Update only one domain."""
@@ -102,8 +108,8 @@ class MXTestCase(ModoTestCase):
management.call_command(
"modo", "check_mx", "--domain", "toto.com")
@patch("socket.getaddrinfo")
@patch.object(dns.resolver.Resolver, "query")
@mock.patch("socket.getaddrinfo")
@mock.patch.object(dns.resolver.Resolver, "query")
def test_get_domain_mx_list_logging(self, mock_query, mock_getaddrinfo):
mock_query.side_effect = utils.mock_dns_query_result
mock_getaddrinfo.side_effect = utils.mock_ip_query_result
@@ -149,9 +155,9 @@ class DNSBLTestCase(ModoTestCase):
name="modoboa.com", enable_dns_checks=False)
models.DNSBLResult.objects.all().delete()
@patch("gevent.socket.gethostbyname")
@patch("socket.getaddrinfo")
@patch.object(dns.resolver.Resolver, "query")
@mock.patch("gevent.socket.gethostbyname")
@mock.patch("socket.getaddrinfo")
@mock.patch.object(dns.resolver.Resolver, "query")
def test_management_command(
self, mock_query, mock_getaddrinfo, mock_g_gethostbyname):
"""Check that command works fine."""
@@ -170,9 +176,9 @@ class DNSBLTestCase(ModoTestCase):
self.assertFalse(self.domain.uses_a_reserved_tld)
self.assertTrue(self.domain2.uses_a_reserved_tld)
@patch("gevent.socket.gethostbyname")
@patch("socket.getaddrinfo")
@patch.object(dns.resolver.Resolver, "query")
@mock.patch("gevent.socket.gethostbyname")
@mock.patch("socket.getaddrinfo")
@mock.patch.object(dns.resolver.Resolver, "query")
def test_notifications(
self, mock_query, mock_getaddrinfo, mock_g_gethostbyname):
"""Check notifications."""
@@ -186,9 +192,9 @@ class DNSBLTestCase(ModoTestCase):
print(message.subject)
self.assertEqual(len(mail.outbox), 2)
@patch("gevent.socket.gethostbyname")
@patch("socket.getaddrinfo")
@patch.object(dns.resolver.Resolver, "query")
@mock.patch("gevent.socket.gethostbyname")
@mock.patch("socket.getaddrinfo")
@mock.patch.object(dns.resolver.Resolver, "query")
def test_management_command_no_dnsbl(
self, mock_query, mock_getaddrinfo, mock_g_gethostbyname):
"""Check that command works fine without dnsbl."""
+11 -6
View File
@@ -7,8 +7,6 @@ from __future__ import unicode_literals
import smtplib
from unittest import skipIf
from mock import patch
from django.core import mail
from django.test import override_settings
from django.urls import reverse
@@ -16,6 +14,13 @@ from django.urls import reverse
from modoboa.lib.tests import NO_SMTP, ModoTestCase
from .. import factories, models
try:
# mock is part of the Python (>= 3.3) standard library
from unittest import mock
except ImportError:
# fall back to the mock backport
import mock
class AuthenticationTestCase(ModoTestCase):
"""Validate authentication scenarios."""
@@ -123,24 +128,24 @@ class SMTPAuthenticationTestCase(ModoTestCase):
self.assertTrue(
models.User.objects.filter(username=username).exists())
@patch("smtplib.SMTP")
@mock.patch("smtplib.SMTP")
def test_smtp_authentication(self, mock_smtp):
"""Check simple SMTP authentication."""
self._test_smtp_authentication(mock_smtp)
@patch("smtplib.SMTP_SSL")
@mock.patch("smtplib.SMTP_SSL")
@override_settings(AUTH_SMTP_SECURED_MODE="ssl")
def test_smtp_authentication_over_ssl(self, mock_smtp):
"""Check SMTP authentication over SSL."""
self._test_smtp_authentication(mock_smtp)
@patch("smtplib.SMTP")
@mock.patch("smtplib.SMTP")
@override_settings(AUTH_SMTP_SECURED_MODE="starttls")
def test_smtp_authentication_over_starttls(self, mock_smtp):
"""Check SMTP authentication over STARTTLS."""
self._test_smtp_authentication(mock_smtp)
@patch("smtplib.SMTP")
@mock.patch("smtplib.SMTP")
def test_smtp_authentication_failure(self, mock_smtp):
"""Check SMTP authentication failure."""
instance = mock_smtp.return_value
+1 -1
View File
@@ -1,5 +1,5 @@
factory-boy>=2.4
mock==2.0.0
mock==2.0.0; python_version < '3.3'
httmock==1.2.5
testfixtures==4.7.0
tox