From d66aa627ee732d6f9eec159986922d63093a71ff Mon Sep 17 00:00:00 2001 From: Eugenio Lacuesta Date: Sat, 19 Mar 2022 12:00:57 -0300 Subject: [PATCH] Remove hardcoded class name in ItemAdapter.__repr__ --- itemadapter/adapter.py | 2 +- tests/test_itemadapter.py | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tests/test_itemadapter.py diff --git a/itemadapter/adapter.py b/itemadapter/adapter.py index 641b319..285c117 100644 --- a/itemadapter/adapter.py +++ b/itemadapter/adapter.py @@ -292,7 +292,7 @@ def item(self) -> Any: def __repr__(self) -> str: values = ", ".join([f"{key}={value!r}" for key, value in self.items()]) - return f"" + return f"<{self.__class__.__name__} for {self.item.__class__.__name__}({values})>" def __getitem__(self, field_name: str) -> Any: return self.adapter.__getitem__(field_name) diff --git a/tests/test_itemadapter.py b/tests/test_itemadapter.py new file mode 100644 index 0000000..1acaaad --- /dev/null +++ b/tests/test_itemadapter.py @@ -0,0 +1,17 @@ +import unittest + +from itemadapter.adapter import ItemAdapter + + +class SubclassedItemAdapter(ItemAdapter): + pass + + +class ItemAdapterTestCase(unittest.TestCase): + def test_repr(self): + adapter = ItemAdapter(dict(foo="bar")) + self.assertEqual(repr(adapter), "") + + def test_repr_subclass(self): + adapter = SubclassedItemAdapter(dict(foo="bar")) + self.assertEqual(repr(adapter), "")