2022-11-13 16:01:44 +00:00
|
|
|
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
|
2022-11-15 13:19:10 +00:00
|
|
|
|
|
|
|
@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]
|