def test_export_import_as_file_idempotent(self): from OFS.DTMLMethod import DTMLMethod from OFS.XMLExportImport import exportXML from OFS.XMLExportImport import importXML connection, app = self._makeJarAndRoot() dm = DTMLMethod('test') dm.munge(_LONG_DTML) app._setObject('test', dm) transaction.savepoint(optimistic=True) # need an OID! oid = dm._p_oid handle, path = tempfile.mkstemp(suffix='.xml') try: ostream = os.fdopen(handle,'wb') data = exportXML(connection, oid, ostream) ostream.close() newobj = importXML(connection, path) self.assertTrue(isinstance(newobj, DTMLMethod)) self.assertEqual(newobj.read(), dm.read()) finally: # if this operaiton fails with a 'Permission Denied' error, # then comment it out as it's probably masking a failure in # the block above. os.remove(path)
def test_export_import_as_string_idempotent(self): from OFS.DTMLMethod import DTMLMethod from OFS.XMLExportImport import exportXML from OFS.XMLExportImport import importXML connection, app = self._makeJarAndRoot() dm = DTMLMethod('test') dm.munge(_LONG_DTML) app._setObject('test', dm) transaction.savepoint(optimistic=True) # need an OID! oid = dm._p_oid stream = StringIO() data = exportXML(connection, oid, stream) stream.seek(0) newobj = importXML(connection, stream) self.assertTrue(isinstance(newobj, DTMLMethod)) self.assertEqual(newobj.read(), dm.read())