def test_true(self): self.assertTrue(AttrsAdapter.is_item(AttrsItem())) self.assertTrue( AttrsAdapter.is_item(AttrsItem(name="asdf", value=1234))) # field metadata self.assertEqual(get_field_meta_from_class(AttrsItem, "name"), MappingProxyType({"serializer": str})) self.assertEqual(get_field_meta_from_class(AttrsItem, "value"), MappingProxyType({"serializer": int})) with self.assertRaises( KeyError, msg="AttrsItem does not support field: non_existent"): get_field_meta_from_class(AttrsItem, "non_existent")
def test_module_import_error(self): with clear_itemadapter_imports(): from itemadapter.adapter import AttrsAdapter self.assertFalse( AttrsAdapter.is_item(AttrsItem(name="asdf", value=1234))) with self.assertRaises(RuntimeError, msg="attr module is not available"): AttrsAdapter(AttrsItem(name="asdf", value=1234)) with self.assertRaises(RuntimeError, msg="attr module is not available"): AttrsAdapter.get_field_meta_from_class(AttrsItem, "name") with self.assertRaises(TypeError, msg="AttrsItem is not a valid item class"): get_field_meta_from_class(AttrsItem, "name")
def test_repr_attrs(self): item = AttrsItem(name="asdf", value=1234) adapter = ItemAdapter(item) self.assertEqual( repr(adapter), "<ItemAdapter for AttrsItem(name='asdf', value=1234)>", )
def test_module_not_available(self): from itemadapter.adapter import AttrsAdapter self.assertFalse( AttrsAdapter.is_item(AttrsItem(name="asdf", value=1234))) with self.assertRaises(TypeError, msg="AttrsItem is not a valid item class"): get_field_meta_from_class(AttrsItem, "name")
def test_false(self): self.assertFalse(is_scrapy_item(int)) self.assertFalse(is_scrapy_item(sum)) self.assertFalse(is_scrapy_item(1234)) self.assertFalse(is_scrapy_item(object())) self.assertFalse(is_scrapy_item(AttrsItem())) self.assertFalse(is_scrapy_item("a string")) self.assertFalse(is_scrapy_item(b"some bytes")) self.assertFalse(is_scrapy_item({"a": "dict"})) self.assertFalse(is_scrapy_item(["a", "list"])) self.assertFalse(is_scrapy_item(("a", "tuple"))) self.assertFalse(is_scrapy_item({"a", "set"})) self.assertFalse(is_scrapy_item(ScrapySubclassedItem))
def test_false(self): self.assertFalse(ScrapyItemAdapter.is_item(int)) self.assertFalse(ScrapyItemAdapter.is_item(sum)) self.assertFalse(ScrapyItemAdapter.is_item(1234)) self.assertFalse(ScrapyItemAdapter.is_item(object())) self.assertFalse(ScrapyItemAdapter.is_item(AttrsItem())) self.assertFalse(ScrapyItemAdapter.is_item(DataClassItem())) self.assertFalse(ScrapyItemAdapter.is_item(PydanticModel())) self.assertFalse(ScrapyItemAdapter.is_item("a string")) self.assertFalse(ScrapyItemAdapter.is_item(b"some bytes")) self.assertFalse(ScrapyItemAdapter.is_item({"a": "dict"})) self.assertFalse(ScrapyItemAdapter.is_item(["a", "list"])) self.assertFalse(ScrapyItemAdapter.is_item(("a", "tuple"))) self.assertFalse(ScrapyItemAdapter.is_item({"a", "set"})) self.assertFalse(ScrapyItemAdapter.is_item(ScrapySubclassedItem))
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 test_true_attrs(self): self.assertTrue(is_item(AttrsItem(name="asdf", value=1234))) self.assertTrue(ItemAdapter.is_item_class(AttrsItem))
def test_true(self): self.assertTrue(is_attrs_instance(AttrsItem())) self.assertTrue(is_attrs_instance(AttrsItem(name="asdf", value=1234)))
def test_module_not_available(self): self.assertFalse(is_attrs_instance(AttrsItem(name="asdf", value=1234)))
def test_true_attrs(self): self.assertTrue(is_item(AttrsItem(name="asdf", value=1234)))