diff --git a/src/wuttasync/importing/handlers.py b/src/wuttasync/importing/handlers.py index ec367ab..03a6179 100644 --- a/src/wuttasync/importing/handlers.py +++ b/src/wuttasync/importing/handlers.py @@ -486,6 +486,11 @@ class ImportHandler(GenericHandler): kwargs = self.get_importer_kwargs(key, **kwargs) 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] return factory(self.config, **kwargs) diff --git a/tests/importing/test_handlers.py b/tests/importing/test_handlers.py index dac37d6..3c2fe49 100644 --- a/tests/importing/test_handlers.py +++ b/tests/importing/test_handlers.py @@ -169,6 +169,18 @@ class TestImportHandler(DataTestCase): importer = handler.get_importer('Setting', model_class=model.Setting) 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 self.assertRaises(KeyError, handler.get_importer, 'BunchOfNonsense', model_class=model.Setting)