fix: avoid empty keys for importer
when keys come in from command line params, the arg parser may have an empty value. which we need to avoid here
This commit is contained in:
		
							parent
							
								
									65bbc95ae2
								
							
						
					
					
						commit
						6c94b13b12
					
				
					 2 changed files with 17 additions and 0 deletions
				
			
		|  | @ -486,6 +486,11 @@ class ImportHandler(GenericHandler): | ||||||
| 
 | 
 | ||||||
|         kwargs = self.get_importer_kwargs(key, **kwargs) |         kwargs = self.get_importer_kwargs(key, **kwargs) | ||||||
|         kwargs['handler'] = self |         kwargs['handler'] = self | ||||||
|  | 
 | ||||||
|  |         # nb. default logic should (normally) determine keys | ||||||
|  |         if 'keys' in kwargs and not kwargs['keys']: | ||||||
|  |             del kwargs['keys'] | ||||||
|  | 
 | ||||||
|         factory = self.importers[key] |         factory = self.importers[key] | ||||||
|         return factory(self.config, **kwargs) |         return factory(self.config, **kwargs) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -169,6 +169,18 @@ class TestImportHandler(DataTestCase): | ||||||
|         importer = handler.get_importer('Setting', model_class=model.Setting) |         importer = handler.get_importer('Setting', model_class=model.Setting) | ||||||
|         self.assertIsInstance(importer, Importer) |         self.assertIsInstance(importer, Importer) | ||||||
| 
 | 
 | ||||||
|  |         # specifying empty keys | ||||||
|  |         handler.importers['Setting'] = Importer | ||||||
|  |         importer = handler.get_importer('Setting', model_class=model.Setting, | ||||||
|  |                                         keys=None) | ||||||
|  |         self.assertIsInstance(importer, Importer) | ||||||
|  |         importer = handler.get_importer('Setting', model_class=model.Setting, | ||||||
|  |                                         keys='') | ||||||
|  |         self.assertIsInstance(importer, Importer) | ||||||
|  |         importer = handler.get_importer('Setting', model_class=model.Setting, | ||||||
|  |                                         keys=[]) | ||||||
|  |         self.assertIsInstance(importer, Importer) | ||||||
|  | 
 | ||||||
|         # key not found |         # key not found | ||||||
|         self.assertRaises(KeyError, handler.get_importer, 'BunchOfNonsense', model_class=model.Setting) |         self.assertRaises(KeyError, handler.get_importer, 'BunchOfNonsense', model_class=model.Setting) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lance Edgar
						Lance Edgar