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)