crawlee-python/tests/unit/server_endpoints.py

165 lines
3.4 KiB
Python

# Test server response content for testing
HELLO_WORLD = b"""\
<html><head>
<title>Hello, world!</title>
</head>
<body>
</body></html>"""
START_ENQUEUE = b"""\
<html><head>
<title>Hello</title>
</head>
<body>
<a href="/sub_index" class="foo">Link 1</a>
<a href="/page_1">Link 2</a>
<a href="mailto:test@test.com">test@test.com</a>
</body></html>"""
START_ENQUEUE_NON_HREF = """\
<html><head>
<base href="{host}/base_subpath/">
<title>Hello</title>
</head>
<body>
<a href="/page_3">Link A</a>
<a href="/page_2">Link B</a>
<img src="image_1"/>
<img src="/image_2"/>
</body></html>"""
SECONDARY_INDEX = b"""\
<html><head>
<title>Hello</title>
</head>
<body>
<a href="/page_3">Link 3</a>
<a href="/page_2">Link 4</a>
<a href="/base_page">Base Page</a>
</body></html>"""
BASE_INDEX = """\
<html><head>
<base href="{host}/base_subpath/">
<base href="{host}/sub_index/">
<title>Hello</title>
</head>
<body>
<a href="page_5">Link 5</a>
<a href="/page_4">Link 6</a>
</body></html>"""
INCAPSULA = b"""\
<html><head>
<title>Hello</title>
</head>
<body>
<iframe src=Test_Incapsula_Resource>
</iframe>
</body></html>"""
PROBLEMATIC_LINKS = b"""\
<html><head>
<title>Hello</title>
</head>
<body>
<a href="https://budplaceholder.com/">Placeholder</a>
<a href="mailto:test@test.com">test@test.com</a>
<a href=https://avatars.githubusercontent.com/apify>Apify avatar/a>
</body></html>"""
NON_HREF_LINKS = b"""\
<html><head>
<title>Hello</title>
</head>
<body>
<a href="/page_1"></a>
<li data-href="/page_2"></li>
</body></html>
"""
GENERIC_RESPONSE = b"""\
<html><head>
<title>Hello</title>
</head>
<body>
Insightful content
</body></html>"""
ROBOTS_TXT = b"""\
User-agent: *
Disallow: *deny_all/
Disallow: /page_
crawl-delay: 10
User-agent: Googlebot
Disallow: *deny_googlebot/
crawl-delay: 1
user-agent: Mozilla
crawl-delay: 2
sitemap: http://not-exists.com/sitemap_1.xml
sitemap: http://not-exists.com/sitemap_2.xml"""
INFINITE_SCROLL = b"""\
<!DOCTYPE html>
<html>
<body>
<div id="content"></div>
<script>
let page = 0;
let loading = false;
for (let i = 0; i < 10; i++) {
const div = document.createElement('div');
div.className = 'item';
div.style.height = '200px';
div.textContent = 'Item ' + (i + 1);
document.getElementById('content').appendChild(div);
}
async function loadMore() {
if (loading || page >= 3) return;
loading = true;
page++;
await new Promise(resolve => setTimeout(resolve, 100));
for (let i = 0; i < 10; i++) {
const div = document.createElement('div');
div.className = 'item';
div.style.height = '200px';
div.textContent = 'Item ' + (page * 10 + i + 1);
document.getElementById('content').appendChild(div);
}
loading = false;
}
window.addEventListener('scroll', () => {
if (window.innerHeight + window.scrollY >= document.body.offsetHeight - 100) {
loadMore();
}
});
</script>
</body>
</html>
"""
RESOURCE_LOADING_PAGE = b"""\
<!DOCTYPE html>
<html>
<head>
<script src="/server_static/test.js"></script>
</head>
<body>
<img src="/server_static/test.png" />
</body>
</html>
"""