1
+ from __future__ import annotations
2
+
1
3
import logging
2
4
import os
3
- from typing import Sequence
5
+ from typing import Callable , Generator , Sequence , Union
4
6
import pytest
5
7
import pytest_dependency # type: ignore
6
8
import tempfile
7
9
import xml .etree .ElementTree as ET
8
10
9
11
from lib import installer , pxe
10
- from lib .common import callable_marker , url_download , wait_for
12
+ from lib .common import callable_marker , ensure_type , url_download , wait_for
11
13
from lib .installer import AnswerFile
12
14
from lib .commands import local_cmd
13
15
@@ -39,7 +41,7 @@ def skip_package_source(version, package_source):
39
41
return True , "unknown source type {}" .format (package_source )
40
42
41
43
@pytest .fixture (scope = 'function' )
42
- def answerfile (request ) :
44
+ def answerfile (request : pytest . FixtureRequest ) -> Generator [ Union [ AnswerFile , None ], None , None ] :
43
45
"""
44
46
Makes an AnswerFile object available to test and other fixtures.
45
47
@@ -66,8 +68,8 @@ def answerfile(request):
66
68
return
67
69
68
70
# construct answerfile definition from option "base", and explicit bits
69
- answerfile_def = callable_marker ( marker . args [ 0 ], request )
70
- assert isinstance ( answerfile_def , AnswerFile )
71
+ marker_args = ensure_type ( tuple [ Union [ AnswerFile , Callable [..., AnswerFile ]]], marker . args )
72
+ answerfile_def = callable_marker ( marker_args [ 0 ], request )
71
73
72
74
yield answerfile_def
73
75
@@ -322,8 +324,8 @@ def xcpng_chained(request):
322
324
# take test name from mark
323
325
marker = request .node .get_closest_marker ("continuation_of" )
324
326
assert marker is not None , "xcpng_chained fixture requires 'continuation_of' marker"
325
- continuation_of = callable_marker ( marker . args [ 0 ], request )
326
- assert isinstance ( continuation_of , Sequence )
327
+ marker_args = ensure_type ( tuple [ Union [ Sequence [ dict ], Callable [..., Sequence [ dict ]]]], marker . args )
328
+ continuation_of = callable_marker ( marker_args [ 0 ], request )
327
329
328
330
vm_defs = [dict (name = vm_spec ['vm' ],
329
331
image_test = vm_spec ['image_test' ],
0 commit comments