Skip to content

Commit

Permalink
Boost coverage.
Browse files Browse the repository at this point in the history
  • Loading branch information
warsaw committed Oct 15, 2015
2 parents 7f74c6c + 314f1a8 commit b1e7844
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 2 deletions.
2 changes: 1 addition & 1 deletion aiosmtpd/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,4 +121,4 @@ def from_cli(cls, parser, *args):
return cls()

def process_message(self, peer, mailfrom, rcpttos, data):
pass
pass # pragma: no cover
59 changes: 58 additions & 1 deletion aiosmtpd/tests/test_handlers.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
__all__ = [
'TestCLI',
'TestHandlers',
]


import sys
import unittest

from aiosmtpd.controller import Controller
from aiosmtpd.handlers import Debugging
from aiosmtpd.handlers import Debugging, Sink
from io import StringIO
from smtplib import SMTP

Expand Down Expand Up @@ -40,3 +42,58 @@ def test_debugging(self):
Testing
------------ END MESSAGE ------------
""")


class FakeParser:
def __init__(self):
self.message = None

def error(self, message):
self.message = message
raise SystemExit


class TestCLI(unittest.TestCase):
def setUp(self):
self.parser = FakeParser()

def test_debugging_cli_no_args(self):
handler = Debugging.from_cli(self.parser)
self.assertIsNone(self.parser.message)
self.assertEqual(handler.stream, sys.stdout)

def test_debugging_cli_two_args(self):
self.assertRaises(
SystemExit,
Debugging.from_cli, self.parser, 'foo', 'bar')
self.assertEqual(
self.parser.message, 'Debugging usage: [stdout|stderr]')

def test_debugging_cli_stdout(self):
handler = Debugging.from_cli(self.parser, 'stdout')
self.assertIsNone(self.parser.message)
self.assertEqual(handler.stream, sys.stdout)

def test_debugging_cli_stderr(self):
handler = Debugging.from_cli(self.parser, 'stderr')
self.assertIsNone(self.parser.message)
self.assertEqual(handler.stream, sys.stderr)

def test_debugging_cli_bad_argument(self):
self.assertRaises(
SystemExit,
Debugging.from_cli, self.parser, 'stdfoo')
self.assertEqual(
self.parser.message, 'Debugging usage: [stdout|stderr]')

def test_sink_cli_no_args(self):
handler = Sink.from_cli(self.parser)
self.assertIsNone(self.parser.message)
self.assertIsInstance(handler, Sink)

def test_sink_cli_any_args(self):
self.assertRaises(
SystemExit,
Sink.from_cli, self.parser, 'foo')
self.assertEqual(
self.parser.message, 'Sink handler does not accept arguments')

0 comments on commit b1e7844

Please sign in to comment.