def testExecuteNoSource(self): self.loginAsPortalOwner() sm = getSiteManager(self.portal) sm.unregisterUtility(provided=IMailHost) dummyMailHost = DummySecureMailHost('dMailhost') sm.registerUtility(dummyMailHost, IMailHost) e = MailFromFieldAction() e.message = 'Document created !' e.fieldName = 'foo_attr' e.target = 'object' self.folder.foo_attr = '*****@*****.**' ex = getMultiAdapter((self.folder, e, DummyEvent(self.folder.d1)), IExecutable) self.assertRaises(ValueError, ex) # if we provide a site mail address this won't fail anymore sm.manage_changeProperties({'email_from_name': 'The Big Boss', 'email_from_address': '*****@*****.**', }) ex() self.failUnless(isinstance(dummyMailHost.sent[0], MIMEText)) mailSent = dummyMailHost.sent[0] self.assertEqual('text/plain; charset="utf-8"', mailSent.get('Content-Type')) self.assertEqual("*****@*****.**", mailSent.get('To')) self.assertEqual("The Big Boss <*****@*****.**>", mailSent.get('From')) self.assertEqual("Document created !", mailSent.get_payload(decode=True))
def testExecuteFolderModify(self): # can happen as rules are not triggered on the rule root itself self.loginAsPortalOwner() self.folder.foo_property = '*****@*****.**' sm = getSiteManager(self.portal) sm.unregisterUtility(provided=IMailHost) dummyMailHost = DummySecureMailHost('dMailhost') sm.registerUtility(dummyMailHost, IMailHost) e = MailFromFieldAction() e.source = "*****@*****.**" e.fieldName = 'foo_property' e.target = 'object' e.message = u"Còntènt '${title}' created in ${url} - Section is '${section_name}' (${section_url}) !" ex = getMultiAdapter((self.folder, e, DummyEvent(self.folder)), IExecutable) ex() self.failUnless(isinstance(dummyMailHost.sent[0], MIMEText)) mailSent = dummyMailHost.sent[0] self.assertEqual('text/plain; charset="utf-8"', mailSent.get('Content-Type')) self.assertEqual("*****@*****.**", mailSent.get('To')) self.assertEqual("*****@*****.**", mailSent.get('From')) self.assertEqual("C\xc3\xb2nt\xc3\xa8nt 'C\xc3\xa0rtella' created in http://nohost/plone/target - " "Section is 'C\xc3\xa0rtella' (http://nohost/plone/target) !", mailSent.get_payload(decode=True))
def testExecuteEmptyValue(self): self.loginAsPortalOwner() self.folder.foo_attr = '' sm = getSiteManager(self.portal) sm.unregisterUtility(provided=IMailHost) dummyMailHost = DummySecureMailHost('dMailhost') sm.registerUtility(dummyMailHost, IMailHost) e = MailFromFieldAction() e.source = "*****@*****.**" e.fieldName = 'foo_attr' e.target = 'object' e.message = u"Còntènt '${title}' created in ${url} - Section is '${section_name}' (${section_url}) !" ex = getMultiAdapter((self.folder, e, DummyEvent(self.folder.d1)), IExecutable) ex() self.assertEqual(dummyMailHost.sent, [])
def testExecuteSimpleByMethod(self): self.loginAsPortalOwner() self.folder.setDescription('*****@*****.**') sm = getSiteManager(self.portal) sm.unregisterUtility(provided=IMailHost) dummyMailHost = DummySecureMailHost('dMailhost') sm.registerUtility(dummyMailHost, IMailHost) e = MailFromFieldAction() e.source = "*****@*****.**" e.fieldName = 'Description' e.target = 'object' e.message = u"Còntènt '${title}' created in ${url} - Section is '${section_name}' (${section_url}) !" ex = getMultiAdapter((self.folder, e, DummyEvent(self.folder.d1)), IExecutable) ex() self.failUnless(isinstance(dummyMailHost.sent[0], MIMEText)) mailSent = dummyMailHost.sent[0] self.assertEqual('text/plain; charset="utf-8"', mailSent.get('Content-Type')) self.assertEqual("*****@*****.**", mailSent.get('To')) self.assertEqual("*****@*****.**", mailSent.get('From')) self.assertEqual("C\xc3\xb2nt\xc3\xa8nt 'D\xc3\xb2cumento' created in http://nohost/plone/target/d1 - " "Section is 'C\xc3\xa0rtella' (http://nohost/plone/target) !", mailSent.get_payload(decode=True))