mirror of
https://github.com/laramies/theHarvester.git
synced 2026-09-23 01:54:56 +02:00
57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
import pytest
|
|
from theHarvester.discovery import mojeek
|
|
|
|
class TestMojeekSearch:
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_process_and_parsing(self, monkeypatch):
|
|
called = {}
|
|
|
|
async def fake_fetch_all(urls, headers=None, proxy=False):
|
|
called["urls"] = urls
|
|
called["headers"] = headers
|
|
called["proxy"] = proxy
|
|
return [
|
|
"Contact admin@exemple.com sur www.exemple.com \n",
|
|
" dev@exemple.com est présent sur api.exemple.com \n"
|
|
]
|
|
|
|
import theHarvester.lib.core as core_module
|
|
monkeypatch.setattr(core_module.AsyncFetcher, "fetch_all", fake_fetch_all)
|
|
monkeypatch.setattr(core_module.Core, "get_user_agent", staticmethod(lambda: "UA"), raising=True)
|
|
|
|
search = mojeek.SearchMojeek(word="exemple.com", limit=20)
|
|
await search.process(proxy=True)
|
|
|
|
expected_urls = [
|
|
"https://www.mojeek.com/search?q=%40exemple.com&s=0",
|
|
"https://www.mojeek.com/search?q=%40exemple.com&s=10"
|
|
]
|
|
|
|
assert any("mojeek.com" in url for url in called["urls"])
|
|
|
|
emails = await search.get_emails()
|
|
hosts = await search.get_hostnames()
|
|
|
|
assert "admin@exemple.com" in emails
|
|
assert "dev@exemple.com" in emails
|
|
assert "www.exemple.com" in hosts
|
|
assert "api.exemple.com" in hosts
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_pagination_limit(self, monkeypatch):
|
|
captured = {}
|
|
|
|
async def fake_fetch_all(urls, headers=None, proxy=False):
|
|
captured["urls"] = urls
|
|
return [""] * len(urls)
|
|
|
|
import theHarvester.lib.core as core_module
|
|
monkeypatch.setattr(core_module.AsyncFetcher, "fetch_all", fake_fetch_all)
|
|
monkeypatch.setattr(core_module.Core, "get_user_agent", staticmethod(lambda: "UA"), raising=True)
|
|
|
|
search = mojeek.SearchMojeek(word="exemple.com", limit=10)
|
|
await search.process()
|
|
|
|
assert len(captured["urls"]) == 1
|