コード例 #1
0
ファイル: test_campaign.py プロジェクト: delta/mailer
    def __init__(self, mock_mf):
        """Create an instance of BulkMailCampaign for testing.
        Also test if it is initialized correctly."""
        self.bmc = BulkMailCampaign(**self.args)

        assert len(self.bmc._mails) == 1

        # MailFactory calls it `variables` and not `global_vars`
        # Rename it. Laziness
        self.args["variables"] = self.args["global_vars"]
        self.args.pop("global_vars", None)
        mock_mf.assert_called_once_with(**self.args)

        # acquire the actual Envelope object
        self.bmc._mails = [MailFactory(**self.args)]

        # Rename it back
        self.args["global_vars"] = self.args["variables"]
        self.args.pop("variables", None)
コード例 #2
0
ファイル: test_campaign.py プロジェクト: delta/mailer
    def __init__(self, mock_mf):
        """Create an instance of BulkMailCampaign for testing.
        Also test if it is initialized correctly."""
        self.bmc = BulkMailCampaign(**self.args)

        assert len(self.bmc._mails) == 1

        # MailFactory calls it `variables` and not `global_vars`
        # Rename it. Laziness
        self.args["variables"] = self.args["global_vars"]
        self.args.pop("global_vars", None)
        mock_mf.assert_called_once_with(**self.args)

        # acquire the actual Envelope object
        self.bmc._mails = [MailFactory(**self.args)]

        # Rename it back
        self.args["global_vars"] = self.args["variables"]
        self.args.pop("variables", None)
コード例 #3
0
ファイル: test_campaign.py プロジェクト: delta/mailer
class TestBulkMailCampaign(object):
    """Class to test deltamail.campaign.BulkMailCampaign class"""

    args = {
        "from_addr": "*****@*****.**",
        "subject": "BulkMail : Greetings from {{company}}",
        "mailing_list": ["*****@*****.**", "*****@*****.**"],
        "template_str":
        "Hello Human, greetings from {{company}}.\nCopyright @ {{year}}",
        "global_vars": {
            "company": "Festember",
            "year": 2015
        }
    }

    subject_evaled = "BulkMail : Greetings from Festember"
    body_evaled = "Hello Human, greetings from Festember.\nCopyright @ 2015"

    @patch('deltamail.campaign.MailFactory', autospec=True)
    def __init__(self, mock_mf):
        """Create an instance of BulkMailCampaign for testing.
        Also test if it is initialized correctly."""
        self.bmc = BulkMailCampaign(**self.args)

        assert len(self.bmc._mails) == 1

        # MailFactory calls it `variables` and not `global_vars`
        # Rename it. Laziness
        self.args["variables"] = self.args["global_vars"]
        self.args.pop("global_vars", None)
        mock_mf.assert_called_once_with(**self.args)

        # acquire the actual Envelope object
        self.bmc._mails = [MailFactory(**self.args)]

        # Rename it back
        self.args["global_vars"] = self.args["variables"]
        self.args.pop("variables", None)

    @patch('deltamail.campaign.os.path.isdir', autospec=True)
    @patch('deltamail.campaign.os.mkdir', autospec=True)
    @patch('deltamail.campaign.open')
    def test_preview_default(self, mk_open, mock_mkdir, mock_isdir):
        """Test BulkMailCampaign.preview() with no args"""

        newdirpath = path.join(os.getcwd(), "email-preview", "")

        preview_file_name = self.subject_evaled + "-" + ",".join(
            self.args["mailing_list"])
        preview_file_name = preview_file_name[:MAX_PREVIEW_FILE_LEN] + ".html"
        preview_file_name = preview_file_name.replace(r"/", "-")
        preview_file_name = preview_file_name.replace("\\", "-")
        preview_file_name = preview_file_name.replace(r":", "-")

        preview_file_path = path.join(newdirpath, preview_file_name)

        open_return_mock = Mock()
        mk_open.return_value = open_return_mock

        mock_isdir.return_value = True

        self.bmc.preview()

        mock_mkdir.assert_called_once_with(newdirpath)
        mk_open.assert_called_once_with(preview_file_path, "w")
        open_return_mock.write.assert_called_once_with(self.body_evaled)
        open_return_mock.close.assert_called_once_with()

    @patch('deltamail.campaign.os.path.isdir', autospec=True)
    @patch('deltamail.campaign.os.mkdir', autospec=True)
    @patch('deltamail.campaign.open')
    def test_preview_with_location(self, mk_open, mock_mkdir, mock_isdir):
        """Test BulkMailCampaign.preview() with location argument"""
        newdirpath = "./tests/preview-mails/TestBulkMailCampaign/"

        preview_file_name = self.subject_evaled + "-" + ",".join(
            self.args["mailing_list"])
        preview_file_name = preview_file_name[:MAX_PREVIEW_FILE_LEN] + ".html"
        preview_file_name = preview_file_name.replace(r"/", "-")
        preview_file_name = preview_file_name.replace("\\", "-")
        preview_file_name = preview_file_name.replace(r":", "-")

        preview_file_path = path.join(newdirpath, preview_file_name)

        open_return_mock = Mock()
        mk_open.return_value = open_return_mock

        self.bmc.preview(newdirpath)

        mock_mkdir.assert_not_called()
        mk_open.assert_called_once_with(preview_file_path, "w")
        open_return_mock.write.assert_called_once_with(self.body_evaled)
        open_return_mock.close.assert_called_once_with()

    def test_send(self):
        """Test the BulkMailCampaign.send() method"""
        mock_mailer = Mock(spec=['send'])
        self.bmc.send(mock_mailer)
        mock_mailer.send.assert_called_once_with(self.bmc._mails[0])

    def test_preview_in_browser(self):
        """Test the preview_in_browser() method"""
        # UNTESTED!
        pass
コード例 #4
0
ファイル: test_campaign.py プロジェクト: delta/mailer
class TestBulkMailCampaign(object):
    """Class to test deltamail.campaign.BulkMailCampaign class"""

    args = {
        "from_addr": "*****@*****.**",
        "subject": "BulkMail : Greetings from {{company}}",
        "mailing_list": ["*****@*****.**", "*****@*****.**"],
        "template_str": "Hello Human, greetings from {{company}}.\nCopyright @ {{year}}",
        "global_vars": {"company": "Festember", "year": 2015},
    }

    subject_evaled = "BulkMail : Greetings from Festember"
    body_evaled = "Hello Human, greetings from Festember.\nCopyright @ 2015"

    @patch("deltamail.campaign.MailFactory", autospec=True)
    def __init__(self, mock_mf):
        """Create an instance of BulkMailCampaign for testing.
        Also test if it is initialized correctly."""
        self.bmc = BulkMailCampaign(**self.args)

        assert len(self.bmc._mails) == 1

        # MailFactory calls it `variables` and not `global_vars`
        # Rename it. Laziness
        self.args["variables"] = self.args["global_vars"]
        self.args.pop("global_vars", None)
        mock_mf.assert_called_once_with(**self.args)

        # acquire the actual Envelope object
        self.bmc._mails = [MailFactory(**self.args)]

        # Rename it back
        self.args["global_vars"] = self.args["variables"]
        self.args.pop("variables", None)

    @patch("deltamail.campaign.os.path.isdir", autospec=True)
    @patch("deltamail.campaign.os.mkdir", autospec=True)
    @patch("deltamail.campaign.open")
    def test_preview_default(self, mk_open, mock_mkdir, mock_isdir):
        """Test BulkMailCampaign.preview() with no args"""

        newdirpath = path.join(os.getcwd(), "email-preview", "")

        preview_file_name = self.subject_evaled + "-" + ",".join(self.args["mailing_list"])
        preview_file_name = preview_file_name[:MAX_PREVIEW_FILE_LEN] + ".html"
        preview_file_name = preview_file_name.replace(r"/", "-")
        preview_file_name = preview_file_name.replace("\\", "-")
        preview_file_name = preview_file_name.replace(r":", "-")

        preview_file_path = path.join(newdirpath, preview_file_name)

        open_return_mock = Mock()
        mk_open.return_value = open_return_mock

        mock_isdir.return_value = True

        self.bmc.preview()

        mock_mkdir.assert_called_once_with(newdirpath)
        mk_open.assert_called_once_with(preview_file_path, "w")
        open_return_mock.write.assert_called_once_with(self.body_evaled)
        open_return_mock.close.assert_called_once_with()

    @patch("deltamail.campaign.os.path.isdir", autospec=True)
    @patch("deltamail.campaign.os.mkdir", autospec=True)
    @patch("deltamail.campaign.open")
    def test_preview_with_location(self, mk_open, mock_mkdir, mock_isdir):
        """Test BulkMailCampaign.preview() with location argument"""
        newdirpath = "./tests/preview-mails/TestBulkMailCampaign/"

        preview_file_name = self.subject_evaled + "-" + ",".join(self.args["mailing_list"])
        preview_file_name = preview_file_name[:MAX_PREVIEW_FILE_LEN] + ".html"
        preview_file_name = preview_file_name.replace(r"/", "-")
        preview_file_name = preview_file_name.replace("\\", "-")
        preview_file_name = preview_file_name.replace(r":", "-")

        preview_file_path = path.join(newdirpath, preview_file_name)

        open_return_mock = Mock()
        mk_open.return_value = open_return_mock

        self.bmc.preview(newdirpath)

        mock_mkdir.assert_not_called()
        mk_open.assert_called_once_with(preview_file_path, "w")
        open_return_mock.write.assert_called_once_with(self.body_evaled)
        open_return_mock.close.assert_called_once_with()

    def test_send(self):
        """Test the BulkMailCampaign.send() method"""
        mock_mailer = Mock(spec=["send"])
        self.bmc.send(mock_mailer)
        mock_mailer.send.assert_called_once_with(self.bmc._mails[0])

    def test_preview_in_browser(self):
        """Test the preview_in_browser() method"""
        # UNTESTED!
        pass