• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

zopefoundation / Products.MailHost / 368 / 2

Source File

100.0
/src/Products/MailHost/tests/test_SendMailTag.py
1
##############################################################################
2
#
3
# Copyright (c) 2002 Zope Foundation and Contributors.
4
#
5
# This software is subject to the provisions of the Zope Public License,
6
# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
7
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
8
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
9
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
10
# FOR A PARTICULAR PURPOSE.
11
#
12
##############################################################################
13
"""SendMailTag unit tests.
1✔
14
"""
15

16
import unittest
1✔
17

18
from OFS.DTMLMethod import addDTMLMethod
1✔
19
from Testing.ZopeTestCase import ZopeLite
1✔
20

21
from .dummy import DummyMailHost
1✔
22

23

24
class SendMailTagTests(unittest.TestCase):
1✔
25

26
    def setUp(self):
1✔
27
        self.app = ZopeLite.app()
1✔
28
        self.app._setObject('MailHost', DummyMailHost('MailHost'))
1✔
29

30
    def _getTargetClass(self):
1✔
31
        from Products.MailHost.SendMailTag import SendMailTag
1✔
32
        return SendMailTag
1✔
33

34
    def _makeOne(self, *args, **kw):
1✔
35
        return self._getTargetClass()(*args, **kw)
1✔
36

37
    def test_instantiation(self):
1✔
38
        blocks = [('sendmail', 'mailhost="MailHost"', None)]
1✔
39
        tag = self._makeOne(blocks, encoding='latin-1')
1✔
40

41
        self.assertEqual(tag.encoding, 'latin-1')
1✔
42
        self.assertEqual(tag.mailhost, 'MailHost')
1✔
43
        self.assertEqual(tag.mailto, '')
1✔
44
        self.assertEqual(tag.mailfrom, '')
1✔
45
        self.assertEqual(tag.subject, '')
1✔
46
        self.assertEqual(tag.port, 25)
1✔
47

48
    def test_instantiation_full(self):
1✔
49
        blocks = [('sendmail',
1✔
50
                   ('smtphost="localhost" '
51
                    'port=1025 '
52
                    'mailto="recipient@test.com" '
53
                    'mailfrom="sender@test.com" '
54
                    'subject="Test Email" '
55
                    'encode="base64" '),
56
                   None)]
57
        tag = self._makeOne(blocks)
1✔
58
        self.assertEqual(tag.encoding, None)
1✔
59
        self.assertEqual(tag.smtphost, 'localhost')
1✔
60
        self.assertEqual(tag.mailto, 'recipient@test.com')
1✔
61
        self.assertEqual(tag.mailfrom, 'sender@test.com')
1✔
62
        self.assertEqual(tag.subject, 'Test Email')
1✔
63
        self.assertEqual(tag.port, 1025)
1✔
64

65
    def test_dtml_var(self):
1✔
66
        addDTMLMethod(self.app, 'testing',
1✔
67
                      file=('<dtml-sendmail mailhost="MailHost">'
68
                            'To: person@their.machine.com\n'
69
                            'From: me@mymachine.net\n'
70
                            'Subject: just called to say...\n'
71
                            'Date: Thu, 16 May 2019 16:04:14 -0500\n'
72
                            '\n'
73
                            'boy howdy!\n'
74
                            '</dtml-sendmail>'))
75
        self.app.testing(client=self.app)
1✔
76
        self.assertEqual(self.app.MailHost.sent,
1✔
77
                         (b'To: person@their.machine.com\n'
78
                          b'From: me@mymachine.net\n'
79
                          b'Subject: just called to say...\n'
80
                          b'Date: Thu, 16 May 2019 16:04:14 -0500\n'
81
                          b'\n'
82
                          b'boy howdy!\n'))
  • Back to Build 185
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc