Esempio n. 1
0
 def create_chains(self):
     self.ch_enabled = chains.base(uri='/page.html')
     self.ch_enabled.server_response = chains.make_response(404,
                                                            expected=False)
     self.ch_enabled.response = chains.make_response(404)
     self.ch_disabled = chains.base()
     # Make 200 status expected once for transition purpose.
     self.trans_resp = self.ch_disabled.response
     self.ch_disabled.response = chains.make_502_expected()
Esempio n. 2
0
def generate_chain_204(method='GET'):
    base = chains.base(method=method)
    base.response.status = "204" # it's default, but for explicity
    base.response.body = ""
    base.server_response.status = "204"
    base.server_response.body = ""
    return base
Esempio n. 3
0
 def make_chains(self, empty=True):
     chain = None
     if empty:
         chain = deproxy.MessageChain.empty()
     else:
         chain = chains.base()
     return [chain for _ in range(self.requests_n)]
def generate_chain(method='GET', expect_400=False):
    base = chains.base(method=method)
    chain = tester.BadLengthMessageChain(request=base.request,
                                         expected_responses=[base.response],
                                         forwarded_request=base.fwd_request,
                                         server_response=base.server_response)
    if expect_400:
        chain.responses.append(chains.response_400(connection='close'))
    return chain
Esempio n. 5
0
 def __init__(self, uri='/', max_deadtime=1, timeout=20):
     self.uri = uri
     self.timeout = timeout
     self.max_deadtime = max_deadtime
     self.stop_procedures = [self.__stop]
     self.client = deproxy.Client()
     self.client.set_tester(self)
     self.message_chains = [chains.base()]
     self.finish_event = multiprocessing.Event()
Esempio n. 6
0
    def create_chains(self):
        chain_200 = chains.base(forward=True)
        chain_200.request.body = ''.join(
            ['Arbitrary data ' for _ in range(300)])
        chain_200.request.update()

        chain_400 = deproxy.MessageChain(
            request=deproxy.Request(), expected_response=chains.response_400())
        return [chain_200, chain_400]
 def __init__(self, *args, **kwargs):
     deproxy.Deproxy.__init__(self, *args, **kwargs)
     base = chains.base(method='PUT')
     base.request.headers['Content-Length'] = 'invalid'
     base.request.build_message()
     base.response = chains.response_400(connection='close')
     base.fwd_request = None
     self.message_chains = [base]
     self.cookies = []
Esempio n. 8
0
def generate_chain_200(method='GET', response_body=""):
    base = chains.base(method=method)
    base.response.status = "200"
    base.response.body = response_body
    base.response.headers['Content-Length'] = len(response_body)
    base.server_response.status = "200"
    base.server_response.body = response_body
    base.server_response.headers['Content-Length'] = len(response_body)
    base.response.update()
    base.server_response.update()
    return base
Esempio n. 9
0
    def make_chains(self, uri, extra_header=(None, None)):
        chain = chains.base(uri=uri)

        header, value = extra_header
        if not header is None:
            for req in [chain.request, chain.fwd_request]:
                req.headers.delete_all(header)
                req.headers.add(header, value)
                req.update()

        return [chain for _ in range(self.requests_n)]
Esempio n. 10
0
 def create_chains(self):
     chain_200 = chains.base(forward=True)
     # Append some garbge to message.
     chain_200.request.msg += ''.join(['Arbitrary data ' for _ in range(300)])
     # Body is not declared in the request, so the garbage will be treated
     # as a new request. 400 response will be sent and client connection
     # will be closed.
     chain_400 = deproxy.MessageChain(
         request = deproxy.Request(),
         expected_response = chains.response_400())
     return [chain_200, chain_400]
 def init_chain(self, params):
     uri, header, value, block = params
     ch = chains.base(uri=uri)
     if block and self.match_rules_test:
         ch.request.headers.delete_all(header)
         ch.request.headers.add(header, value)
         ch.request.update()
         ch.fwd_request = None
     else:
         for request in [ch.request, ch.fwd_request]:
             request.headers.delete_all(header)
             request.headers.add(header, value)
             request.update()
     self.chains.append(ch)
    def __init__(self, *args, **kwargs):
        deproxy.Deproxy.__init__(self, *args, **kwargs)
        base = chains.base(method='PUT')
        cl = base.request.headers['Content-Length']

        base.request.headers.add('Content-Length', cl)
        base.request.build_message()

        base.fwd_request = deproxy.Request()

        base.response = chains.response_400(connection='keep-alive')

        self.message_chains = [base]
        self.cookies = []
    def __init__(self, *args, **kwargs):
        deproxy.Deproxy.__init__(self, *args, **kwargs)
        base = chains.base(method='PUT')
        cl = base.request.headers['Content-Length']

        duplicate = self.second_length(cl)
        base.request.headers.add('Content-Length', duplicate)
        base.request.build_message()

        base.response = self.expected_response()

        base.fwd_request = None

        self.message_chains = [base]
        self.cookies = []
 def process(self, client, server, chain):
     client.make_request(chain.request.msg)
     client.wait_for_response()
     if chain.fwd_request:
         chain.fwd_request.set_expected()
     self.assertEqual(server.last_request, chain.fwd_request)
     # Check if the connection alive (general case) or
     # not (case of 'block' rule matching) after the main
     # message processing. Response 404 is enough here.
     post_chain = chains.base()
     client.make_request(post_chain.request.msg)
     if chain.fwd_request:
         self.assertTrue(client.wait_for_response())
     else:
         self.assertFalse(client.wait_for_response())
 def chains(self):
     uris = [ "/resource-%d" % (i % self.uri_n)
             for i in range(self.messages)]
     msg_chains = [chains.base(uri=uris[i]) for i in range(self.messages)]
     return msg_chains
Esempio n. 16
0
def sample_rule():
    return chains.base()
Esempio n. 17
0
 def __init__(self, *args, **kwargs):
     deproxy.Deproxy.__init__(self, *args, **kwargs)
     # The first message chain is unique.
     self.message_chains = [chains.base()
                            ] + chains.base_repeated(CHAIN_LENGTH)
     self.cookie_parsed = False
Esempio n. 18
0
 def chains(self):
     chain = chains.base()
     return [chain for _ in range(self.messages)]
Esempio n. 19
0
 def create_chains(self):
     return [chains.base(forward=True)]