-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Brent Hendricks wrote: > The DAVAwareFileAdapter currently passes the file's string content > both as BODY and BODYFILE in the FauxDAVRequest. This causes problems > in Archetypes' BaseContent.PUT() because it expects BODYFILE to be an > actual file object. > > This patch against CMFCore/trunk uses cStringIO to make a file object > for BODYFILE. > > Could someone with permission check this (or something like it) in? > > Thanks, > Brent > > > ------------------------------------------------------------------------ > > Index: content.py > =================================================================== > --- content.py (revision 39876) > +++ content.py (working copy) > @@ -319,6 +319,8 @@ > import_context.note('SGAIFA', > 'no .ini file for %s/%s' % (subdir, cid)) > else: > - request = FauxDAVRequest(BODY=data, BODYFILE=data) > + import cStringIO > + f = cStringIO.StringIO(data) > + request = FauxDAVRequest(BODY=data, BODYFILE=f) > response = FauxDAVResponse() > self.context.PUT(request, response) > > > ------------------------------------------------------------------------
I can check in something like that, yes. A couple of notss: - cStringIO is not Unicode-safe; I will use the already-imported StringIO instead. - Archetypes content will likely use the "Marshal" stuff Sidnei and Kapil have been working on as their default FS export / import adapters, rather than DAVAwareFileAdapter. I'm checking it in like so (including modifying the tests to ensure that BODYFILE has a 'read' method): $ svn diff Index: CMFCore/exportimport/content.py =================================================================== - --- CMFCore/exportimport/content.py (revision 39877) +++ CMFCore/exportimport/content.py (working copy) @@ -319,6 +319,6 @@ import_context.note('SGAIFA', 'no .ini file for %s/%s' % (subdir, cid)) else: - - request = FauxDAVRequest(BODY=data, BODYFILE=data) + request = FauxDAVRequest(BODY=data, BODYFILE=StringIO(data)) response = FauxDAVResponse() self.context.PUT(request, response) Index: CMFCore/exportimport/tests/test_content.py =================================================================== - --- CMFCore/exportimport/tests/test_content.py (revision 39877) +++ CMFCore/exportimport/tests/test_content.py (working copy) @@ -787,6 +787,8 @@ def PUT(self, REQUEST, RESPONSE): self._was_put = REQUEST.get('BODY', '') + stream = REQUEST.get('BODYFILE', None) + self._was_put_as_read = stream.read() aware = _TestDAVAware() aware._setId(id) Tres. - -- =================================================================== Tres Seaver +1 202-558-7113 [EMAIL PROTECTED] Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDaphR+gerLs4ltQ4RAgMCAKDT5yXNv+Fp+8GGiUei2Uiw/eynGgCfQgAi yfYGiDuB34oO3mAxYIpEHmw= =e6e7 -----END PGP SIGNATURE----- _______________________________________________ Zope-CMF maillist - Zope-CMF@lists.zope.org http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests