~facundo/encuentro/huge-renewal-refactor

« back to all changes in this revision

Viewing changes to tests/test_encuen_scrapers.py

  • Committer: Facundo Batista
  • Date: 2017-07-08 22:33:43 UTC
  • mfrom: (295.1.2 huge-renewal-refactor)
  • Revision ID: facundo@taniquetil.com.ar-20170708223343-8qk9hghezgtqf2uz
Massive renewal to bring the project back to life.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# -*- coding: utf-8 -*-
2
2
 
3
 
# Copyright 2012-2015 Facundo Batista
 
3
# Copyright 2012-2017 Facundo Batista
4
4
#
5
5
# This program is free software: you can redistribute it and/or modify it
6
6
# under the terms of the GNU General Public License version 3, as published
16
16
#
17
17
# For further info, check  https://launchpad.net/encuentro
18
18
 
19
 
from __future__ import unicode_literals
20
 
 
21
19
"""Tests for the scrapers of Encuentro itself."""
22
20
 
23
21
import unittest
25
23
from server import scrapers_encuen
26
24
 
27
25
 
28
 
_RES_PROGRAMA_1 = None, [
29
 
    ("¿Dónde está Fierro?", "Guerras cantadas", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117820"),  # NOQA
30
 
    ("¿Dónde está Fierro?", "Me tendrán en su memoria para siempre, mis paisanos", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117821"),  # NOQA
31
 
    ("¿Dónde está Fierro?", "¿Quién es el gaucho?", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117822"),  # NOQA
32
 
    ("¿Dónde está Fierro?", "¿Dónde está Hernández?", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117823"),  # NOQA
33
 
    ("¿Dónde está Fierro?", "Los demasiados libros", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117824"),  # NOQA
34
 
    ("¿Dónde está Fierro?", "Ida y vuelta", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117825"),  # NOQA
35
 
    ("¿Dónde está Fierro?", "¿Poema épico nacional?", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117826"),  # NOQA
36
 
    ("¿Dónde está Fierro?", "Mucho más que una payada", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117827"),  # NOQA
37
 
    ("¿Dónde está Fierro?", "Fronteras", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117828"),  # NOQA
38
 
    ("¿Dónde está Fierro?", "Fierro en las artes plásticas", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117829"),  # NOQA
39
 
    ("¿Dónde está Fierro?", "Entre pantallas y escenarios", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117830"),  # NOQA
40
 
    ("¿Dónde está Fierro?", "Fierro en el cine y el teatro", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117831"),  # NOQA
41
 
    ("¿Dónde está Fierro?", "Fierro en la música", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117832"),  # NOQA
42
 
    ("¿Dónde está Fierro?", "Fierro en los argentinos", "http://www.encuentro.gov.ar/sitios/encuentro/programas/ver?rec_id=117833"),  # NOQA
43
 
]
44
 
 
45
 
_RES_PROGRAMA_2 = 60, []
46
 
 
47
 
 
48
 
class ScrapersTestCase(unittest.TestCase):
49
 
    """Tests for the scrapers."""
50
 
 
51
 
    maxDiff = None
52
 
 
53
 
    def test_example_programa_1(self):
54
 
        html = open("tests/ej-encuen-programa_1.html").read()
55
 
        res = scrapers_encuen.scrap_programa(html)
56
 
        self.assertEqual(res, _RES_PROGRAMA_1)
57
 
 
58
 
    def test_example_programa_2(self):
59
 
        html = open("tests/ej-encuen-programa_2.html").read()
60
 
        res = scrapers_encuen.scrap_programa(html)
61
 
        self.assertEqual(res, _RES_PROGRAMA_2)
 
26
_RES_LIST_1 = [
 
27
    ("/programas/serie/9151", "/files/6 (3).jpg", "Susurro y altavoz"),
 
28
    ("/programas/serie/8827", "/files/AficheB---360x360 (1).jpg", "Los visuales"),
 
29
    ("/programas/serie/9156", "/files/1 (12).jpg", "Monstruos"),
 
30
    ("/programas/serie/8925", "/files/Afiche---360x360 (8).jpg", "Encuentro en La Cúpula"),
 
31
    ("/programas/serie/8822", "/files/Afiche---360x360 (1)-2.jpg", "¿Qué piensan los que no piensan como yo?"),  # NOQA
 
32
    ("/programas/9194", "/files/Colifata.jpg", "La Colifata en Moscú"),
 
33
    ("/programas/serie/9175", "/files/4 (9).jpg", "Dos patrias"),
 
34
    ("/programas/serie/9039", "/files/Programa_360x360 (1).jpg", "Eureka. Desafío de ideas"),
 
35
    ("/programas/serie/9181", "/files/2 (16).jpg", "En concierto. Música en el CCK"),
 
36
]
 
37
 
 
38
_RES_PROGRAM_1 = (
 
39
    "La Colifata en Moscú",
 
40
    '132350',
 
41
    None,
 
42
    'http://videos.pakapaka.gob.ar/repositorio/Video/ver?file_id=8fa03691-e0c9-4ca3-8401-8b564ff98d77&rec_id=132350',  # NOQA
 
43
    "La participación de La Colifata -la radio de los internos y exinternos del hospital Borda- en el festival de arte y salud mental El Hilo de Ariadna (en la capital de Rusia) nos lleva como testigos de un encuentro único de esta red mundial de radios. Un especial sobre ese viaje terapéutico en el que Diego Oliveri (exinterno del hospital Borda y miembro activo de la radio La Colifata), Alfredo Olivera (creador y corazón del proyecto) y Lalo Mir (padrino de la radio) recorren Moscú derribando muros.",  # NOQA
 
44
)
 
45
 
 
46
_RES_PROGRAM_2 = None
 
47
 
 
48
_RES_PROGRAM_3 = (
 
49
    "Mentira la verdad / El orden",
 
50
    '50587',
 
51
    28,
 
52
    'http://videos.pakapaka.gob.ar/repositorio/Video/ver?file_id=00516f2d-22cb-43d4-ba1f-ffa7fb6a54b4&rec_id=50587',  # NOQA
 
53
    "Estamos acostumbrados a tener una particular mirada sobre el mundo y, en ocasiones, nuestra forma de pensar nos parece inobjetable. Sin embargo, ¿qué sustenta nuestras ideas? ¿Hay una sola forma de pensar la realidad o el estado de las cosas? Con el discurso filosófico como aliado, Darío Sztajnszrajber desarrolla, problematiza y pone en tensión diferentes supuestos sobre la historia, la belleza, el amor, la felicidad, la identidad y otros temas. Mentira la verdad, un programa hecho para jóvenes, pero para consumir a toda edad; una propuesta para reflexionar sobre lo que respalda nuestros juicios de valor, pero también para pensar las razones que, a lo largo de los años, han hecho visibles algunos hechos sobre otros y han sustentado las historias que nos cuentan sobre un país, una región, una sociedad.",  # NOQA
 
54
)
 
55
 
 
56
_RES_SERIES_1 = [
 
57
    ('Mentira la verdad', "294"),
 
58
    ('Mentira la verdad', "295"),
 
59
    ('Mentira la verdad', "296"),
 
60
    ('Mentira la verdad', "297"),
 
61
    ('Mentira la verdad', "298"),
 
62
    ('Mentira la verdad', "299"),
 
63
    ('Mentira la verdad', "300"),
 
64
    ('Mentira la verdad', "301"),
 
65
    ('Mentira la verdad', "302"),
 
66
    ('Mentira la verdad', "303"),
 
67
    ('Mentira la verdad', "304"),
 
68
    ('Mentira la verdad', "305"),
 
69
    ('Mentira la verdad', "5707"),
 
70
    ('Mentira la verdad II', "4158"),
 
71
    ('Mentira la verdad II', "4159"),
 
72
    ('Mentira la verdad II', "4160"),
 
73
    ('Mentira la verdad II', "4161"),
 
74
    ('Mentira la verdad II', "4162"),
 
75
    ('Mentira la verdad II', "4163"),
 
76
    ('Mentira la verdad II', "4164"),
 
77
    ('Mentira la verdad II', "4165"),
 
78
    ('Mentira la verdad II', "4166"),
 
79
    ('Mentira la verdad II', "4167"),
 
80
    ('Mentira la verdad II', "4168"),
 
81
    ('Mentira la verdad II', "4169"),
 
82
    ('Mentira la verdad II', "4170"),
 
83
    ('Mentira la verdad III', "6927"),
 
84
    ('Mentira la verdad III', "6928"),
 
85
    ('Mentira la verdad III', "6929"),
 
86
    ('Mentira la verdad III', "6930"),
 
87
    ('Mentira la verdad III', "6931"),
 
88
    ('Mentira la verdad III', "6932"),
 
89
    ('Mentira la verdad III', "6933"),
 
90
    ('Mentira la verdad III', "6934"),
 
91
    ('Mentira la verdad III', "6935"),
 
92
    ('Mentira la verdad III', "6936"),
 
93
    ('Mentira la verdad III', "6937"),
 
94
    ('Mentira la verdad III', "6938"),
 
95
    ('Mentira la verdad III', "6939"),
 
96
    ('Mentira la verdad IV', "8755"),
 
97
    ('Mentira la verdad IV', "8756"),
 
98
    ('Mentira la verdad IV', "8757"),
 
99
    ('Mentira la verdad IV', "8758"),
 
100
    ('Mentira la verdad IV', "8759"),
 
101
    ('Mentira la verdad IV', "8760"),
 
102
    ('Mentira la verdad IV', "8761"),
 
103
    ('Mentira la verdad IV', "8762"),
 
104
    ('Mentira la verdad IV', "8763"),
 
105
    ('Mentira la verdad IV', "8764"),
 
106
    ('Mentira la verdad IV', "8765"),
 
107
    ('Mentira la verdad IV', "8766"),
 
108
    ('Mentira la verdad IV', "8767"),
 
109
]
 
110
 
 
111
_RES_BESTVIDEO_1 = (
 
112
    "http://videos.encuentro.gob.ar/repositorio/video/ver?"
 
113
    "file_id=c9495dc4-c1e5-4a1c-8cae-fda9811dfe38&rec_id=122878")
 
114
 
 
115
_RES_BESTVIDEO_2 = None
 
116
 
 
117
 
 
118
class ProgramTestCase(unittest.TestCase):
 
119
    """Tests for the program data scraper."""
 
120
 
 
121
    maxDiff = None
 
122
 
 
123
    def test_1(self):
 
124
        html = open("tests/ej-encuen-program-1.html", 'rb').read()
 
125
        res = scrapers_encuen.scrap_program(html)
 
126
        self.assertEqual(res, _RES_PROGRAM_1)
 
127
 
 
128
    def test_2(self):
 
129
        html = open("tests/ej-encuen-program-2.html", 'rb').read()
 
130
        res = scrapers_encuen.scrap_program(html)
 
131
        self.assertEqual(res, _RES_PROGRAM_2)
 
132
 
 
133
    def test_3(self):
 
134
        html = open("tests/ej-encuen-program-3.html", 'rb').read()
 
135
        res = scrapers_encuen.scrap_program(html)
 
136
        self.assertEqual(res, _RES_PROGRAM_3)
 
137
 
 
138
 
 
139
class SeriesTestCase(unittest.TestCase):
 
140
    """Tests for the series info scraper."""
 
141
 
 
142
    maxDiff = None
 
143
 
 
144
    def test_1(self):
 
145
        html = open("tests/ej-encuen-series-1.html", 'rb').read()
 
146
        res = scrapers_encuen.scrap_series(html)
 
147
        self.assertEqual(res, _RES_SERIES_1)
 
148
 
 
149
 
 
150
class ListTestCase(unittest.TestCase):
 
151
    """Tests for the main list scraper."""
 
152
 
 
153
    maxDiff = None
 
154
 
 
155
    def test_1(self):
 
156
        html = open("tests/ej-encuen-list-1.html", 'rb').read()
 
157
        res = scrapers_encuen.scrap_list(html)
 
158
        self.assertEqual(res, _RES_LIST_1)
 
159
 
 
160
 
 
161
class BestVideoTestCase(unittest.TestCase):
 
162
    """Tests for the main best video scraper."""
 
163
 
 
164
    maxDiff = None
 
165
 
 
166
    def test_1(self):
 
167
        html = open("tests/ej-encuen-bestvideo-1.html", 'rb').read()
 
168
        res = scrapers_encuen.scrap_bestvideo(html)
 
169
        self.assertEqual(res, _RES_BESTVIDEO_1)
 
170
 
 
171
    def test_2(self):
 
172
        html = open("tests/ej-encuen-bestvideo-2.html", 'rb').read()
 
173
        res = scrapers_encuen.scrap_bestvideo(html)
 
174
        self.assertEqual(res, _RES_BESTVIDEO_2)