예제 #1
0
 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")
예제 #2
0
    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")
예제 #3
0
 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)>",
     )
예제 #4
0
    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")
예제 #5
0
 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))
예제 #6
0
 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))
예제 #7
0
 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))
예제 #8
0
 def test_true_attrs(self):
     self.assertTrue(is_item(AttrsItem(name="asdf", value=1234)))
     self.assertTrue(ItemAdapter.is_item_class(AttrsItem))
예제 #9
0
 def test_true(self):
     self.assertTrue(is_attrs_instance(AttrsItem()))
     self.assertTrue(is_attrs_instance(AttrsItem(name="asdf", value=1234)))
예제 #10
0
 def test_module_not_available(self):
     self.assertFalse(is_attrs_instance(AttrsItem(name="asdf", value=1234)))
예제 #11
0
 def test_true_attrs(self):
     self.assertTrue(is_item(AttrsItem(name="asdf", value=1234)))