Cleaner implementation of early handling of the '-c' command line switch.
--HG-- branch : explicit-ini-filename
This commit is contained in:
		
							parent
							
								
									c8264385ea
								
							
						
					
					
						commit
						b7f6a9f3fd
					
				|  | @ -685,6 +685,14 @@ class Config(object): | ||||||
|     pytest_load_initial_conftests.trylast = True |     pytest_load_initial_conftests.trylast = True | ||||||
| 
 | 
 | ||||||
|     def _initini(self, args): |     def _initini(self, args): | ||||||
|  |         parsed_args = self._parser.parse_known_args(args) | ||||||
|  |         if parsed_args.inifilename: | ||||||
|  |             iniconfig = py.iniconfig.IniConfig(parsed_args.inifilename) | ||||||
|  |             if 'pytest' in iniconfig.sections: | ||||||
|  |                 self.inicfg = iniconfig['pytest'] | ||||||
|  |             else: | ||||||
|  |                 self.inicfg = {} | ||||||
|  |         else: | ||||||
|             self.inicfg = getcfg(args, ["pytest.ini", "tox.ini", "setup.cfg"]) |             self.inicfg = getcfg(args, ["pytest.ini", "tox.ini", "setup.cfg"]) | ||||||
|         self._parser.addini('addopts', 'extra command line options', 'args') |         self._parser.addini('addopts', 'extra command line options', 'args') | ||||||
|         self._parser.addini('minversion', 'minimally required pytest version') |         self._parser.addini('minversion', 'minimally required pytest version') | ||||||
|  | @ -833,14 +841,6 @@ def exists(path, ignore=EnvironmentError): | ||||||
|         return False |         return False | ||||||
| 
 | 
 | ||||||
| def getcfg(args, inibasenames): | def getcfg(args, inibasenames): | ||||||
|     if "-c" in args: |  | ||||||
|         n = len(args) |  | ||||||
|         for i in range(1, n): |  | ||||||
|             if args[i - 1] == "-c" and not str(args[i]).startswith("-"): |  | ||||||
|                 iniconfig = py.iniconfig.IniConfig(args[i]) |  | ||||||
|                 if 'pytest' in iniconfig.sections: |  | ||||||
|                     return iniconfig['pytest'] |  | ||||||
|         return {} |  | ||||||
|     args = [x for x in args if not str(x).startswith("-")] |     args = [x for x in args if not str(x).startswith("-")] | ||||||
|     if not args: |     if not args: | ||||||
|         args = [py.path.local()] |         args = [py.path.local()] | ||||||
|  |  | ||||||
|  | @ -38,8 +38,7 @@ def pytest_addoption(parser): | ||||||
|                help="exit after first num failures or errors.") |                help="exit after first num failures or errors.") | ||||||
|     group._addoption('--strict', action="store_true", |     group._addoption('--strict', action="store_true", | ||||||
|                help="run pytest in strict mode, warnings become errors.") |                help="run pytest in strict mode, warnings become errors.") | ||||||
|     # This option is never used as such, see config.getcfg(). |     group._addoption("-c", metavar="file", type=str, dest="inifilename", | ||||||
|     group._addoption("-c", metavar="file", type=str, dest="_inifilename", |  | ||||||
|                help="load configuration from `file` instead of trying to locate one of the implicit configuration files.") |                help="load configuration from `file` instead of trying to locate one of the implicit configuration files.") | ||||||
| 
 | 
 | ||||||
|     group = parser.getgroup("collect", "collection") |     group = parser.getgroup("collect", "collection") | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue