File:  [Repository] / ExtFile / tests / testPUT_factory.py
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jan 24 16:53:50 2007 UTC (17 years, 5 months ago) by dwinter
Branches: first, MAIN
CVS tags: release, HEAD
Auf der Basis http://www.zope.org/Members/shh/ExtFile Version 1.5.4

mit zlog ersetzt durch logging


    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>