def test_deprecated_is_instance(self): from itemadapter.utils import is_dataclass_instance with warnings.catch_warnings(record=True) as caught: is_dataclass_instance(1) self.assertEqual(len(caught), 1) self.assertTrue(issubclass(caught[0].category, DeprecationWarning)) self.assertEqual( "itemadapter.utils.is_dataclass_instance is deprecated" " and it will be removed in a future version", str(caught[0].message), )
def test_true(self): self.assertTrue(is_dataclass_instance(DataClassItem())) self.assertTrue( is_dataclass_instance(DataClassItem(name="asdf", value=1234)))
def test_module_not_available(self): self.assertFalse( is_dataclass_instance(DataClassItem(name="asdf", value=1234)))
def test_false(self): self.assertFalse(is_dataclass_instance(int)) self.assertFalse(is_dataclass_instance(sum)) self.assertFalse(is_dataclass_instance(1234)) self.assertFalse(is_dataclass_instance(object())) self.assertFalse(is_dataclass_instance(ScrapyItem())) self.assertFalse(is_dataclass_instance(AttrsItem())) self.assertFalse(is_dataclass_instance(ScrapySubclassedItem())) self.assertFalse(is_dataclass_instance("a string")) self.assertFalse(is_dataclass_instance(b"some bytes")) self.assertFalse(is_dataclass_instance({"a": "dict"})) self.assertFalse(is_dataclass_instance(["a", "list"])) self.assertFalse(is_dataclass_instance(("a", "tuple"))) self.assertFalse(is_dataclass_instance({"a", "set"})) self.assertFalse(is_dataclass_instance(DataClassItem))
def is_item(cls, item: Any) -> bool: return is_dataclass_instance(item)