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