def setUp(self):
        context = MagicMock()
        request = MagicMock()
        self.notifier = Notifier(context, request)

        parser = Parser()
        self.msg = parser.parsestr(self.m)
class TestUnknownEmail(TestCase):
    m = '''From: Me <*****@*****.**>
To: Group <*****@*****.**>
Subject: Violence

Tonight on Ethel the Frog we look at violence.\n'''

    def setUp(self):
        context = MagicMock()
        request = MagicMock()
        self.notifier = Notifier(context, request)

        parser = Parser()
        self.msg = parser.parsestr(self.m)

    def test_create_return_message(self):
        r = self.notifier.create_return_message(self.msg)
        self.assertIn('Returned message', r['content-description'])
        self.assertIn(self.msg['Subject'], r['content-description'])

    def test_create_return_message_subject_missing(self):
        del(self.msg['Subject'])
        r = self.notifier.create_return_message(self.msg)
        self.assertIn('Returned message', r['content-description'])
        self.assertIn('No subject', r['content-description'])

    def test_create_return_message_subject_latin1(self):
        s = 'Je ne ecrit pas français'
        self.msg.replace_header('Subject', s.encode('latin1'))
        r = self.notifier.create_return_message(self.msg)
        self.assertIn('Returned message', r['content-description'])
        self.assertIn(s.encode('ascii', 'ignore'), r['content-description'])

    def test_create_container(self):
        r = self.notifier.create_container(
            'Returned message', '*****@*****.**',
            '*****@*****.**')
        self.assertIn('Returned message', r['Subject'])
        self.assertIn('person', r['To'])
        self.assertIn('group', r['From'])

    def test_create_container_unicode(self):
        r = self.notifier.create_container(
            'Je ne ecrit pas français', '*****@*****.**',
            '*****@*****.**')
        self.assertNotIn('français', r['Subject'])