Annotation of ExtFile/tests/testPUT_factory.py, revision 1.1.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>