コード例 #1
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_pretty_print_http():
    h = Http()
    with patch('builtins.print', MagicMock()) as mock_print:
        with patch('output.Http.get_request',
                   MagicMock(return_value='x')) as mock_get_request:
            h.pretty_print_http('p')
            mock_get_request.assert_called_once_with('p')
            mock_print.assert_has_calls([call(mock_get_request.return_value)])
コード例 #2
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_get_request_no_body():
    h = Http()
    p = MagicMock(method='GET',
                  url='http://twosixlabs.com/hello.xml',
                  headers={
                      'a': 'b',
                      'c': 'd'
                  },
                  body=None)
    ret = h.get_request(p)
    assert (
        ret ==
        'GET /hello.xml HTTP/1.1\r\nHost: twosixlabs.com\r\na: b\r\nc: d\r\n\r\n'
    )
コード例 #3
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_output_send_request():
    h = Http()
    with patch('output.Http.send_request', MagicMock()) as mock_send:
        with patch('output.Http.get_request', MagicMock(return_value='test')):
            with patch(
                    'requests.Request',
                    MagicMock(return_values=MagicMock(prepare=MagicMock(
                        return_value='test')))) as mock_request:
                h.options['send_request'] = False
                h.output(['a', 'b', 'c'])
                mock_send.assert_not_called()
                mock_request.assert_called_once_with(
                    'GET',
                    'http://127.0.0.1:80/',
                    params={'param': ['a', 'b', 'c']},
                    headers=STANDARD_HEADERS,
                    data='')
コード例 #4
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_output_use_body():
    h = Http()
    with patch('output.Http.send_request', MagicMock()) as mock_send:
        with patch('output.Http.get_request', MagicMock(return_value='test')):
            with patch(
                    'requests.Request',
                    MagicMock(return_values=MagicMock(prepare=MagicMock(
                        return_value='test')))) as mock_request:
                h.options['use_body'] = True
                h.output(['a', 'b', 'c'])
                mock_send.assert_called_once_with(
                    mock_request.return_value.prepare.return_value)
                mock_request.assert_called_once_with('GET',
                                                     'http://127.0.0.1:80/',
                                                     params={},
                                                     headers=STANDARD_HEADERS,
                                                     data='a\nb\nc')
コード例 #5
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_output_number_format():
    h = Http()
    with patch('output.Http.send_request', MagicMock()) as mock_send:
        with patch('output.Http.get_request', MagicMock(return_value='test')):
            with patch(
                    'requests.Request',
                    MagicMock(return_values=MagicMock(prepare=MagicMock(
                        return_value='test')))) as mock_request:
                h.options['number_format'] = 'hexadecimal'
                h.output([1, 2])
                mock_send.assert_called_once_with(
                    mock_request.return_value.prepare.return_value)
                mock_request.assert_called_once_with(
                    'GET',
                    'http://127.0.0.1:80/',
                    params={'param': ['0x1', '0x2']},
                    headers=STANDARD_HEADERS,
                    data='')
コード例 #6
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_output_url():
    h = Http()
    with patch('output.Http.send_request', MagicMock()) as mock_send:
        with patch('output.Http.get_request', MagicMock(return_value='test')):
            with patch(
                    'requests.Request',
                    MagicMock(return_values=MagicMock(prepare=MagicMock(
                        return_value='test')))) as mock_request:
                h.options['url'] = 'https://twosixlabs.com:8080'
                h.output(['a', 'b', 'c'])
                mock_send.assert_called_once_with(
                    mock_request.return_value.prepare.return_value)
                mock_request.assert_called_once_with(
                    'GET',
                    'https://twosixlabs.com:8080',
                    params={'param': ['a', 'b', 'c']},
                    headers=STANDARD_HEADERS,
                    data='')
コード例 #7
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_output_content_type():
    h = Http()
    with patch('output.Http.send_request', MagicMock()) as mock_send:
        with patch('output.Http.get_request', MagicMock(return_value='test')):
            with patch(
                    'requests.Request',
                    MagicMock(return_values=MagicMock(prepare=MagicMock(
                        return_value='test')))) as mock_request:
                h.options['content_type'] = 'text/xml'
                h.output(['a', 'b', 'c'])
                headers = dict(STANDARD_HEADERS)
                headers['Content-Type'] = 'text/xml'
                mock_send.assert_called_once_with(
                    mock_request.return_value.prepare.return_value)
                mock_request.assert_called_once_with(
                    'GET',
                    'http://127.0.0.1:80/',
                    params={'param': ['a', 'b', 'c']},
                    headers=headers,
                    data='')
コード例 #8
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_output_n_requests():
    h = Http()
    with patch('output.Http.get_request', MagicMock(return_value='test')):
        with patch('multiprocessing.pool.ThreadPool') as mock_pool:
            with patch(
                    'requests.Request',
                    MagicMock(return_values=MagicMock(prepare=MagicMock(
                        return_value='test')))) as mock_request:
                h.options['n_requests'] = 5
                h.output(['a', 'b', 'c'])
                mock_pool.assert_called_once_with(1)
                mock_pool.return_value.map.assert_called_once_with(
                    h.send_request,
                    [mock_request.return_value.prepare.return_value] * 5)
                mock_pool.return_value.close.assert_called_once_with()
                mock_pool.return_value.join.assert_called_once_with()
                mock_request.assert_called_once_with(
                    'GET',
                    'http://127.0.0.1:80/',
                    params={'param': ['a', 'b', 'c']},
                    headers=STANDARD_HEADERS,
                    data='')
コード例 #9
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_output_no_spread_params_final_separator():
    h = Http()
    with patch('output.Http.send_request', MagicMock()) as mock_send:
        with patch('output.Http.get_request', MagicMock(return_value='test')):
            with patch(
                    'requests.Request',
                    MagicMock(return_values=MagicMock(prepare=MagicMock(
                        return_value='test')))) as mock_request:
                h.options['spread_params'] = False
                h.options['final_separator'] = True
                h.output(['a', 'b', 'c'])
                mock_send.assert_called_once_with(
                    mock_request.return_value.prepare.return_value)
                mock_request.assert_called_once_with(
                    'GET',
                    'http://127.0.0.1:80/',
                    params={'param': 'a\nb\nc\n'},
                    headers=STANDARD_HEADERS,
                    data='')
コード例 #10
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_convert_item_non_int():
    h = Http()
    for item in ['a', [1, 2, 3]]:
        assert h.convert_item(item) == str(item)
コード例 #11
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_convert_item_ints_octal():
    h = Http()
    h.options.set_value('number_format', 'octal')
    for item in [7, 8, 15, 20]:
        assert h.convert_item(item) == oct(item)
コード例 #12
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_convert_item_ints_hexadecimal():
    h = Http()
    h.options.set_value('number_format', 'hexadecimal')
    for item in [7, 8, 15, 20]:
        assert h.convert_item(item) == hex(item)
コード例 #13
0
ファイル: test_http.py プロジェクト: piroflip/acsploit
def test_send_request():
    h = Http()
    with patch('requests.Session', MagicMock()) as mock_session:
        h.send_request('p')
        mock_session.return_value.send.assert_called_once_with('p')
        mock_session.return_value.close.assert_called_once_with()