Exemplo n.º 1
0
 def test_true(self):
     self.assertTrue(PydanticAdapter.is_item(PydanticModel()))
     self.assertTrue(
         PydanticAdapter.is_item(PydanticModel(name="asdf", value=1234)))
     # field metadata
     self.assertEqual(
         get_field_meta_from_class(PydanticModel, "name"),
         MappingProxyType({"serializer": str}),
     )
     self.assertEqual(
         get_field_meta_from_class(PydanticModel, "value"),
         MappingProxyType({"serializer": int}),
     )
     self.assertEqual(
         get_field_meta_from_class(PydanticSpecialCasesModel,
                                   "special_cases"),
         MappingProxyType({
             "alias": "special_cases",
             "allow_mutation": False
         }),
     )
     with self.assertRaises(
             KeyError,
             msg="PydanticModel does not support field: non_existent"):
         get_field_meta_from_class(PydanticModel, "non_existent")
Exemplo n.º 2
0
 def test_repr_pydantic(self):
     item = PydanticModel(name="asdf", value=1234)
     adapter = ItemAdapter(item)
     self.assertEqual(
         repr(adapter),
         "<ItemAdapter for PydanticModel(name='asdf', value=1234)>",
     )
Exemplo n.º 3
0
    def test_module_not_available(self):
        from itemadapter.adapter import PydanticAdapter

        self.assertFalse(
            PydanticAdapter.is_item(PydanticModel(name="asdf", value=1234)))
        with self.assertRaises(TypeError,
                               msg="PydanticModel is not a valid item class"):
            get_field_meta_from_class(PydanticModel, "name")
Exemplo n.º 4
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))
Exemplo n.º 5
0
 def test_true_pydantic(self):
     self.assertTrue(is_item(PydanticModel(name="asdf", value=1234)))
     self.assertTrue(ItemAdapter.is_item_class(PydanticModel))