import pytest import os import json import solo_turnier.html_parser @pytest.fixture(scope='module', params=["1", '2']) def dataProviderHtmlParser(request): variant = request.param dir = os.path.join(os.path.dirname(__file__), 'html_parser', variant) htmlFile = os.path.join(dir, 'erg.htm') jsonFile = os.path.join(dir, 'expected.json') with open(htmlFile, 'r') as fp: html = fp.read() with open(jsonFile, 'r') as fp: jsonContent = json.load(fp) return (html, jsonContent) def test_extractDataFromHtml(dataProviderHtmlParser): htmlString = dataProviderHtmlParser[0] expected = dataProviderHtmlParser[1] parser = solo_turnier.html_parser.HtmlParser() actualResult = parser.parseString(htmlString) assert actualResult == expected @pytest.fixture(params=range(5)) def fixture_guessDataFromTitle(request): cases = { '09.07.2022 - ETW, Solos Jun. Beginner Jive': { 'class_': 'Beg.', 'dance': 'Jive', 'group': 'Jun.' }, '09.07.2022 - ETW, Solos Jun. Newc./Beg. Rumba': { 'class_': 'Newc./Beg.', 'dance': 'Rumba', 'group': 'Jun.' }, '09.07.2022 - ETW, Solos Kin./Jun. Beginner Cha Cha': { 'class_': 'Beg.', 'dance': 'Cha Cha', 'group': 'Kin./Jun.' }, '09.07.2022 - ETW, Solos Kin. Newcomer Samba': { 'class_': 'Newc.', 'dance': 'Samba', 'group': 'Kin.' }, '09.07.2022 - ETW, Solos Jugend Beg./Adv. Wiener Walzer': { 'class_': 'Beg./Adv.', 'dance': 'Wiener Walzer', 'group': 'Jug.' }, } keys = list(cases.keys()) key = keys[request.param] return (key, cases[key]) def test_guessDataFromTitle(fixture_guessDataFromTitle): parser = solo_turnier.html_parser.HtmlParser() ret = parser.guessDataFromHtmlTitle(fixture_guessDataFromTitle[0]) assert ret == fixture_guessDataFromTitle[1]