def test_parse_empty_table(self): """Testea que no devuelve items cuando la tabla es vacía.""" response = get_scrapy_response(self.url_empty_audiencias) audiencias_items = list(self.spider.parse_audiencias_table(response)) num_audiencias = len(audiencias_items) self.assertEqual(num_audiencias, 0)
def test_parse_id_dependencia(self): """Testea que se guarda el id_dependencia en la request.""" response = get_scrapy_response(self.url_dependencia) requests = list(self.spider.parse(response)) id_dependencia = requests[0].meta["id_dependencia"] self.assertEqual(id_dependencia, 350)
def test_get_cant_pages(self): """Testea el cálculo de la cantidad de páginas.""" url = self.url_audiencias.replace("bloquel=1000", "bloquel=10") response = get_scrapy_response(url) cant_pages = self.spider._get_cant_pages(response, 10) self.assertEqual(cant_pages, 65)
def test_parse_audiencias_table(self): """Testea que scrapea todas las audiencias presentes en la tabla.""" response = get_scrapy_response(self.url_audiencias) response.meta["id_dependencia"] = 350 audiencias_items = list(self.spider.parse_audiencias_table(response)) num_audiencias = len(audiencias_items) self.assertEqual(num_audiencias, 649)
def test_parse_audiencias(self): """Testea se emitan las requests correspondientes por la paginacion.""" url = self.url_audiencias.replace("bloquel=1000", "bloquel=10") response = get_scrapy_response(url) response.meta["id_dependencia"] = 350 self.spider.parse_audiencias_table = Mock(return_value=None) self.spider.chunk_size = 10 reqs_generator = self.spider.parse_audiencias(response) # la response original no se vuelve a requestear, se parsea como vino self.assertEqual(len(list(reqs_generator)), 64)
def test_parse_sujetos_obligados(self): """Testea que extrae el número correcto de sujetos obligados.""" response = get_scrapy_response(self.url_dependencia) num_sujetos_obligados = len(list(self.spider.parse(response))) self.assertEqual(num_sujetos_obligados, 6)