mirror of
https://github.com/soxoj/maigret.git
synced 2026-05-06 22:19:01 +00:00
92 lines
2.2 KiB
Python
92 lines
2.2 KiB
Python
import glob
|
|
import logging
|
|
import os
|
|
|
|
import pytest
|
|
from _pytest.mark import Mark
|
|
|
|
from maigret.sites import MaigretDatabase
|
|
from maigret.maigret import setup_arguments_parser
|
|
from maigret.settings import Settings
|
|
|
|
|
|
CUR_PATH = os.path.dirname(os.path.realpath(__file__))
|
|
JSON_FILE = os.path.join(CUR_PATH, '../maigret/resources/data.json')
|
|
SETTINGS_FILE = os.path.join(CUR_PATH, '../maigret/resources/settings.json')
|
|
TEST_JSON_FILE = os.path.join(CUR_PATH, 'db.json')
|
|
LOCAL_TEST_JSON_FILE = os.path.join(CUR_PATH, 'local.json')
|
|
empty_mark = Mark('', (), {})
|
|
|
|
|
|
RESULTS_EXAMPLE = {
|
|
'Reddit': {
|
|
'cookies': None,
|
|
'parsing_enabled': False,
|
|
'url_main': 'https://www.reddit.com/',
|
|
'username': 'Skyeng',
|
|
},
|
|
'GooglePlayStore': {
|
|
'cookies': None,
|
|
'http_status': 200,
|
|
'is_similar': False,
|
|
'parsing_enabled': False,
|
|
'rank': 1,
|
|
'url_main': 'https://play.google.com/store',
|
|
'url_user': 'https://play.google.com/store/apps/developer?id=Skyeng',
|
|
'username': 'Skyeng',
|
|
},
|
|
}
|
|
|
|
|
|
def by_slow_marker(item):
|
|
return item.get_closest_marker('slow', default=empty_mark).name
|
|
|
|
|
|
def pytest_collection_modifyitems(items):
|
|
items.sort(key=by_slow_marker, reverse=False)
|
|
|
|
|
|
def get_test_reports_filenames():
|
|
return glob.glob(os.path.join('report_*'), recursive=False)
|
|
|
|
|
|
def remove_test_reports():
|
|
reports_list = get_test_reports_filenames()
|
|
for f in reports_list:
|
|
os.remove(f)
|
|
logging.error(f'Removed test reports {reports_list}')
|
|
|
|
|
|
@pytest.fixture(scope='session')
|
|
def default_db():
|
|
return MaigretDatabase().load_from_file(JSON_FILE)
|
|
|
|
|
|
@pytest.fixture(scope='function')
|
|
def test_db():
|
|
return MaigretDatabase().load_from_file(TEST_JSON_FILE)
|
|
|
|
|
|
@pytest.fixture(scope='function')
|
|
def local_test_db():
|
|
return MaigretDatabase().load_from_file(LOCAL_TEST_JSON_FILE)
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def reports_autoclean():
|
|
remove_test_reports()
|
|
yield
|
|
remove_test_reports()
|
|
|
|
|
|
@pytest.fixture(scope='session')
|
|
def argparser():
|
|
settings = Settings()
|
|
settings.load([SETTINGS_FILE])
|
|
return setup_arguments_parser(settings)
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def httpserver_listen_address():
|
|
return ("localhost", 8989)
|