def test_result_iter(self, mock_build_raw_response_header: Mock): test_prefix = "test-prefix|" payload: Payload = Payload("test-payload").with_prefix(test_prefix) mock_build_raw_response_header.return_value = self.test_headers Result.save_payload_configs = True Result.save_headers = True Result.save_body = True result = Result(response=ResponseMock(), rtt=3.0, payload=payload) result.custom['test-key'] = "test-value" expected_result_dict = { 'index': 1, 'url': "https://test-url.com/", 'method': "GET", 'rtt': 3.0, 'request_time': 1.0, 'response_time': 2.0, 'status': 200, 'headers_length': 228, 'body_size': 25, 'words': 5, 'lines': 2, 'test-key': "test-value", 'payload': payload.final, 'payload_raw': payload.raw, 'payload_prefix': test_prefix, 'headers': self.test_headers, 'body': "My Body Text\nFooter Text\n" } self.assertDictEqual(dict(result), expected_result_dict)
def test_get_formatted_result_with_result_custom(self, mock_format_items: Mock): test_payload = "test_payload" test_status_code = "200" test_rtt = "300 ms" test_length = "50 KB" test_words = "50" test_lines = "10" mock_format_items.return_value = (test_payload, test_status_code, test_rtt, test_length, test_words, test_lines) test_result = Result(response=ResponseMock()) test_result.custom['test_0'] = None test_result.custom['test_1'] = "test_custom" return_expected = ( f"{test_payload} {Colors.GRAY}[" f"{Colors.LIGHT_GRAY}Code{Colors.RESET} {test_status_code} | " f"{Colors.LIGHT_GRAY}RTT{Colors.RESET} {test_rtt} | " f"{Colors.LIGHT_GRAY}Size{Colors.RESET} {test_length} | " f"{Colors.LIGHT_GRAY}Words{Colors.RESET} {test_words} | " f"{Colors.LIGHT_GRAY}Lines{Colors.RESET} {test_lines}{Colors.GRAY}]{Colors.RESET}" f"\n{Colors.LIGHT_YELLOW}|_ test_1: " f"{ResultUtils.format_custom_field(test_result.custom['test_1'])}{Colors.RESET}" ) returned_data = CliOutput()._CliOutput__get_formatted_result( test_result) mock_format_items.assert_called_once_with(test_result) self.assertIsInstance(returned_data, str) self.assertEqual(returned_data, return_expected)
def test_result(self, mock_build_raw_response_header: Mock): test_response = ResponseMock() mock_build_raw_response_header.return_value = self.test_headers result = Result(response=test_response, rtt=3.0, payload=Payload('test-payload')) self.assertEqual(result.request_time, 1.0) self.assertEqual(result.headers_length, 228) self.assertEqual(result.body_size, 25) self.assertEqual(result.words, 5) self.assertEqual(result.lines, 2) self.assertEqual(result.get_response(), test_response)
def test_get_formatted_payload_with_path_fuzz(self): test_result = Result( response=ResponseMock(), fuzz_type=PATH_FUZZING, ) returned_payload = CliOutput()._CliOutput__get_formatted_payload( test_result) self.assertIsInstance(returned_payload, str) self.assertEqual(returned_payload, get_path(test_result.url))
def test_get_formatted_payload(self): test_result = Result( response=ResponseMock(), payload=Payload("test-payload"), ) returned_payload = CliOutput()._CliOutput__get_formatted_payload( test_result) self.assertIsInstance(returned_payload, str) self.assertEqual(returned_payload, test_result.payload)
def test_result_str(self, mock_build_raw_response_header: Mock): test_response = ResponseMock() mock_build_raw_response_header.return_value = self.test_headers result = Result(response=test_response, rtt=3.0, payload=Payload('test-payload')) result.custom['test_0'] = None result.custom['test_1'] = "test_value" payload, rtt, length, words, lines = ResultUtils.get_formatted_result( result.payload, result.rtt, result.body_size, result.words, result.lines) return_expected = (f"{payload} [" f"Code {result.status} | " f"RTT {rtt} | " f"Size {length} | " f"Words {words} | " f"Lines {lines}]" f"\n|_ test_1: {result.custom['test_1']}") self.assertEqual(str(result), return_expected)
def test_get_formatted_payload_with_path_fuzz_and_raise_exception( self, mock_get_path: Mock): test_result = Result( response=ResponseMock(), fuzz_type=PATH_FUZZING, ) mock_get_path.side_effect = ValueError returned_payload = CliOutput()._CliOutput__get_formatted_payload( test_result) self.assertIsInstance(returned_payload, str) self.assertEqual(returned_payload, test_result.url)
def test_get_formatted_result_items(self, mock_format_result: Mock, mock_format_status: Mock): test_result = Result(response=ResponseMock(), payload=Payload("test-payload")) expected_status = "test_status" mock_format_status.return_value = expected_status return_expected = ('', expected_status, '', '', '', '') mock_format_result.return_value = ('', '', '', '', '') cli_output = CliOutput() returned_items = cli_output._CliOutput__get_formatted_result_items( test_result) mock_format_status.assert_called_once_with(test_result.status) mock_format_result.assert_called_once_with( cli_output._CliOutput__get_formatted_payload(test_result), test_result.rtt, test_result.body_size, test_result.words, test_result.lines) self.assertIsInstance(returned_items, tuple) self.assertEqual(returned_items, return_expected)