def test_required_fields_attribute_exception(self): spider = BasicParseTestSpider() spider.pipelines = [RequiredFields] pipeline = RequiredFields() response = fake_response("basic_parse.html") with self.assertRaises(AttributeError): results = [pipeline.process_item(item, spider) for item in spider.parse(response)]
def test_required_fields_fail(self): spider = BasicParseTestSpider() spider.Meta.required_fields = ["disclaimer", "discount", "image_url", "offer_url", "title"] spider.pipelines = [RequiredFields] pipeline = RequiredFields() response = fake_response("basic_some_missing.html") with self.assertRaises(DropItem): for item in spider.parse(response): pipeline.process_item(item, spider)
def test_required_fields_success(self): spider = BasicParseTestSpider() spider.Meta.required_fields = ["disclaimer", "discount", "image_url", "offer_url", "title"] spider.pipelines = [RequiredFields] response = fake_response("basic_parse.html") pipeline = RequiredFields() try: results = [pipeline.process_item(item, spider) for item in spider.parse(response)] except DropItem: self.fail("Valid required fields dropped item.") self.assertEqual(len(results), 3)