1
0
Fork 1
mirror of https://github.com/coddingtonbear/django-mailbox.git synced 2026-07-09 22:38:19 +02:00
django-mailbox/django_mailbox/tests/test_processincomingmessage.py
Thomas Chamberlin e151006582 Fixed bug in mailbox_name argument and added unit tests
This is an optional positional argument, and thus needs to have nargs='?' set
2018-03-09 15:35:38 -05:00

54 lines
2.3 KiB
Python

from django.core.management import call_command, CommandError
from django.test import TestCase
import mock
class CommandsTestCase(TestCase):
def test_processincomingmessage_no_args(self):
"""Check that processincomingmessage works with no args"""
# Mock handle so that the test doesn't hang waiting for input. Note that we are only testing
# the argument parsing here -- functionality should be tested elsewhere
with mock.patch('django_mailbox.management.commands.processincomingmessage.Command.handle') as handle:
# Don't care about the return value
handle.return_value = None
call_command('processincomingmessage')
# Define the arguments we expect handle to be called with
required_arguments = {
# This should be None, since it isn't given
'mailbox_name': None,
# All otheres can be anything; we don't care about them at all
'no_color': mock.ANY,
'pythonpath': mock.ANY,
'settings': mock.ANY,
'skip_checks': mock.ANY,
'traceback': mock.ANY,
'verbosity': mock.ANY
}
# Make sure that we called with the right arguments
handle.assert_called_with(**required_arguments)
def test_processincomingmessage_with_arg(self):
"""Check that processincomingmessage works with mailbox_name given"""
with mock.patch('django_mailbox.management.commands.processincomingmessage.Command.handle') as handle:
handle.return_value = None
call_command('processincomingmessage', 'foo_mailbox')
required_arguments = {
'mailbox_name': 'foo_mailbox',
'no_color': mock.ANY,
'pythonpath': mock.ANY,
'settings': mock.ANY,
'skip_checks': mock.ANY,
'traceback': mock.ANY,
'verbosity': mock.ANY
}
handle.assert_called_with(**required_arguments)
def test_processincomingmessage_too_many_args(self):
"""Check that processincomingmessage raises an error if too many args"""
with self.assertRaises(CommandError):
call_command('processincomingmessage', 'foo_mailbox', 'invalid_arg')