[Checkins] SVN: Products.GenericSetup/trunk/ Export/import new MailHost properties, `smtp_queue` and `smtp_queue_directory`.
Tres Seaver
tseaver at palladion.com
Mon Sep 19 09:27:04 EST 2011
Log message for revision 122845:
Export/import new MailHost properties, `smtp_queue` and `smtp_queue_directory`.
See LP #602989.
Changed:
U Products.GenericSetup/trunk/Products/GenericSetup/MailHost/exportimport.py
U Products.GenericSetup/trunk/Products/GenericSetup/MailHost/tests/test_exportimport.py
U Products.GenericSetup/trunk/docs/CHANGES.rst
-=-
Modified: Products.GenericSetup/trunk/Products/GenericSetup/MailHost/exportimport.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/MailHost/exportimport.py 2011-09-19 14:11:33 UTC (rev 122844)
+++ Products.GenericSetup/trunk/Products/GenericSetup/MailHost/exportimport.py 2011-09-19 14:27:04 UTC (rev 122845)
@@ -47,6 +47,18 @@
if smtp_pwd is None:
smtp_pwd = ''
node.setAttribute('smtp_pwd', smtp_pwd)
+
+ #Older MH instances won't have 'smtp_queue' in instance dict
+ if 'smtp_queue' in self.context.__dict__:
+ smtp_queue = bool(self.context.smtp_queue)
+ node.setAttribute('smtp_queue', str(smtp_queue))
+
+ smtp_queue_directory = self.context.smtp_queue_directory
+ if smtp_queue_directory is None:
+ smtp_queue_directory = ''
+ node.setAttribute('smtp_queue_directory',
+ str(smtp_queue_directory))
+
self._logger.info('Mailhost exported.')
return node
@@ -57,5 +69,12 @@
self.context.smtp_port = int(node.getAttribute('smtp_port'))
self.context.smtp_uid = node.getAttribute('smtp_uid').encode('utf-8')
self.context.smtp_pwd = node.getAttribute('smtp_pwd').encode('utf-8')
+
+ #Older MH instances won't have 'smtp_queue' in instance dict
+ queue = node.getAttribute('smtp_queue')
+ if 'smtp_queue' in self.context.__dict__:
+ self.context.smtp_queue = (str(queue) == 'True')
+ qd = node.getAttribute('smtp_queue_directory')
+ self.context.smtp_queue_directory = str(qd)
self._logger.info('Mailhost imported.')
Modified: Products.GenericSetup/trunk/Products/GenericSetup/MailHost/tests/test_exportimport.py
===================================================================
--- Products.GenericSetup/trunk/Products/GenericSetup/MailHost/tests/test_exportimport.py 2011-09-19 14:11:33 UTC (rev 122844)
+++ Products.GenericSetup/trunk/Products/GenericSetup/MailHost/tests/test_exportimport.py 2011-09-19 14:27:04 UTC (rev 122845)
@@ -22,10 +22,24 @@
_MAILHOST_BODY = """\
<?xml version="1.0"?>
<object name="foo_mailhost" meta_type="Mail Host" smtp_host="localhost"
+ smtp_port="25" smtp_pwd="" smtp_queue="False" smtp_queue_directory="/tmp"
+ smtp_uid=""/>
+"""
+
+_MAILHOST_BODY_older_mh = """\
+<?xml version="1.0"?>
+<object name="foo_mailhost" meta_type="Mail Host" smtp_host="localhost"
smtp_port="25" smtp_pwd="" smtp_uid=""/>
"""
+_MAILHOST_BODY_v2 = """\
+<?xml version="1.0"?>
+<object name="foo_mailhost" meta_type="Mail Host" smtp_host="localhost"
+ smtp_port="25" smtp_pwd="" smtp_queue="True"
+ smtp_queue_directory="/tmp/mailqueue" smtp_uid=""/>
+"""
+
class MailHostXMLAdapterTests(BodyAdapterTestCase, unittest.TestCase):
layer = ExportImportZCMLLayer
@@ -45,6 +59,10 @@
self.assertEqual(obj.smtp_pwd, '')
self.assertEqual(type(obj.smtp_uid), str)
self.assertEqual(obj.smtp_uid, '')
+ self.assertEqual(type(obj.smtp_queue), bool)
+ self.assertEqual(obj.smtp_queue, False)
+ self.assertEqual(type(obj.smtp_queue_directory), str)
+ self.assertEqual(obj.smtp_queue_directory, '/tmp')
def setUp(self):
from Products.MailHost.MailHost import MailHost
@@ -53,7 +71,50 @@
self._BODY = _MAILHOST_BODY
+class MailHostXMLAdapterTestsWithoutQueue(MailHostXMLAdapterTests):
+
+ def _verifyImport(self, obj):
+ self.failIf('smtp_queue' in obj.__dict__)
+ self.failIf('smtp_queue_directory' in obj.__dict__)
+
+ def setUp(self):
+ from Products.MailHost.MailHost import MailHost
+
+ mh = self._obj = MailHost('foo_mailhost')
+ del mh.smtp_queue
+ del mh.smtp_queue_directory
+ self._BODY = _MAILHOST_BODY_older_mh
+
+
+class MailHostXMLAdapterTestsWithQueue(BodyAdapterTestCase, unittest.TestCase):
+
+ layer = ExportImportZCMLLayer
+
+ def _getTargetClass(self):
+ from Products.GenericSetup.MailHost.exportimport \
+ import MailHostXMLAdapter
+
+ return MailHostXMLAdapter
+
+ def _verifyImport(self, obj):
+ self.assertEqual(type(obj.smtp_queue), bool)
+ self.assertEqual(obj.smtp_queue, True)
+ self.assertEqual(type(obj.smtp_queue_directory), str)
+ self.assertEqual(obj.smtp_queue_directory, '/tmp/mailqueue')
+
+ def test_body_get(self):
+ #Default Correctly Handled in MailHostXMLAdapterTests
+ pass
+
+ def setUp(self):
+ from Products.MailHost.MailHost import MailHost
+
+ self._obj = MailHost('foo_mailhost')
+ self._BODY = _MAILHOST_BODY_v2
+
+
class MailHostXMLAdapterTestsWithNoneValue(MailHostXMLAdapterTests):
+
def _verifyImport(self, obj):
self.assertEqual(type(obj.smtp_host), str)
self.assertEqual(obj.smtp_host, 'localhost')
@@ -75,5 +136,7 @@
def test_suite():
return unittest.TestSuite((
unittest.makeSuite(MailHostXMLAdapterTests),
+ unittest.makeSuite(MailHostXMLAdapterTestsWithoutQueue),
+ unittest.makeSuite(MailHostXMLAdapterTestsWithQueue),
unittest.makeSuite(MailHostXMLAdapterTestsWithNoneValue),
))
Modified: Products.GenericSetup/trunk/docs/CHANGES.rst
===================================================================
--- Products.GenericSetup/trunk/docs/CHANGES.rst 2011-09-19 14:11:33 UTC (rev 122844)
+++ Products.GenericSetup/trunk/docs/CHANGES.rst 2011-09-19 14:27:04 UTC (rev 122845)
@@ -4,6 +4,9 @@
1.6.4 (unreleased)
------------------
+- LP #602989: export / import new MailHost properties, `smtp_queue` and
+ `smtp_queue_directory`.
+
- ZCML: Don't require description for the `upgradeDepends` directive.
- PythonScript handler: Newlines are now normalized during import.
More information about the checkins
mailing list