parent
6e6e8792de
commit
04a63b009b
2 changed files with 92 additions and 2 deletions
@ -0,0 +1,90 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from base import * |
||||
from requests import * |
||||
|
||||
TEST_TXT="""Hi! |
||||
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef |
||||
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef |
||||
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef |
||||
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef |
||||
""" |
||||
|
||||
retrieved_etag1 = None |
||||
|
||||
class TestGetEtag1(CurlRequest): |
||||
URL = "/test.txt" |
||||
EXPECT_RESPONSE_BODY = TEST_TXT |
||||
EXPECT_RESPONSE_CODE = 200 |
||||
ACCEPT_ENCODING = None |
||||
|
||||
def CheckResponse(self): |
||||
global retrieved_etag1 |
||||
if not self.resp_headers.has_key('etag'): # lowercase keys! |
||||
raise CurlRequestException("Response missing etag header" % (k, v1, v)) |
||||
retrieved_etag1 = self.resp_headers['etag'] # lowercase keys! |
||||
return super(TestGetEtag1, self).CheckResponse() |
||||
|
||||
class TestTryEtag1(CurlRequest): |
||||
URL = "/test.txt" |
||||
EXPECT_RESPONSE_BODY = "" |
||||
EXPECT_RESPONSE_CODE = 304 |
||||
ACCEPT_ENCODING = None |
||||
|
||||
def PrepareRequest(self, reqheaders): |
||||
global retrieved_etag1 |
||||
if retrieved_etag1 == None: |
||||
raise CurlRequestException("Don't have a etag value to request") |
||||
c = self.curl |
||||
c.setopt(c.HTTPHEADER, reqheaders + ["If-None-Match: " + retrieved_etag1]) |
||||
|
||||
def CheckResponse(self): |
||||
global retrieved_etag1 |
||||
if not self.resp_headers.has_key('etag'): # lowercase keys! |
||||
raise CurlRequestException("Response missing etag header" % (k, v1, v)) |
||||
etag = self.resp_headers['etag'] # lowercase keys! |
||||
if retrieved_etag1 != etag: |
||||
raise CurlRequestException("Response unexpected etag header response header '%s' (wanted '%s')" % (etag, retrieved_etag1)) |
||||
return super(TestTryEtag1, self).CheckResponse() |
||||
|
||||
|
||||
retrieved_etag2 = None |
||||
|
||||
class TestGetEtag2(CurlRequest): |
||||
URL = "/test.txt" |
||||
EXPECT_RESPONSE_BODY = TEST_TXT |
||||
EXPECT_RESPONSE_CODE = 200 |
||||
|
||||
def CheckResponse(self): |
||||
global retrieved_etag2 |
||||
if not self.resp_headers.has_key('etag'): # lowercase keys! |
||||
raise CurlRequestException("Response missing etag header" % (k, v1, v)) |
||||
retrieved_etag2 = self.resp_headers['etag'] # lowercase keys! |
||||
return super(TestGetEtag2, self).CheckResponse() |
||||
|
||||
class TestTryEtag2(CurlRequest): |
||||
URL = "/test.txt" |
||||
EXPECT_RESPONSE_BODY = "" |
||||
EXPECT_RESPONSE_CODE = 304 |
||||
|
||||
def PrepareRequest(self, reqheaders): |
||||
global retrieved_etag2 |
||||
if retrieved_etag2 == None: |
||||
raise CurlRequestException("Don't have a etag value to request") |
||||
c = self.curl |
||||
c.setopt(c.HTTPHEADER, reqheaders + ["If-None-Match: " + retrieved_etag2]) |
||||
|
||||
def CheckResponse(self): |
||||
global retrieved_etag1 |
||||
global retrieved_etag2 |
||||
if not self.resp_headers.has_key('etag'): # lowercase keys! |
||||
raise CurlRequestException("Response missing etag header" % (k, v1, v)) |
||||
etag = self.resp_headers['etag'] # lowercase keys! |
||||
if retrieved_etag1 == etag: |
||||
raise CurlRequestException("Response has same etag header as uncompressed response '%s' (wanted '%s')" % (etag, retrieved_etag2)) |
||||
if retrieved_etag2 != etag: |
||||
raise CurlRequestException("Response unexpected etag header response header '%s' (wanted '%s')" % (etag, retrieved_etag2)) |
||||
return super(TestTryEtag2, self).CheckResponse() |
||||
|
||||
class Test(GroupTest): |
||||
group = [TestGetEtag1, TestTryEtag1, TestGetEtag2, TestTryEtag2] |
Loading…
Reference in new issue