def test_site_url_detector(): db = MaigretDatabase() db.load_from_json(EXAMPLE_DB) assert (db.sites[0].url_regexp.pattern == r'^https?://(www.)?forum\.amperka\.ru/members/\?username=(.+?)$') assert (db.sites[0].detect_username( 'http://forum.amperka.ru/members/?username=test') == 'test')
def test_site_strip_engine_data(): db = MaigretDatabase() db.load_from_json(EXAMPLE_DB) amperka = db.sites[0] amperka_stripped = amperka.strip_engine_data() assert amperka_stripped.json == EXAMPLE_DB['sites']['Amperka']
def test_site_json_dump(): db = MaigretDatabase() db.load_from_json(EXAMPLE_DB) init_keys = EXAMPLE_DB['sites']['Amperka'].keys() # contains engine data obj_keys = db.sites[0].json.keys() assert set(init_keys).issubset(set(obj_keys))
def test_load_valid_db(): db = MaigretDatabase() db.load_from_json(EXAMPLE_DB) assert len(db.sites) == 1 assert len(db.engines) == 1 assert db.sites[0].name == 'Amperka' assert db.engines[0].name == 'XenForo'
def test_site_strip_engine_data_with_site_prior_updates(): db = MaigretDatabase() UPDATED_EXAMPLE_DB = dict(EXAMPLE_DB) UPDATED_EXAMPLE_DB['sites']['Amperka']['absenceStrs'] = ["test"] db.load_from_json(UPDATED_EXAMPLE_DB) amperka = db.sites[0] amperka_stripped = amperka.strip_engine_data() assert amperka_stripped.json == UPDATED_EXAMPLE_DB['sites']['Amperka']
def test_site_correct_initialization(): db = MaigretDatabase() db.load_from_json(EXAMPLE_DB) xenforo = db.engines[0] assert xenforo.name == 'XenForo' assert xenforo.site['checkType'] == 'message' amperka = db.sites[0] assert amperka.name == 'Amperka' assert amperka.check_type == 'message'
def test_self_check_db_positive_disable(): logger = Mock() db = MaigretDatabase() db.load_from_json(EXAMPLE_DB) assert db.sites[0].disabled == False loop = asyncio.get_event_loop() loop.run_until_complete(self_check(db, db.sites_dict, logger, silent=True)) assert db.sites[0].disabled == True
def test_saving_site_error(): db = MaigretDatabase() DB = dict(EXAMPLE_DB) DB['sites']['Amperka']['errors'] = {'error1': 'text1'} db.load_from_json(DB) amperka = db.sites[0] assert len(amperka.errors) == 2 assert amperka.strip_engine_data().errors == {'error1': 'text1'} assert amperka.strip_engine_data().json['errors'] == {'error1': 'text1'}
def test_self_check_db_negative_enabled(): logger = Mock() db = MaigretDatabase() db.load_from_json(EXAMPLE_DB) db.sites[0].disabled = False db.sites[0].username_claimed = 'Facebook' assert db.sites[0].disabled == False loop = asyncio.get_event_loop() loop.run_until_complete(self_check(db, db.sites_dict, logger, silent=True)) assert db.sites[0].disabled == False