Exemple #1
0
def response(context, flow):
    if driver.name:
        rule = flow.mastermind['rule']
        if rule:
            delay = rules.delay(rule)
            if delay: time.sleep(delay)

            with decoded(flow.response):
                status_code = rules.status_code(rule)
                body_filename = rules.body_filename(rule)
                schema = rules.schema(rule, context.source_dir)

                if status_code:
                    status_message = http.status_message(status_code)

                    flow.response.status_code = status_code
                    flow.response.msg = status_message

                if schema:
                    table = driver.db.table(flow.request.url)
                    schema_result = rules.check(flow.response.content, schema)
                    table.insert_multiple(schema_result)
                    print(schema_result)

                rules.process_headers('response', rule, flow.response.headers)

                if body_filename:
                    # 204 might be set by the skip rule in the request hook
                    if flow.response.status_code == 204:
                        flow.response.status_code = 200
                        flow.response.msg = "OK"
                    flow.response.content = rules.body(body_filename,
                                                       context.source_dir)
Exemple #2
0
def response(context, flow):
    if driver.name:
        rule = flow.mastermind['rule']
        if rule:
            delay = rules.delay(rule)
            if delay: time.sleep(delay)

            with decoded(flow.response):
                status_code = rules.status_code(rule)
                body_filename = rules.body_filename(rule)
                schema = rules.schema(rule,
                                      context.source_dir)

                if status_code:
                    status_message = http.status_message(status_code)

                    flow.response.status_code = status_code
                    flow.response.msg = status_message

                if schema:
                    table = driver.db.table(flow.request.url)
                    schema_result = rules.check(flow.response.content,
                                                schema)
                    table.insert_multiple(schema_result)
                    print(schema_result)

                rules.process_headers('response',
                                      rule,
                                      flow.response.headers)

                if body_filename:
                    # 204 might be set by the skip rule in the request hook
                    if flow.response.status_code == 204:
                        flow.response.status_code = 200
                        flow.response.msg = "OK"
                    flow.response.content = rules.body(body_filename,
                                                       context.source_dir)
Exemple #3
0
def test_body_filename_not_exists():
    assert r.body_filename({'url': 'http://foo'}) is None
Exemple #4
0
def test_body_filename_exists():
    assert r.body_filename(rule) == 'ok200.json'
Exemple #5
0
def test_body_filename_not_exists():
    assert r.body_filename({'url': 'http://foo'}) == None
Exemple #6
0
def test_body_filename_exists():
    assert r.body_filename(rule) == 'ok200.json'