def test_create_dom_snapshot_loop_timeout():
    script = mock.MagicMock()
    script.run.return_value = ProcessPageResult(ProcessPageStatus.WIP)
    script.poll_result.return_value = ProcessPageResult(ProcessPageStatus.WIP)

    with pytest.raises(DomSnapshotTimeout):
        create_dom_snapshot_loop(script, 5, 2, 3)
def test_create_dom_snapshot_loop_raises_if_poll_result_returns_error():
    script = mock.MagicMock()
    script.run.return_value = ProcessPageResult(ProcessPageStatus.WIP)
    script.poll_result.return_value = ProcessPageResult(
        ProcessPageStatus.ERROR, error="OOPS")

    with pytest.raises(DomSnapshotScriptError, match="OOPS"):
        create_dom_snapshot_loop(script, time() + 10, 2, 3)
def test_create_dom_snapshot_loop_success():
    script = mock.MagicMock()
    script.run.return_value = ProcessPageResult(ProcessPageStatus.WIP)
    script.poll_result.return_value = ProcessPageResult(
        ProcessPageStatus.SUCCESS, value={"a": "b"})

    res = create_dom_snapshot_loop(script, time() + 1, 2, 3)

    assert res == {"a": "b"}
def test_create_dom_snapshot_loop_calls_poll_result_with_chunk_byte_length():
    script = mock.MagicMock()
    script.run.return_value = ProcessPageResult(ProcessPageStatus.WIP)
    script.poll_result.return_value = ProcessPageResult(
        ProcessPageStatus.SUCCESS, value={})

    create_dom_snapshot_loop(script, time() + 1, 2, 3)

    calls = script.poll_result.call_args_list
    assert calls == [mock.call(3)]
示例#5
0
def test_create_dom_snapshot_loop_chunks():
    script = mock.MagicMock()
    script.run.return_value = ProcessPageResult(ProcessPageStatus.WIP)
    script.poll_result.side_effect = [
        ProcessPageResult(ProcessPageStatus.SUCCESS_CHUNKED, done=False, value='{"a"'),
        ProcessPageResult(ProcessPageStatus.SUCCESS_CHUNKED, done=True, value=':"b"}'),
    ]

    res = create_dom_snapshot_loop(script, time() + 1, 1, 3)

    assert res == {"a": "b"}
示例#6
0
def test_create_dom_snapshot_loop_calls_run_with_args():
    script = mock.MagicMock()
    script.run.return_value = ProcessPageResult(ProcessPageStatus.WIP)
    script.poll_result.return_value = ProcessPageResult(
        ProcessPageStatus.SUCCESS, value={}
    )

    create_dom_snapshot_loop(
        script, time() + 1, 2, 3, dont_fetch_resources=True, skip_resources=[]
    )

    calls = script.run.call_args_list
    assert calls == [mock.call(dont_fetch_resources=True, skip_resources=[])]
def test_dom_snapshot_dont_fetch_resources(driver):
    driver.get("https://applitools.github.io/demo/TestPages/SimpleTestPage")
    script = DomSnapshotScriptGeneric(driver)

    run_res = script.run(dont_fetch_resources=True)
    for _ in range(10):
        poll_res = script.poll_result()
        if poll_res.status is ProcessPageStatus.WIP:
            sleep(1)
        else:
            break

    assert run_res == ProcessPageResult(ProcessPageStatus.WIP)
    assert poll_res.status == ProcessPageStatus.SUCCESS
    assert poll_res.value["blobs"] == []
    assert poll_res.value["resourceUrls"] == [picture_url]
def test_dom_snapshot_default(driver):
    driver.get("https://applitools.github.io/demo/TestPages/SimpleTestPage")
    script = DomSnapshotScriptGeneric(driver)

    run_res = script.run()
    for _ in range(10):
        poll_res = script.poll_result()
        if poll_res.status is ProcessPageStatus.WIP:
            sleep(1)
        else:
            break

    assert run_res == ProcessPageResult(ProcessPageStatus.WIP)
    assert poll_res.status == ProcessPageStatus.SUCCESS
    assert poll_res.value["resourceUrls"] == []
    assert len(poll_res.value["blobs"][0]["value"]) == 0
    assert "compressed" not in poll_res.value["blobs"][0]
def test_dom_snapshot_serialize_chunks(driver):
    driver.get("https://applitools.github.io/demo/TestPages/SimpleTestPage")
    script = DomSnapshotScriptGeneric(driver)

    run_res = script.run(serialize_resources=True)
    for _ in range(10):
        poll_res = script.poll_result(chunk_byte_length=100)
        if poll_res.status is ProcessPageStatus.WIP:
            sleep(1)
        else:
            break

    assert run_res == ProcessPageResult(ProcessPageStatus.WIP)
    assert poll_res.status == ProcessPageStatus.SUCCESS_CHUNKED
    assert poll_res.done is False
    assert type(poll_res.value) is Text
    assert len(poll_res.value) == 100
def test_dom_snapshot_compressed_serialized(driver):
    driver.get("https://applitools.github.io/demo/TestPages/SimpleTestPage")
    script = DomSnapshotScriptGeneric(driver)

    run_res = script.run(compress_resources=True, serialize_resources=True)
    for _ in range(10):
        poll_res = script.poll_result()
        if poll_res.status is ProcessPageStatus.WIP:
            sleep(1)
        else:
            break

    assert run_res == ProcessPageResult(ProcessPageStatus.WIP)
    assert poll_res.status == ProcessPageStatus.SUCCESS
    assert poll_res.value["resourceUrls"] == []
    assert poll_res.value["blobs"][0]["compressed"] is True
    assert len(poll_res.value["blobs"][0]["value"]) == 28900
    serialized = poll_res.value["blobs"][0]["value"]
    compressed = base64.b64decode(serialized)
    pic = zlib.decompress(compressed)
    assert len(pic) == 22721