本文整理汇总了Python中txweb2.test.test_server.SimpleRequest类的典型用法代码示例。如果您正苦于以下问题:Python SimpleRequest类的具体用法?Python SimpleRequest怎么用?Python SimpleRequest使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SimpleRequest类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _simple_PROPPATCH
def _simple_PROPPATCH(self, patch, prop, expected_code, what):
def check_result(response):
response = IResponse(response)
if response.code != responsecode.MULTI_STATUS:
self.fail("Incorrect response code for PROPPATCH (%s != %s)"
% (response.code, responsecode.MULTI_STATUS))
return davXMLFromStream(response.stream).addCallback(check_xml)
def check_xml(doc):
response = doc.root_element.childOfType(davxml.Response)
propstat = response.childOfType(davxml.PropertyStatus)
self.failUnless(
response.childOfType(davxml.HRef) == "/",
"Incorrect response URI: %s != /" % (response.childOfType(davxml.HRef),)
)
self.failIf(
propstat.childOfType(davxml.PropertyContainer).childOfType(prop) is None,
"Not a %s in PROPPATCH property status: %s" % (prop.sname(), propstat.toxml())
)
self.failUnless(
propstat.childOfType(davxml.Status).code == expected_code,
"Incorrect status code for PROPPATCH %s: %s != %s"
% (what, propstat.childOfType(davxml.Status).code, expected_code)
)
request = SimpleRequest(self.site, "PROPPATCH", "/")
request.stream = MemoryStream(patch.toxml())
return self.send(request, check_result)
示例2: _checkPrivileges
def _checkPrivileges(self, resource, url, principal, privilege, allowed):
request = SimpleRequest(self.site, "GET", "/")
def gotResource(resource):
d = resource.checkPrivileges(
request, (privilege,), principal=davxml.Principal(principal)
)
if allowed:
def onError(f):
f.trap(AccessDeniedError)
# print(resource.readDeadProperty(davxml.ACL))
self.fail(
"%s should have %s privilege on %r"
% (principal.sname(), privilege.sname(), resource)
)
d.addErrback(onError)
else:
def expectAccessDenied(f):
f.trap(AccessDeniedError)
def onSuccess(_):
# print(resource.readDeadProperty(davxml.ACL))
self.fail(
"%s should not have %s privilege on %r"
% (principal.sname(), privilege.sname(), resource)
)
d.addCallbacks(onSuccess, expectAccessDenied)
return d
d = request.locateResource(url)
d.addCallback(gotResource)
return d
示例3: test_free_busy_set_same
def test_free_busy_set_same(self):
"""
Test that calendar-free-busy-set has the correct value and can be reset to the same.
"""
request = SimpleRequest(self.site, "GET", "/calendars/users/user01/inbox/")
inbox = yield request.locateResource("/calendars/users/user01/inbox/")
self.assertTrue((yield inbox.hasProperty(caldavxml.CalendarFreeBusySet, request)))
prop = (yield inbox.readProperty(caldavxml.CalendarFreeBusySet, request))
self.assertEqual(prop.children[0], davxml.HRef("/calendars/__uids__/user01/calendar/"))
newfbset = set()
newfbset.add("/calendars/users/user01/calendar/")
newset = caldavxml.CalendarFreeBusySet(*[davxml.HRef(url) for url in newfbset])
yield inbox.writeProperty(newset, request)
yield request._newStoreTransaction.commit()
request = SimpleRequest(self.site, "GET", "/calendars/users/user01/inbox/")
inbox = yield request.locateResource("/calendars/users/user01/inbox/")
prop = (yield inbox.readProperty(caldavxml.CalendarFreeBusySet, request))
self.assertEqual(prop.children[0], davxml.HRef("/calendars/__uids__/user01/calendar/"))
yield request._newStoreTransaction.commit()
calendar = yield request.locateResource("/calendars/__uids__/user01/calendar/")
self.assertTrue(calendar._newStoreObject.isUsedForFreeBusy())
示例4: work
def work():
for code in (
responsecode.CREATED,
responsecode.PRECONDITION_FAILED,
responsecode.NO_CONTENT,
responsecode.PRECONDITION_FAILED,
responsecode.NO_CONTENT,
responsecode.CREATED,
):
def checkResult(response, code=code):
response = IResponse(response)
if response.code != code:
self.fail("Incorrect response code for PUT (%s != %s)"
% (response.code, code))
def onError(f):
f.trap(HTTPError)
return checkResult(f.value.response)
request = SimpleRequest(self.site, "PUT", dst_uri)
request.stream = FileStream(file(__file__, "rb"))
if code == responsecode.CREATED:
if os.path.isfile(dst_path):
os.remove(dst_path)
request.headers.setHeader("if-none-match", ("*",))
elif code == responsecode.PRECONDITION_FAILED:
request.headers.setHeader("if-none-match", ("*",))
yield (request, (checkResult, onError))
示例5: test_Quota_Bad_Adjustment
def test_Quota_Bad_Adjustment(self):
"""
Quota adjustment too much
"""
dst_uri = "/dst"
def checkPUTResult(response):
response = IResponse(response)
if response.code != responsecode.CREATED:
self.fail("Incorrect response code for PUT (%s != %s)"
% (response.code, responsecode.CREATED))
def doBadAdjustment(_ignore):
def checkAdjustmentResult(_ignore):
return self.checkQuota(100)
d = self.site.resource.quotaSizeAdjust(None, -200)
d.addCallback(checkAdjustmentResult)
return d
d = self.checkQuota(100)
d.addCallback(doBadAdjustment)
return d
request = SimpleRequest(self.site, "PUT", dst_uri)
request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))
return self.send(request, checkPUTResult)
示例6: test_Quota_DELETE
def test_Quota_DELETE(self):
"""
Quota change on DELETE
"""
dst_uri = "/dst"
def checkPUTResult(response):
response = IResponse(response)
if response.code != responsecode.CREATED:
self.fail("Incorrect response code for PUT (%s != %s)"
% (response.code, responsecode.CREATED))
def doDelete(_ignore):
def checkDELETEResult(response):
response = IResponse(response)
if response.code != responsecode.NO_CONTENT:
self.fail("Incorrect response code for PUT (%s != %s)"
% (response.code, responsecode.NO_CONTENT))
return self.checkQuota(0)
request = SimpleRequest(self.site, "DELETE", dst_uri)
return self.send(request, checkDELETEResult)
d = self.checkQuota(100)
d.addCallback(doDelete)
return d
request = SimpleRequest(self.site, "PUT", dst_uri)
request.stream = FileStream(file(os.path.join(os.path.dirname(__file__), "data", "quota_100.txt"), "rb"))
return self.send(request, checkPUTResult)
示例7: test_renderPrivileges
def test_renderPrivileges(self):
"""
Verify that a directory listing includes children which you
don't have access to.
"""
request = SimpleRequest(self.site, "GET", "/")
def setEmptyACL(resource):
resource.setAccessControlList(davxml.ACL()) # Empty ACL = no access
return resource
def renderRoot(_):
d = request.locateResource("/")
d.addCallback(lambda r: r.render(request))
return d
def assertListing(response):
data = []
d = readStream(response.stream, lambda s: data.append(str(s)))
d.addCallback(lambda _: self.failIf(
'dir2/' not in "".join(data),
"'dir2' expected in listing: %r" % (data,)
))
return d
d = request.locateResource("/dir2")
d.addCallback(setEmptyACL)
d.addCallback(renderRoot)
d.addCallback(assertListing)
return d
示例8: work
def work():
for method in ("GET", "REPORT"):
if method == "GET":
ok = responsecode.OK
elif method == "REPORT":
ok = responsecode.MULTI_STATUS
else:
raise AssertionError("We shouldn't be here. (method = %r)" % (method,))
for name, code in (
("none" , responsecode.FORBIDDEN),
("read" , ok),
("read-write" , ok),
("unlock" , responsecode.FORBIDDEN),
("all" , ok),
):
path = os.path.join(self.docroot, name)
request = SimpleRequest(self.site, method, "/" + name)
if method == "REPORT":
request.stream = MemoryStream(element.PrincipalPropertySearch().toxml())
_add_auth_header(request)
def test(response, code=code, path=path):
if response.code != code:
return self.oops(request, response, code, method, name)
yield (request, test)
示例9: work
def work():
for which in (davxml.AllProperties(), davxml.PropertyName()):
query = davxml.PropertyFind(which)
request = SimpleRequest(self.site, "PROPFIND", "/")
request.headers.setHeader("depth", "0")
request.stream = MemoryStream(query.toxml())
yield (request, check_result(which))
示例10: test_REPORT_no_body
def test_REPORT_no_body(self):
"""
REPORT request with no body
"""
def do_test(response):
response = IResponse(response)
if response.code != responsecode.BAD_REQUEST:
self.fail("Unexpected response code for REPORT with no body: %s"
% (response.code,))
request = SimpleRequest(self.site, "REPORT", "/")
request.stream = MemoryStream("")
return self.send(request, do_test)
示例11: test_free_busy_set_invalid_url
def test_free_busy_set_invalid_url(self):
"""
Test that calendar-free-busy-set will generate an error if an invalid value is used.
"""
request = SimpleRequest(self.site, "GET", "/calendars/users/user01/inbox/")
inbox = yield request.locateResource("/calendars/users/user01/inbox/")
self.assertTrue((yield inbox.hasProperty(caldavxml.CalendarFreeBusySet, request)))
oldfbset = set(("/calendar",))
newfbset = set()
newfbset.update(oldfbset)
newfbset.add("/calendar-broken")
newset = caldavxml.CalendarFreeBusySet(*[davxml.HRef(url) for url in newfbset])
yield self.failUnlessFailure(inbox.writeProperty(newset, request), HTTPError)
示例12: test_PUT_no_parent
def test_PUT_no_parent(self):
"""
PUT with no parent
"""
dst_uri = "/put/no/parent"
def checkResult(response):
response = IResponse(response)
if response.code != responsecode.CONFLICT:
self.fail("Incorrect response code for PUT with no parent (%s != %s)"
% (response.code, responsecode.CONFLICT))
request = SimpleRequest(self.site, "PUT", dst_uri)
request.stream = FileStream(file(__file__, "rb"))
return self.send(request, checkResult)
示例13: test_checkPrivileges
def test_checkPrivileges(self):
"""
DAVResource.checkPrivileges()
"""
ds = []
authAllResource = AuthAllResource()
requested_access = (davxml.All(),)
site = Site(authAllResource)
def expectError(failure):
failure.trap(AccessDeniedError)
errors = failure.value.errors
self.failUnless(len(errors) == 1)
subpath, denials = errors[0]
self.failUnless(subpath is None)
self.failUnless(
tuple(denials) == requested_access,
"%r != %r" % (tuple(denials), requested_access)
)
def expectOK(result):
self.failUnlessEquals(result, None)
def _checkPrivileges(resource):
d = resource.checkPrivileges(request, requested_access)
return d
# No auth; should deny
request = SimpleRequest(site, "GET", "/")
d = request.locateResource("/").addCallback(_checkPrivileges).addErrback(expectError)
ds.append(d)
# Has auth; should allow
request = SimpleRequest(site, "GET", "/")
request.authzUser = request.authnUser = self.rootresource.principalForUser("gooduser")
d = request.locateResource("/")
d.addCallback(_checkPrivileges)
d.addCallback(expectOK)
ds.append(d)
return DeferredList(ds)
示例14: test_isOwnerYes_noStoreObject
def test_isOwnerYes_noStoreObject(self):
"""
L{CalDAVResource.isOwner} returns C{True} for authenticated requests
with a principal that matches the resource's owner.
"""
site = None
request = SimpleRequest(site, "GET", "/not/a/real/url/")
request.authzUser = request.authnUser = StubPrincipal("/yes-i-am-the-owner/")
parent = CalDAVResource()
parent.owner = lambda igreq: HRef("/yes-i-am-the-owner/")
rsrc = CalDAVResource()
rsrc._newStoreObject = None
request._rememberResource(parent, "/not/a/real/")
request._rememberResource(rsrc, "/not/a/real/url/")
self.assertEquals((yield rsrc.isOwner(request)), True)
示例15: test_findChildrenWithPrivileges
def test_findChildrenWithPrivileges(self):
"""
This test revokes read privileges for the C{"/file2"} and C{"/dir2/"}
resource to verify that we can not find them giving our unauthenticated
privileges.
"""
expected_children = [
"/file1",
"/dir1/",
]
request = SimpleRequest(self.site, "GET", "/")
resource = waitForDeferred(request.locateResource("/"))
yield resource
resource = resource.getResult()
def checkChildren(resource, uri):
self.assertEquals(uri, resource.uri)
if uri not in expected_children:
unexpected_children.append(uri)
else:
found_children.append(uri)
found_children = []
unexpected_children = []
privileges = waitForDeferred(resource.currentPrivileges(request))
yield privileges
privileges = privileges.getResult()
fc = resource.findChildren("1", request, checkChildren, privileges)
completed = waitForDeferred(fc)
yield completed
completed.getResult()
self.assertEquals(
unexpected_children, [],
"Found unexpected children: %r" % (unexpected_children,)
)
expected_children.sort()
found_children.sort()
self.assertEquals(expected_children, found_children)