tests: add first unit test case with pytest (#91)

pull/475/head
NyaMisty 1 year ago committed by GitHub
parent bd6fb48e6a
commit f57f50f7f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,3 +1,4 @@
import argparse
import datetime
import http
@ -18,10 +19,7 @@ from wikiteam3.dumpgenerator.config import Config, newConfig
from typing import *
def getParameters(params=None) -> Tuple[Config, Dict]:
if not params:
params = sys.argv
def getArgumentParser():
parser = argparse.ArgumentParser(description="")
# General params
@ -106,8 +104,14 @@ def getParameters(params=None) -> Tuple[Config, Dict]:
action="store_true",
help="Avoid resuming, discard failing wikis quickly. Useful only for mass downloads.",
)
return parser
def getParameters(params=None) -> Tuple[Config, Dict]:
# if not params:
# params = sys.argv
args = parser.parse_args()
parser = getArgumentParser()
args = parser.parse_args(params)
# print (args)
# Don't mix download params and meta info params

@ -35,6 +35,9 @@ config = {
'''
@dataclasses.dataclass
class Config:
def asdict(self):
return dataclasses.asdict(self)
# General params
delay: float = 0.0
retries: int = 0

@ -0,0 +1,16 @@
import json
import pytest
import requests
from wikiteam3.dumpgenerator.test.test_config import get_config
from .site_info import saveSiteInfo
def test_mediawiki_1_16():
with get_config('1.16.5') as config:
sess = requests.Session()
saveSiteInfo(config, sess)
with open(config.path + '/siteinfo.json', 'r') as f:
siteInfoJson = json.load(f)
assert siteInfoJson['query']['general']['generator'] == "MediaWiki 1.16.5"

@ -0,0 +1,30 @@
import copy
import tempfile
from contextlib import contextmanager
from wikiteam3.dumpgenerator.cli import getParameters
from wikiteam3.dumpgenerator.config import newConfig
CONFIG_CACHE = {}
@contextmanager
def _new_config_from_parameter(params):
_params = tuple(params)
if _params in CONFIG_CACHE:
return CONFIG_CACHE[_params]
config, _ = getParameters(['--path=.', '--xml'] + list(params))
CONFIG_CACHE[_params] = config
_config = newConfig(copy.deepcopy(config.asdict()))
try:
with tempfile.TemporaryDirectory(prefix='wikiteam3test_') as tmpdir:
_config.path = tmpdir
yield _config
finally:
pass
def get_config(mediawiki_ver, api=True):
assert api == True
if mediawiki_ver == '1.16.5':
return _new_config_from_parameter([
"--api", "http://group0.mediawiki.demo.save-web.org/mediawiki-1.16.5/api.php",
])
Loading…
Cancel
Save