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:
Lance Edgar 2025-06-29 11:24:10 -05:00
parent 65bbc95ae2
commit 6c94b13b12
2 changed files with 17 additions and 0 deletions

View file

@ -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)

View file

@ -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)