@given(u'a working Burp Suite installation')
def step_impl(context):
    logging.getLogger("requests").setLevel(logging.WARNING)
    burpprocess = start_burp(context)

    # Send a message to headless-scanner-driver extension and wait for response.
    # Communicates to the scanner driver using a magical port number.
    # See https://github.com/F-Secure/headless-scanner-driver for additional documentation

    proxydict = {'http': 'http://' + context.burp_proxy_address,
                 'https': 'https://' + context.burp_proxy_address}
    try:
        requests.get("http://localhost:1111", proxies=proxydict)
    except requests.exceptions.RequestException as e:
        kill_subprocess(burpprocess)
        assert False, "Could not fetch scan item status over %s (%s). Is the proxy listener on?" % (
            context.burp_proxy_address, e)
    proxy_message = read_next_json(burpprocess)
    if proxy_message is None:
        kill_subprocess(burpprocess)
        assert False, "Timed out communicating to headless-scanner-driver extension over %s. Is something else running there?" % context.burp_proxy_address

    # Shut down Burp Suite. Again, see the scanner driver plugin docs for further info.

    poll = select.poll()
    poll.register(burpprocess.stdout, select.POLLNVAL | select.POLLHUP)  # pylint: disable-msg=E1101
    try:
        requests.get("http://localhost:1112", proxies=proxydict)
    except requests.exceptions.RequestException as e:
        kill_subprocess(burpprocess)
        assert False, "Could not fetch scan results over %s (%s)" % (context.burp_proxy_address, e)
    descriptors = poll.poll(10000)
    if descriptors == []:
        kill_subprocess(burpprocess)
        assert False, "Burp Suite clean exit took more than 10 seconds, killed"
    assert True
Add 'pseudo' fields (e.g non-displayed fields) to the display.
dataset/ETHPy150Open F-Secure/mittn/mittn/headlessscanner/steps.py/step_impl--crossover with--dataset/ETHPy150Open rbarrois/mpdlcd/mpdlcd/lcdrunner.py/MpdRunner.add_pseudo_fields