Annotation of ExtFile/tests/testPUT_factory.py, revision 1.1
1.1 ! dwinter 1: #
! 2: # Tests the PUT_factory() and PUT() method, especially with
! 3: # SYNC_ZODB repository type.
! 4: #
! 5:
! 6: import os, sys
! 7: if __name__ == '__main__':
! 8: execfile(os.path.join(sys.path[0], 'framework.py'))
! 9:
! 10: from Testing import ZopeTestCase
! 11:
! 12: ZopeTestCase.installProduct('SiteAccess')
! 13: ZopeTestCase.installProduct('ExternalMethod')
! 14: ZopeTestCase.installProduct('ExtFile')
! 15:
! 16: from Products.ExtFile.tests.ExtFileTestCase import ExtFileTestCase
! 17: from Products.ExtFile.tests.ExtFileTestCase import gifImage
! 18: from Products.ExtFile.tests.ExtFileTestCase import copymove_perms
! 19:
! 20: from Products.ExtFile import ExtFile, Config
! 21:
! 22: from webdav.NullResource import NullResource
! 23: from Acquisition import aq_base
! 24:
! 25: user_name = ZopeTestCase.user_name
! 26: user_password = ZopeTestCase.user_password
! 27:
! 28: import base64
! 29: auth_info = 'Basic %s' % base64.encodestring('%s:%s' % (user_name, user_password)).rstrip()
! 30:
! 31: from os.path import join
! 32:
! 33:
! 34: class TestPUTFactory(ExtFileTestCase):
! 35:
! 36: def afterSetUp(self):
! 37: ExtFileTestCase.afterSetUp(self)
! 38: self.setPermissions(copymove_perms)
! 39:
! 40: if not self.app.objectIds('Virtual Host Monster'):
! 41: factory = self.app.manage_addProduct['SiteAccess']
! 42: factory.manage_addVirtualHostMonster('VHM')
! 43:
! 44: factory = self.folder.manage_addProduct['ExternalMethod']
! 45: factory.manage_addExternalMethod('PUT_factory', '', 'ExtFile.PUT_factory', 'PUT_factory')
! 46:
! 47: self.folder.manage_addFolder('subfolder')
! 48: self.subfolder = self.folder.subfolder
! 49:
! 50: request = self.app.REQUEST
! 51: request['PARENTS'] = [self.app]
! 52:
! 53: # Fake a dav PUT request
! 54: request['BODYFILE'] = open(gifImage, 'rb')
! 55: request.environ['CONTENT_TYPE'] = 'image/gif'
! 56: request.environ['REQUEST_METHOD'] = 'PUT'
! 57: request._auth = auth_info
! 58:
! 59: def afterClear(self):
! 60: ExtFileTestCase.afterClear(self)
! 61: ExtFile.REPOSITORY = Config.FLAT
! 62: ExtFile.ZODB_PATH = Config.VIRTUAL
! 63:
! 64: def testPUT_factoryAddsImageNoTraverse(self):
! 65: request = self.app.REQUEST
! 66: new = NullResource(self.folder, 'image', request).__of__(self.folder)
! 67: new.PUT(request, request.RESPONSE)
! 68: self.failUnless(hasattr(aq_base(self.folder), 'image'))
! 69: self.failUnless(self._exists('image.gif.tmp'))
! 70:
! 71: def testPUT_factoryAddsImageFlat(self):
! 72: ExtFile.REPOSITORY = Config.FLAT
! 73: request = self.app.REQUEST
! 74: put = request.traverse('/test_folder_1_/image')
! 75: put(request, request.RESPONSE)
! 76: self.failUnless(hasattr(aq_base(self.folder), 'image'))
! 77: self.failUnless(self._exists('image.gif.tmp'))
! 78:
! 79: def testPUT_factoryAddsImageSyncZodb(self):
! 80: ExtFile.REPOSITORY = Config.SYNC_ZODB
! 81: request = self.app.REQUEST
! 82: put = request.traverse('/test_folder_1_/image')
! 83: put(request, request.RESPONSE)
! 84: self.failUnless(hasattr(aq_base(self.folder), 'image'))
! 85: self.failUnless(self._exists(join('test_folder_1_', 'image.gif.tmp')))
! 86:
! 87: def testPUT_factoryAddsImageSyncZodbSubfolder(self):
! 88: ExtFile.REPOSITORY = Config.SYNC_ZODB
! 89: request = self.app.REQUEST
! 90: put = request.traverse('/test_folder_1_/subfolder/image')
! 91: put(request, request.RESPONSE)
! 92: self.failUnless(hasattr(aq_base(self.subfolder), 'image'))
! 93: self.failUnless(self._exists(join('test_folder_1_', 'subfolder', 'image.gif.tmp')))
! 94:
! 95: def testPUT_factoryAddsImageSyncZodbVHM(self):
! 96: ExtFile.REPOSITORY = Config.SYNC_ZODB
! 97: request = self.app.REQUEST
! 98: put = request.traverse('/VirtualHostBase/http/foo.com:80/VirtualHostRoot/test_folder_1_/subfolder/image')
! 99: put(request, request.RESPONSE)
! 100: self.failUnless(hasattr(aq_base(self.subfolder), 'image'))
! 101: self.failUnless(self._exists(join('test_folder_1_', 'subfolder', 'image.gif.tmp')))
! 102:
! 103: def testPUT_factoryAddsImageSyncZodbVHMSubfolderHostingVirtual(self):
! 104: ExtFile.REPOSITORY = Config.SYNC_ZODB
! 105: request = self.app.REQUEST
! 106: put = request.traverse('/VirtualHostBase/http/foo.com:80/test_folder_1_/VirtualHostRoot/subfolder/image')
! 107: put(request, request.RESPONSE)
! 108: self.failUnless(hasattr(aq_base(self.subfolder), 'image'))
! 109: self.failUnless(self._exists(join('subfolder', 'image.gif.tmp')))
! 110:
! 111: def testPUT_factoryAddsImageSyncZodbVHMInsideOutHostingVirtual(self):
! 112: ExtFile.REPOSITORY = Config.SYNC_ZODB
! 113: request = self.app.REQUEST
! 114: put = request.traverse('/VirtualHostBase/http/foo.com:80/VirtualHostRoot/_vh_foo/test_folder_1_/subfolder/image')
! 115: put(request, request.RESPONSE)
! 116: self.failUnless(hasattr(aq_base(self.subfolder), 'image'))
! 117: self.failUnless(self._exists(join('test_folder_1_', 'subfolder', 'image.gif.tmp')))
! 118:
! 119: def testPUT_factoryAddsImageSyncZodbVHMSubfolderInsideOutHostingVirtual(self):
! 120: ExtFile.REPOSITORY = Config.SYNC_ZODB
! 121: request = self.app.REQUEST
! 122: put = request.traverse('/VirtualHostBase/http/foo.com:80/test_folder_1_/VirtualHostRoot/_vh_foo/subfolder/image')
! 123: put(request, request.RESPONSE)
! 124: self.failUnless(hasattr(aq_base(self.subfolder), 'image'))
! 125: self.failUnless(self._exists(join('subfolder', 'image.gif.tmp')))
! 126:
! 127: def testPUT_factoryAddsImageSyncZodbVHMSubfolderHostingPhysical(self):
! 128: ExtFile.REPOSITORY = Config.SYNC_ZODB
! 129: ExtFile.ZODB_PATH = Config.PHYSICAL
! 130: request = self.app.REQUEST
! 131: put = request.traverse('/VirtualHostBase/http/foo.com:80/test_folder_1_/VirtualHostRoot/subfolder/image')
! 132: put(request, request.RESPONSE)
! 133: self.failUnless(hasattr(aq_base(self.subfolder), 'image'))
! 134: self.failUnless(self._exists(join('test_folder_1_', 'subfolder', 'image.gif.tmp')))
! 135:
! 136: def testPUT_factoryAddsImageSyncZodbVHMInsideOutHostingPhysical(self):
! 137: ExtFile.REPOSITORY = Config.SYNC_ZODB
! 138: ExtFile.ZODB_PATH = Config.PHYSICAL
! 139: request = self.app.REQUEST
! 140: put = request.traverse('/VirtualHostBase/http/foo.com:80/VirtualHostRoot/_vh_foo/test_folder_1_/subfolder/image')
! 141: put(request, request.RESPONSE)
! 142: self.failUnless(hasattr(aq_base(self.subfolder), 'image'))
! 143: self.failUnless(self._exists(join('test_folder_1_', 'subfolder', 'image.gif.tmp')))
! 144:
! 145: def testPUT_factoryAddsImageSyncZodbVHMSubfolderInsideOutHostingPhysical(self):
! 146: ExtFile.REPOSITORY = Config.SYNC_ZODB
! 147: ExtFile.ZODB_PATH = Config.PHYSICAL
! 148: request = self.app.REQUEST
! 149: put = request.traverse('/VirtualHostBase/http/foo.com:80/test_folder_1_/VirtualHostRoot/_vh_foo/subfolder/image')
! 150: put(request, request.RESPONSE)
! 151: self.failUnless(hasattr(aq_base(self.subfolder), 'image'))
! 152: self.failUnless(self._exists(join('test_folder_1_', 'subfolder', 'image.gif.tmp')))
! 153:
! 154:
! 155: def test_suite():
! 156: from unittest import TestSuite, makeSuite
! 157: suite = TestSuite()
! 158: suite.addTest(makeSuite(TestPUTFactory))
! 159: return suite
! 160:
! 161: if __name__ == '__main__':
! 162: framework()
! 163:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>