Example #1
0
def test_file_examples(file_example, example, report):
    if example.is_skip:
        pytest.skip("skipping %s" % example.relpath)

    (status, duration, out, err) = _run_example(example)
    info("Example run in %s" % white("%.3fs" % duration))

    for line in out.split("\n"):
        if len(line) == 0 or line.startswith("Wrote "):
            continue
        info(line, label="PY")

    for line in err.split("\n"):
        if len(line) == 0:
            continue
        warn(line, label="PY")

    assert status != "timeout", "%s timed out" % example.relpath
    assert status == 0, "%s failed to run (exit code %s)" % (example.relpath,
                                                             status)

    if example.no_js:
        if not pytest.config.option.no_js:
            warn("skipping bokehjs for %s" % example.relpath)
    else:
        _assert_snapshot(example, "file://%s.html" % example.path_no_ext,
                         'file')

        if example.no_diff:
            warn("skipping image diff for %s" % example.relpath)
        else:
            _get_pdiff(example)
Example #2
0
def test_file_examples(file_example, example, report):
    if example.is_skip:
        pytest.skip("skipping %s" % example.relpath)

    (status, duration, out, err) = _run_example(example)
    info("Example run in %s" % white("%.3fs" % duration))

    for line in out.split("\n"):
        if len(line) == 0 or line.startswith("Wrote "):
            continue
        info(line, label="PY")

    for line in err.split("\n"):
        if len(line) == 0:
            continue
        warn(line, label="PY")

    assert status != "timeout", "%s timed out" % example.relpath
    assert status == 0, "%s failed to run (exit code %s)" % (example.relpath, status)

    if example.no_js:
        if not pytest.config.option.no_js:
            warn("skipping bokehjs for %s" % example.relpath)
    else:
        _assert_snapshot(example, "file://%s.html" % example.path_no_ext, 'file')

        if example.no_diff:
            warn("skipping image diff for %s" % example.relpath)
        else:
            _get_pdiff(example)
Example #3
0
def _get_pdiff(example):
    img_path, ref_path, diff_path = example.img_path, example.ref_path, example.diff_path
    trace("generated image: " + img_path)

    ref = example.fetch_ref()

    if not ref:
        warn("reference image %s doesn't exist" % example.ref_url)
    else:
        ref_dir = dirname(ref_path)
        if not exists(ref_dir):
            os.makedirs(ref_dir)

        with open(ref_path, "wb") as f:
            f.write(ref)

        trace("saved reference: " + ref_path)

        example.pixels = image_diff(diff_path, img_path, ref_path)
        if example.pixels != 0:
            comment = "dimensions don't match" if example.pixels == -1 else white(
                "%.02f%%" % example.pixels) + " of pixels"
            warn("generated and reference images differ: %s" % comment)
        else:
            ok("generated and reference images match")
Example #4
0
def _assert_snapshot(example, url, example_type):
    screenshot_path = example.img_path

    height = 2000 if example_type == 'notebook' else 1000
    wait = 30000

    start = time.time()
    result = get_phantomjs_screenshot(url, screenshot_path, 1000, wait, 1000, height)
    end = time.time()

    info("Example rendered in %s" % white("%.3fs" % (end - start)))

    success = result['success']
    timeout = result['timeout']
    errors = result['errors']
    resources = result['resources']

    no_errors = len(errors) == 0
    no_resources = len(resources) == 0

    if timeout:
        warn("%s: %s" % (red("TIMEOUT: "), "bokehjs did not finish in %s ms" % wait))

    if pytest.config.option.verbose:
        _print_phantomjs_output(result)

    assert success, "%s failed to load" % example.relpath
    assert no_resources, "%s failed with %d missing resources" % (example.relpath, len(resources))
    assert no_errors, "%s failed with %d errors" % (example.relpath, len(errors))
def _assert_snapshot(example, url, example_type):
    screenshot_path = example.img_path

    height = 2000 if example_type == 'notebook' else 1000
    wait = 30000

    start = time.time()
    result = get_phantomjs_screenshot(url, screenshot_path, 1000, wait, 1000,
                                      height)
    end = time.time()

    info("Example rendered in %s" % white("%.3fs" % (end - start)))

    success = result['success']
    timeout = result['timeout']
    errors = result['errors']
    resources = result['resources']

    no_errors = len(errors) == 0
    no_resources = len(resources) == 0

    if timeout:
        warn("%s: %s" %
             (red("TIMEOUT: "), "bokehjs did not finish in %s ms" % wait))

    if pytest.config.option.verbose:
        _print_phantomjs_output(result)

    assert success, "%s failed to load" % example.relpath
    assert no_resources, "%s failed with %d missing resources" % (
        example.relpath, len(resources))
    assert no_errors, "%s failed with %d errors" % (example.relpath,
                                                    len(errors))
Example #6
0
def _assert_snapshot(example, url, example_type):
    screenshot_path = example.img_path

    width = 1000
    height = 2000 if example_type == 'notebook' else 1000

    local_wait = 100
    global_wait = 15000

    start = time.time()
    result = get_screenshot(url, screenshot_path, local_wait, global_wait, width, height)
    end = time.time()

    info("Example rendered in %s" % white("%.3fs" % (end - start)))

    success = result['success']
    timeout = result['timeout']
    errors = result['errors']

    no_errors = len(errors) == 0

    if timeout:
        warn("%s %s" % (red("TIMEOUT:"), "bokehjs did not finish in %s ms" % global_wait))

    if pytest.config.option.verbose:
        _print_webengine_output(result)

    assert success, "%s failed to load" % example.relpath
    assert no_errors, "%s failed with %d errors" % (example.relpath, len(errors))
Example #7
0
def _assert_snapshot(example, url, example_type):
    screenshot_path = example.img_path

    width = 1000
    height = 2000 if example_type == 'notebook' else 1000

    local_wait = 100
    global_wait = 15000

    start = time.time()
    result = get_screenshot(url, screenshot_path, local_wait, global_wait, width, height)
    end = time.time()

    info("Example rendered in %s" % white("%.3fs" % (end - start)))

    success = result['success']
    timeout = result['timeout']
    errors = result['errors']

    no_errors = len(errors) == 0

    if timeout:
        warn("%s %s" % (red("TIMEOUT:"), "bokehjs did not finish in %s ms" % global_wait))

    if pytest.config.option.verbose:
        _print_webengine_output(result)

    assert success, "%s failed to load" % example.relpath
    assert no_errors, "%s failed with %d errors" % (example.relpath, len(errors))
Example #8
0
def _get_pdiff(example):
    img_path, ref_path, diff_path = example.img_path, example.ref_path, example.diff_path
    trace("generated image: " + img_path)

    ref = example.fetch_ref()

    if not ref:
        warn("reference image %s doesn't exist" % example.ref_url)
    else:
        ref_dir = dirname(ref_path)
        if not exists(ref_dir):
            os.makedirs(ref_dir)

        with open(ref_path, "wb") as f:
            f.write(ref)

        trace("saved reference: " + ref_path)

        example.pixels = image_diff(diff_path, img_path, ref_path)
        if example.pixels != 0:
            comment = "dimensions don't match" if example.pixels == -1 else white("%.02f%%" % example.pixels) + " of pixels"
            warn("generated and reference images differ: %s" % comment)
        else:
            ok("generated and reference images match")