@@ -477,6 +477,15 @@ def parse_setoption(self, args, option):
477
477
return getattr (parsedoption , FILE_OR_DIR )
478
478
479
479
def parse_known_args (self , args ):
480
+ """parses and returns a namespace object with known arguments at this
481
+ point.
482
+ """
483
+ return self .parse_known_and_unknown_args (args )[0 ]
484
+
485
+ def parse_known_and_unknown_args (self , args ):
486
+ """parses and returns a namespace object with known arguments, and
487
+ the remaining arguments unknown at this point.
488
+ """
480
489
optparser = self ._getparser ()
481
490
args = [str (x ) for x in args ]
482
491
return optparser .parse_known_args (args )
@@ -879,9 +888,8 @@ def pytest_load_initial_conftests(self, early_config):
879
888
self .pluginmanager ._set_initial_conftests (early_config .known_args_namespace )
880
889
881
890
def _initini (self , args ):
882
- parsed_args , extra_args = self ._parser .parse_known_args (args )
883
- r = determine_setup (parsed_args .inifilename ,
884
- parsed_args .file_or_dir + extra_args )
891
+ ns , unknown_args = self ._parser .parse_known_and_unknown_args (args )
892
+ r = determine_setup (ns .inifilename , ns .file_or_dir + unknown_args )
885
893
self .rootdir , self .inifile , self .inicfg = r
886
894
self ._parser .extra_info ['rootdir' ] = self .rootdir
887
895
self ._parser .extra_info ['inifile' ] = self .inifile
@@ -901,8 +909,7 @@ def _preparse(self, args, addopts=True):
901
909
except ImportError as e :
902
910
self .warn ("I2" , "could not load setuptools entry import: %s" % (e ,))
903
911
self .pluginmanager .consider_env ()
904
- ns , _ = self ._parser .parse_known_args (args )
905
- self .known_args_namespace = ns
912
+ self .known_args_namespace = ns = self ._parser .parse_known_args (args )
906
913
if self .known_args_namespace .confcutdir is None and self .inifile :
907
914
confcutdir = py .path .local (self .inifile ).dirname
908
915
self .known_args_namespace .confcutdir = confcutdir
0 commit comments