Changeset View
Changeset View
Standalone View
Standalone View
swh/scanner/tests/conftest.py
# Copyright (C) 2020 The Software Heritage developers | # Copyright (C) 2020 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import asyncio | import asyncio | ||||
import os | import os | ||||
from pathlib import Path | from pathlib import Path | ||||
import shutil | import shutil | ||||
import aiohttp | import aiohttp | ||||
from aioresponses import aioresponses # type: ignore | from aioresponses import aioresponses # type: ignore | ||||
import pytest | import pytest | ||||
from swh.model.cli import model_of_dir | from swh.model.cli import model_of_dir | ||||
from swh.scanner.data import MerkleNodeInfo | from swh.scanner.data import MerkleNodeInfo | ||||
from swh.scanner.policy import QUERY_LIMIT | |||||
from .data import present_swhids | from .data import present_swhids | ||||
from .flask_api import create_app | from .flask_api import create_app | ||||
@pytest.fixture | @pytest.fixture | ||||
def mock_aioresponse(): | def mock_aioresponse(): | ||||
with aioresponses() as m: | with aioresponses() as m: | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | |||||
def source_tree(test_sample_folder): | def source_tree(test_sample_folder): | ||||
"""Generate a model.from_disk.Directory object from the test sample | """Generate a model.from_disk.Directory object from the test sample | ||||
folder | folder | ||||
""" | """ | ||||
return model_of_dir(str(test_sample_folder).encode()) | return model_of_dir(str(test_sample_folder).encode()) | ||||
@pytest.fixture(scope="function") | @pytest.fixture(scope="function") | ||||
def big_source_tree(tmp_path): | |||||
"""Generate a model.from_disk.Directory from a "big" temporary directory | |||||
(more than 1000 nodes) | |||||
""" | |||||
dir_ = tmp_path / "big-directory" | |||||
dir_.mkdir() | |||||
for i in range(0, QUERY_LIMIT + 1): | |||||
file_ = dir_ / f"file_{i}.org" | |||||
file_.touch() | |||||
dir_obj = model_of_dir(str(dir_).encode()) | |||||
assert len(dir_obj) > QUERY_LIMIT | |||||
return dir_obj | |||||
@pytest.fixture(scope="function") | |||||
def source_tree_policy(test_sample_folder_policy): | def source_tree_policy(test_sample_folder_policy): | ||||
"""Generate a model.from_disk.Directory object from the test sample | """Generate a model.from_disk.Directory object from the test sample | ||||
folder | folder | ||||
""" | """ | ||||
return model_of_dir(str(test_sample_folder_policy).encode()) | return model_of_dir(str(test_sample_folder_policy).encode()) | ||||
@pytest.fixture(scope="function") | @pytest.fixture(scope="function") | ||||
▲ Show 20 Lines • Show All 51 Lines • Show Last 20 Lines |