fix: fix importer get_keys() logic to honor class attribute

so subclass can just say e.g. `key = "id"`
This commit is contained in:
Lance Edgar 2026-02-08 20:56:09 -06:00
parent dec145ada5
commit 42474371db
2 changed files with 15 additions and 8 deletions

View file

@ -90,19 +90,24 @@ class TestImporter(DataTestCase):
imp = self.make_importer(model_class=model.User)
self.assertEqual(imp.get_keys(), ["uuid"])
# class may define 'keys'
# object dict may define 'keys'
imp = self.make_importer(model_class=model.User)
with patch.object(imp, "keys", new=["foo", "bar"], create=True):
with patch.dict(imp.__dict__, keys=["foo", "bar"]):
self.assertEqual(imp.get_keys(), ["foo", "bar"])
# class may define 'keys'
with patch.object(mod.Importer, "keys", new=["foo", "baz"], create=True):
imp = self.make_importer(model_class=model.User)
self.assertEqual(imp.get_keys(), ["foo", "baz"])
# class may define 'key'
imp = self.make_importer(model_class=model.User)
with patch.object(imp, "key", new="whatever", create=True):
with patch.object(mod.Importer, "key", new="whatever", create=True):
imp = self.make_importer(model_class=model.User)
self.assertEqual(imp.get_keys(), ["whatever"])
# class may define 'default_keys'
imp = self.make_importer(model_class=model.User)
with patch.object(imp, "default_keys", new=["baz", "foo"]):
with patch.object(mod.Importer, "default_keys", new=["baz", "foo"]):
imp = self.make_importer(model_class=model.User)
self.assertEqual(imp.get_keys(), ["baz", "foo"])
def test_process_data(self):