diff --git a/tests/importing/test_base.py b/tests/importing/test_base.py index cf49b1c..3d1b153 100644 --- a/tests/importing/test_base.py +++ b/tests/importing/test_base.py @@ -473,6 +473,18 @@ class TestImporter(DataTestCase): self.assertIs(foo["object"], setting) self.assertEqual(foo["data"], {"name": "foo", "value": "bar"}) + # cache should not contain duplicates + setting2 = model.Setting(name="foo", value="bar") + get_target_objects.return_value = [setting, setting2] + cache = imp.get_target_cache() + self.assertEqual(len(cache), 1) + self.assertIn(("foo",), cache) + foo = cache[("foo",)] + self.assertEqual(len(foo), 2) + self.assertEqual(set(foo), {"object", "data"}) + self.assertIs(foo["object"], setting2) # nb. "last" object is kept + self.assertEqual(foo["data"], {"name": "foo", "value": "bar"}) + def test_get_target_objects(self): model = self.app.model imp = self.make_importer(model_class=model.Setting)