/usr/share/pyshared/zope/publisher/tests/basetestipublicationrequest.py is in python-zope.publisher 3.12.6-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | ##############################################################################
#
# Copyright (c) 2001, 2002 Zope Foundation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
"""IPublicationRequest base test
"""
import sys
from zope.interface import Interface, directlyProvides, implements
from zope.interface.verify import verifyObject
from zope.publisher.interfaces import IPublicationRequest, IHeld
from zope.publisher.interfaces.browser import IBrowserSkinType
class Held:
implements(IHeld)
released = False
def release(self):
self.released = True
class BaseTestIPublicationRequest(object):
def testVerifyIPublicationRequest(self):
verifyObject(IPublicationRequest, self._Test__new())
def testHaveCustomTestsForIPublicationRequest(self):
# Make sure that tests are defined for things we can't test here
self.test_IPublicationRequest_getPositionalArguments
def testTraversalStack(self):
request = self._Test__new()
stack = ['Engineering', 'ZopeCorp']
request.setTraversalStack(stack)
self.assertEqual(list(request.getTraversalStack()), stack)
def testHoldCloseAndGetResponse(self):
request = self._Test__new()
response = request.response
rcresponse = sys.getrefcount(response)
resource = object()
rcresource = sys.getrefcount(resource)
request.hold(resource)
resource2 = Held()
rcresource2 = sys.getrefcount(resource2)
request.hold(resource2)
self.failUnless(sys.getrefcount(resource) > rcresource)
self.failUnless(sys.getrefcount(resource2) > rcresource2)
self.failIf(resource2.released)
request.close()
self.failUnless(resource2.released)
# Responses are not unreferenced during close()
self.failUnless(sys.getrefcount(response) >= rcresponse)
self.assertEqual(sys.getrefcount(resource), rcresource)
self.assertEqual(sys.getrefcount(resource2), rcresource2)
def testSkinManagement(self):
request = self._Test__new()
class IMoreFoo(Interface):
pass
directlyProvides(IMoreFoo, IBrowserSkinType)
self.assertEqual(IMoreFoo.providedBy(request), False)
directlyProvides(request, IMoreFoo)
self.assertEqual(IMoreFoo.providedBy(request), True)
|