def test_search3(): runner = testrunner.TestRunner() x = ruleset.Input(dest_addr="example.com", headers={"Host": "example.com"}) http_ua = http.HttpUA() http_ua.send_request(x) runner.test_response(http_ua.response_object, re.compile('established to be used for'))
def test_search2(): runner = testrunner.TestRunner() x = ruleset.Input(dest_addr="example.com", headers={"Host": "example.com"}) http_ua = http.HttpUA() http_ua.send_request(x) with pytest.raises(AssertionError): runner.test_response(http_ua.response_object, re.compile('dog'))
def test_modsecurityv2(modsec_logger_obj, ruleset, test, destaddr): """ Modsec specific test """ runner = testrunner.TestRunner() try: for stage in test.stages: if destaddr is not None: stage.input.dest_addr = destaddr runner.run_stage(stage, modsec_logger_obj) except errors.TestError as e: e.args[1]['meta'] = ruleset.meta pytest.fail('Failure! Message -> {0}, Context -> {1}' .format(e.args[0],e.args[1]))
def test_default(ruleset, test, destaddr): """ Default tester with no logger obj. Useful for HTML contains and Status code Not useful for testing loggers """ runner = testrunner.TestRunner() try: for stage in test.stages: if destaddr is not None: stage.input.dest_addr = destaddr runner.run_stage(stage, None) except errors.TestError as e: e.args[1]['meta'] = ruleset.meta pytest.fail('Failure! Message -> {0}, Context -> {1}'.format( e.args[0], e.args[1]))
def test_expecterror(ruleset, test): runner = testrunner.TestRunner() for stage in test.stages: runner.run_stage(stage)
def test_multipart(ruleset, test): runner = testrunner.TestRunner() for stage in test.stages: runner.run_stage(stage)
def test_logcontains_nolog(logchecker_obj, ruleset, test): logchecker_obj.do_nothing = True runner = testrunner.TestRunner() for stage in test.stages: runner.run_stage(stage, logchecker_obj)
def test_logcontains_withlog(logchecker_obj, ruleset, test): runner = testrunner.TestRunner() for stage in test.stages: runner.run_stage(stage, logchecker_obj)
def test_logcontains(ruleset, test): runner = testrunner.TestRunner() for stage in test.stages: runner.run_stage(stage)
def test_logcontains_nolog(logchecker_obj, ruleset, test): logchecker_obj.do_nothing = True runner = testrunner.TestRunner() with(pytest.raises(AssertionError)): for stage in test.stages: runner.run_stage(stage, logchecker_obj)