def setUp(self): self.maxDiff = None self.c = Client() this_folder = os.path.abspath(os.path.dirname(__file__)) dummy_db_json = os.path.join(this_folder, '..', '..', 'pdl', 'tests', 'dummy_db.json') dummy_items = json.loads(open(dummy_db_json, 'r').read()) for i in dummy_items: b = Proyecto(**i) b.save() s = Seguimientos( proyecto=b, fecha='2014-06-23', evento='Decreado a... Ciencia, Innovación y Tecnología') s.save() s1 = Seguimientos( proyecto=b, fecha='2015-06-23', evento='En comisión de Ciencia, Innovación y Tecnología') s1.save() Slug(nombre='Chihuan Ramos, Leyla Felicita', ascii='Chihuan Ramos, Leyla Felicita', slug='chihuan-ramos-leyla-felicita').save()
def test_prettify_item_small(self): this_folder = os.path.abspath(os.path.dirname(__file__)) prettified_file = os.path.join(this_folder, 'prettified_03774_small.txt') with open(prettified_file, "r") as f: prettified_item = f.read() item = self.dummy_items[0] # save it to test database b = Proyecto(**item) b.save() # now get it as QuerySet object item = Proyecto.objects.get(codigo='03774') result = utils.prettify_item_small(item) self.assertEqual(prettified_item, result) # no PDF item.pdf_url = '' result = utils.prettify_item_small(item) self.assertTrue('sin PDF' in result) # no expediente item.expediente = '' result = utils.prettify_item_small(item) self.assertTrue('sin Expediente' in result) # no seguimiento_page item.seguimiento_page = '' result = utils.prettify_item_small(item) self.assertTrue('sin Seguimiento' in result)
def setUp(self): proyecto = Proyecto( **{ "numero_proyecto": "02764/2013-CR", "codigo": "02764", "short_url": "4zhube", "titulo": "Propone Ley Universitaria", "iniciativas_agrupadas": ["01790", "01800"], "fecha_presentacion": "2010-10-10", "id": 1, } ) proyecto.save() seguimiento1 = { "fecha": "2013-10-14", "evento": "Decretado a... Educación, Juventud y Deporte", "proyecto": proyecto, } seguimiento2 = { "fecha": "2013-10-15", "evento": "En comisión Educación, Juventud y Deporte", "proyecto": proyecto, } b = Seguimientos(**seguimiento1) b.save() b = Seguimientos(**seguimiento2) b.save() expediente1 = seguimiento1 # Expediente y Seguimiento con casi lo mismo expediente2 = seguimiento2 # Expediente y Seguimiento con casi lo mismo b = Expedientes(**expediente1) b.save() b = Expedientes(**expediente2) b.save()
def test_find_slug_in_db(self): item = self.dummy_items[0] # save it to test database b = Proyecto(**item) b.save() # now get it as QuerySet object slug = 'dammert_ego_aguirre' expected = 'Dammert Ego Aguirre, Manuel Enrique Ernesto' result = utils.find_slug_in_db(slug) self.assertEqual(expected, result) # find elements not in our database slug = 'dammert_ego_aguirre/' result = utils.find_slug_in_db(slug) self.assertEqual(expected, result) slug = 'dammert_ego_aguirre' result = utils.find_slug_in_db(slug) self.assertEqual(expected, result) slug = 'dammert_ego_aguirreaaaaaaaa' result = utils.find_slug_in_db(slug) self.assertEqual(None, result)
def setUp(self): proyecto = Proyecto(**{ "numero_proyecto": "02764/2013-CR", "codigo": "02764", "short_url": "4zhube", "titulo": "Propone Ley Universitaria", "iniciativas_agrupadas": ['01790', '01800'], "fecha_presentacion": "2010-10-10", "id": 1, }) proyecto.save() seguimiento1 = { 'fecha': '2013-10-14', 'evento': 'Decretado a... Educación, Juventud y Deporte', 'proyecto': proyecto, } seguimiento2 = { 'fecha': '2013-10-15', 'evento': 'En comisión Educación, Juventud y Deporte', 'proyecto': proyecto, } b = Seguimientos(**seguimiento1) b.save() b = Seguimientos(**seguimiento2) b.save() expediente1 = seguimiento1 # Expediente y Seguimiento con casi lo mismo expediente2 = seguimiento2 # Expediente y Seguimiento con casi lo mismo b = Expedientes(**expediente1) b.save() b = Expedientes(**expediente2) b.save()
def test_get_last_items(self): for i in self.dummy_items: b = Proyecto(**i) b.save() expected = '03774' item = utils.get_last_items()[0] result = re.search("<b>([0-9]{5})/[0-9]{4}-CR</b>", item).groups()[0] self.assertEqual(expected, result)
def test_prettify_item1(self): this_folder = os.path.abspath(os.path.dirname(__file__)) prettified_file = os.path.join(this_folder, 'prettified_03774.txt') with open(prettified_file, "r") as f: prettified_item = f.read() item = self.dummy_items[0] # save it to test database b = Proyecto(**item) b.save() # now get it as QuerySet object item = Proyecto.objects.get(codigo='03774') result = views.prettify_item(item) self.assertEqual(prettified_item[0:100], result[0:100])
def test_proyecto_view(self): i = self.dummy_items[0] b = Proyecto(**i) b.save() c = Client() response = c.get('/p/4aw8ym/') soup = BeautifulSoup(response.content) result = soup.title.get_text().strip() expected = 'Proyectos de ley emitidos por el Congreso | 03774/2014-CR' self.assertEqual(expected, result) response = c.get('/p/4aw8ymaaaaaaaaaaaaaa/') self.assertTrue( b'No se pudo encontrar el proyecto' in response.content)
def test_proyecto_view(self): i = self.dummy_items[0] b = Proyecto(**i) b.save() c = Client() response = c.get('/p/4aw8ym/') soup = BeautifulSoup(response.content) result = soup.title.get_text().strip() expected = 'Proyectos de ley emitidos por el Congreso | 03774/2014-CR' self.assertEqual(expected, result) response = c.get('/p/4aw8ymaaaaaaaaaaaaaa/') self.assertTrue(b'No se pudo encontrar el proyecto' in response.content)
def test_do_pagination(self): # get first page for not giving integer as page number c = Client() response = c.get('/?page=bad_page_number') self.assertTrue(b'Proyectos de Ley' in response.content) # user gives empty page response = c.get('/?page=') self.assertTrue(b'Proyectos de Ley' in response.content) # user gives empty page response = c.get('/?page=100') self.assertTrue(b'Proyectos de Ley' in response.content) # user gives pagination more than 20 entries = [] j = 1 for i in self.dummy_items: i['id'] = j entries.append(Proyecto(**i)) j += 1 Proyecto.objects.bulk_create(entries) response = c.get('/?page=21') self.assertFalse(b'/?page=10' in response.content) self.assertTrue(b'/?page=22' in response.content)
def test_feed(self): c = Client() response = c.get('/rss.xml') soup = BeautifulSoup(response.content) expected = 'Proyectos de ley emitidos por el Congreso de la ' \ 'República del Perú' self.assertEqual(expected, soup.title.get_text()) this_folder = os.path.abspath(os.path.dirname(__file__)) dummy_db_json = os.path.join(this_folder, 'dummy_db.json') dummy_items = json.loads(open(dummy_db_json, 'r').read()) b = Proyecto(**dummy_items[0]) b.save() response = c.get('/rss.xml') soup = BeautifulSoup(response.content) self.assertEqual(1, len(soup.find_all('item')))
def test_get_proyecto_from_short_url_from_string(self): proyecto = Proyecto(**{ "numero_proyecto": "02764/2013-CR", "codigo": "02764", "short_url": "4zhube", "titulo": "Propone Ley Universitaria", "iniciativas_agrupadas": '{01790,01800}', "fecha_presentacion": "2010-10-10", "time_created": datetime.date.today(), "id": 1, }) proyecto.save() short_url = "4zhube" expected = ['01790', '01800'] result = utils.get_proyecto_from_short_url(short_url) self.assertEqual(expected, result.iniciativas_agrupadas)
def setUp(self): self.maxDiff = None dummy = { "codigo": "03774", 'legislatura': 2016, "congresistas": "Dammert Ego Aguirre, Manuel Enrique Ernesto; Lescano Ancieta, Yonhy; Merino De Lama, Manuel; Guevara Amasifuen, Mesias Antonio; Mavila Leon, Rosa Delsa; Mendoza Frisch, Veronika Fanny", "expediente": "http://www2.congreso.gob.pe/sicr/tradocestproc/Expvirt_2011.nsf/visbusqptramdoc/03774?opendocument", "fecha_presentacion": "2014-09-05", "id": 3763, "numero_proyecto": "03774/2014-CR", "pdf_url": "http://www2.congreso.gob.pe/Sicr/TraDocEstProc/Contdoc02_2011_2.nsf/d99575da99ebfbe305256f2e006d1cf0/dbc9030966aac60905257d4a007b75d9/$FILE/PL03774050914.pdf", "seguimiento_page": "http://www2.congreso.gob.pe/Sicr/TraDocEstProc/CLProLey2011.nsf/Sicr/TraDocEstProc/CLProLey2011.nsf/PAporNumeroInverso/9609130B9871582F05257D4A00752301?opendocument", "short_url": "4aw8ym", "nombre_comision": "economia", "time_created": "2014-09-05 03:00:00", "time_edited": "2014-09-05 03:00:00", "titulo": "Propone establecer los lineamientos para la promoción de la eficiencia y competitividad en la actividad empresarial del Estado, garantizando su aporte estratégico para el desarrollo descentralizado y la soberanía nacional." } self.p = Proyecto(**dummy) self.p.save() dummy_slug = { "nombre": "Dammert Ego Aguirre, Manuel Enrique Ernesto", "ascii": "Dammert Ego Aguirre, Manuel Enrique Ernesto", "slug": "dammert_ego_aguirre/", } Slug(**dummy_slug).save() self.c = Client()
def test_get_proyecto_from_short_url_from_string(self): proyecto = Proyecto(**{ "numero_proyecto": "02764/2013-CR", "codigo": "02764", "short_url": "4zhube", "legislatura": 2011, "titulo": "Propone Ley Universitaria", "iniciativas_agrupadas": '{01790,01800}', "fecha_presentacion": "2010-10-10", "time_created": datetime.date.today(), "id": 1, }) proyecto.save() short_url = "4zhube" expected = ['01790', '01800'] result = utils.get_proyecto_from_short_url(short_url) self.assertEqual(expected, result.iniciativas_agrupadas)
def test_prettify_item2(self): """Test when no pdf_url and no expediente are Blank in object.""" this_folder = os.path.abspath(os.path.dirname(__file__)) prettified_file = os.path.join(this_folder, 'prettified_03774_2.txt') with open(prettified_file, "r") as f: prettified_item = f.read() item = self.dummy_items[0] item['pdf_url'] = '' item['expediente'] = '' item['seguimiento_page'] = '' # save it to test database b = Proyecto(**item) b.save() # now get it as QuerySet object item = Proyecto.objects.get(codigo='03774') result = views.prettify_item(item) self.assertEqual(prettified_item, result)
def setUp(self): self.b = Proyecto(**{ 'codigo': '00586', 'numero_proyecto': '00586/2011-CR', 'fecha_presentacion': '2010-10-10', 'short_url': '4huj5x', 'iniciativas_agrupadas': '{00001,00002,00586}', 'titulo_de_ley': 'Titulo de Ley', 'id': 1, }) b1 = Proyecto(**{ 'codigo': '00001', 'numero_proyecto': '00001/2011-CR', 'fecha_presentacion': '2010-10-10', 'short_url': '4auj5a', 'id': 2, }) c = Seguimientos(**{ 'fecha': '2012-10-10', 'evento': 'en comisión Justicia', 'proyecto': self.b, }) c1 = Seguimientos(**{ 'fecha': '2012-10-10', 'evento': 'Dispensado 2da Votación', 'proyecto': self.b, }) c2 = Seguimientos(**{ 'fecha': '2012-10-10', 'evento': 'Promulgado Ley No: 29971', 'proyecto': self.b, }) c3 = Seguimientos(**{ 'fecha': '2012-10-10', 'evento': 'Publicado: Ley No: 29971', 'proyecto': self.b, }) self.b.save() b1.save() c.save() c1.save() c2.save() c3.save() call_command('create_stats')
def setUp(self): self.maxDiff = None self.c = Client() this_folder = os.path.abspath(os.path.dirname(__file__)) dummy_db_json = os.path.join(this_folder, '..', '..', 'pdl', 'tests', 'dummy_db.json') dummy_items = json.loads(open(dummy_db_json, 'r').read()) for i in dummy_items: b = Proyecto(**i) b.save() s = Seguimientos(proyecto=b, fecha='2014-06-23', evento='Decreado a... Ciencia, Innovación y Tecnología') s.save() s1 = Seguimientos(proyecto=b, fecha='2015-06-23', evento='En comisión de Ciencia, Innovación y Tecnología') s1.save() Slug(nombre='Chihuan Ramos, Leyla Felicita', ascii='Chihuan Ramos, Leyla Felicita', slug='chihuan-ramos-leyla-felicita').save()
def setUp(self): b = Proyecto(**{ 'codigo': '00586', 'legislatura': 2011, 'numero_proyecto': '00586/2011-CR', 'fecha_presentacion': '2010-10-10', 'short_url': '4huj5x', 'id': 1, }) b.save() Seguimientos.objects.create(**{ 'fecha': '2011-01-01', 'evento': "Decretado a... Trabajo y Seguridad Social", 'proyecto': b, }) Seguimientos.objects.create(**{ 'fecha': '2012-02-02', 'evento': "En comisi\u00f3n Trabajo y Seguridad Social", 'proyecto': b, })
def test_congresista_view_pagination(self): entries = [] j = 1 for i in self.dummy_items: i['id'] = j entries.append(Proyecto(**i)) j += 1 Proyecto.objects.bulk_create(entries) c = Client() response = c.get('/congresista/dammert_ego_aguirre/?page=2') self.assertTrue(b'endless_page_link' in response.content)
def setUp(self): b = Proyecto( **{ 'codigo': '00586', 'numero_proyecto': '00586/2011-CR', 'fecha_presentacion': '2010-10-10', 'short_url': '4huj5x', 'id': 1, }) b.save() Seguimientos.objects.create( **{ 'fecha': '2011-01-01', 'evento': "Decretado a... Trabajo y Seguridad Social", 'proyecto': b, }) Seguimientos.objects.create( **{ 'fecha': '2012-02-02', 'evento': "En comisi\u00f3n Trabajo y Seguridad Social", 'proyecto': b, })
def setUp(self): self.b = Proyecto( **{ 'codigo': '00586', 'legislatura': 2016, 'numero_proyecto': '00586/2011-CR', 'fecha_presentacion': '2010-10-10', 'short_url': '4huj5x', 'iniciativas_agrupadas': '{00001,00002,00586}', 'titulo_de_ley': 'Titulo de Ley', 'id': 1, }) b1 = Proyecto( **{ 'codigo': '00001', 'legislatura': 2016, 'numero_proyecto': '00001/2011-CR', 'fecha_presentacion': '2010-10-10', 'short_url': '4auj5a', 'id': 2, }) c = Seguimientos( **{ 'fecha': '2012-10-10', 'evento': 'en comisión Justicia', 'proyecto': self.b, }) c1 = Seguimientos( **{ 'fecha': '2012-10-10', 'evento': 'Dispensado 2da Votación', 'proyecto': self.b, }) c2 = Seguimientos( **{ 'fecha': '2012-10-10', 'evento': 'Promulgado Ley No: 29971', 'proyecto': self.b, }) c3 = Seguimientos( **{ 'fecha': '2012-10-10', 'evento': 'Publicado: Ley No: 29971', 'proyecto': self.b, }) self.b.save() b1.save() c.save() c1.save() c2.save() c3.save() call_command('create_stats')
def test_proyect_items(self): this_folder = os.path.abspath(os.path.dirname(__file__)) dummy_db_json = os.path.join(this_folder, 'dummy_db.json') dummy_items = json.loads(open(dummy_db_json, 'r').read()) b = Proyecto(**dummy_items[0]) b.save() c = Client() response = c.get('/sitemap.xml') soup = BeautifulSoup(response.content) self.assertEqual(1, len(soup.find_all('url'))) nombre = 'Zerillo Bazalar, Manuel Salvador' slug = 'zerillo_bazalar_manuel/' b = Slug(nombre=nombre, slug=slug) b.save() response = c.get('/sitemap.xml') self.assertTrue(slug.encode('utf-8') in response.content)
class TestAPI(TestCase): def setUp(self): self.maxDiff = None dummy = { "codigo": "03774", 'legislatura': 2016, "congresistas": "Dammert Ego Aguirre, Manuel Enrique Ernesto; Lescano Ancieta, Yonhy; Merino De Lama, Manuel; Guevara Amasifuen, Mesias Antonio; Mavila Leon, Rosa Delsa; Mendoza Frisch, Veronika Fanny", "expediente": "http://www2.congreso.gob.pe/sicr/tradocestproc/Expvirt_2011.nsf/visbusqptramdoc/03774?opendocument", "fecha_presentacion": "2014-09-05", "id": 3763, "numero_proyecto": "03774/2014-CR", "pdf_url": "http://www2.congreso.gob.pe/Sicr/TraDocEstProc/Contdoc02_2011_2.nsf/d99575da99ebfbe305256f2e006d1cf0/dbc9030966aac60905257d4a007b75d9/$FILE/PL03774050914.pdf", "seguimiento_page": "http://www2.congreso.gob.pe/Sicr/TraDocEstProc/CLProLey2011.nsf/Sicr/TraDocEstProc/CLProLey2011.nsf/PAporNumeroInverso/9609130B9871582F05257D4A00752301?opendocument", "short_url": "4aw8ym", "nombre_comision": "economia", "time_created": "2014-09-05 03:00:00", "time_edited": "2014-09-05 03:00:00", "titulo": "Propone establecer los lineamientos para la promoción de la eficiencia y competitividad en la actividad empresarial del Estado, garantizando su aporte estratégico para el desarrollo descentralizado y la soberanía nacional." } self.p = Proyecto(**dummy) self.p.save() dummy_slug = { "nombre": "Dammert Ego Aguirre, Manuel Enrique Ernesto", "ascii": "Dammert Ego Aguirre, Manuel Enrique Ernesto", "slug": "dammert_ego_aguirre/", } Slug(**dummy_slug).save() self.c = Client() def test_getting_proyecto(self): response = self.c.get('/api/proyecto.json/03774-2016/') result = json.loads(response.content.decode('utf-8')) expected = "03774" self.assertEqual(expected, result['codigo']) def test_getting_proyecto_csv(self): response = self.c.get('/api/proyecto.csv/03774-2016/') result = response.content.decode('utf-8') expected = "03774" self.assertTrue(expected in result) def test_getting_proyecto_missing(self): response = self.c.get('/api/proyecto.json/037740-2016/') result = response.content.decode('utf-8') expected = '{"error": "proyecto no existe"}' self.assertEqual(expected, result) def test_getting_proyecto_missing_csv(self): response = self.c.get('/api/proyecto.csv/037740-2016/') result = response.content.decode('utf-8') expected = 'error,proyecto no existe' self.assertEqual(expected, result) def test_getting_projects_of_person(self): response = self.c.get('/api/congresista.json/Dammert Ego/') result = json.loads(response.content.decode('utf-8')) expected = 'Dammert Ego Aguirre, Manuel Enrique Ernesto' self.assertEqual(expected, result['resultado'][0]['nombre']) def test_getting_projects_of_person_csv(self): response = self.c.get('/api/congresista.csv/Dammert Ego/') result = response.content.decode('utf-8') expected = 'Dammert Ego Aguirre, Manuel Enrique Ernesto' self.assertTrue(expected in result) def test_getting_projects_of_person_and_comission(self): response = self.c.get('/api/congresista_y_comision.json/Dammert Ego/economia/') result = json.loads(response.content.decode('utf-8')) expected = ['03774-2016'] self.assertEqual(expected, result['resultado'][0]['proyectos']) def test_getting_projects_of_person_and_comission_csv(self): response = self.c.get('/api/congresista_y_comision.csv/Dammert Ego/economia/') result = response.content.decode('utf-8') expected = '03774-2016' self.assertTrue(expected in result) def test_getting_projects_of_person_and_comission_csv_missing(self): response = self.c.get('/api/congresista_y_comision.csv/Dammert Egolalala/economia/') result = response.content.decode('utf-8') expected = 'error,no se pudo encontrar congresista' self.assertEqual(expected, result) def test_not_enough_names_to_search_for_person(self): response = self.c.get('/api/congresista.json/Dammert/') result = json.loads(response.content.decode('utf-8')) expected = 'ingrese un nombre y un apellido' self.assertEqual(expected, result['error']) def test_not_enough_names_to_search_for_person_in_comision(self): response = self.c.get('/api/congresista_y_comision.json/Dammert/economia/') result = json.loads(response.content.decode('utf-8')) expected = 'ingrese un nombre y un apellido' self.assertEqual(expected, result['error']) def test_person_cannot_be_found(self): response = self.c.get('/api/congresista.json/Aus Bus/') result = json.loads(response.content.decode('utf-8')) expected = 'no se pudo encontrar congresista' self.assertEqual(expected, result['error']) def test_person_name_incomplete(self): response = self.c.get('/api/congresista.json/Bus/') result = json.loads(response.content.decode('utf-8')) expected = 'ingrese un nombre y un apellido' self.assertEqual(expected, result['error']) def test_person_name_incomplete_csv(self): response = self.c.get('/api/congresista.csv/Bus/') result = response.content.decode('utf-8') expected = 'error,ingrese un nombre y un apellido' self.assertEqual(expected, result) def test_exonerados_dictamen_empty(self): response = self.c.get('/api/exonerados_dictamen.json/') result = json.loads(response.content.decode('utf-8')) expected = {'error': 'no se encontraron resultados'} self.assertEqual(expected, result) def test_exonerados_dictamen(self): Seguimientos(proyecto=self.p, evento='exoneración de dictamen', fecha='2010-10-10').save() response = self.c.get('/api/exonerados_dictamen.json/') result = json.loads(response.content.decode('utf-8')) expected = {'resultado': ['03774-2016']} self.assertEqual(expected, result) def test_exonerados_dictamen_csv(self): Seguimientos(proyecto=self.p, evento='exoneración de dictamen', fecha='2010-10-10').save() response = self.c.get('/api/exonerados_dictamen.csv/') result = response.content.decode('utf-8') expected = '03774-2016' self.assertTrue(expected in result) def test_exonerados_dictamen_csv_empty(self): response = self.c.get('/api/exonerados_dictamen.csv/') result = response.content.decode('utf-8') expected = 'error,no se encontraron resultados' self.assertEqual(expected, result) def test_exonerados_2da_votacion_empty(self): response = self.c.get('/api/exonerados_2da_votacion.json/') result = json.loads(response.content.decode('utf-8')) expected = {'error': 'no se encontraron resultados'} self.assertEqual(expected, result) def test_exonerados_2da_votacion_empty_csv(self): response = self.c.get('/api/exonerados_2da_votacion.csv/') result = response.content.decode('utf-8') expected = 'error,no se encontraron resultados' self.assertEqual(expected, result) def test_exonerados_2da_votacion(self): Seguimientos(proyecto=self.p, evento='dispensado 2da', fecha='2010-10-10').save() response = self.c.get('/api/exonerados_2da_votacion.json/') result = json.loads(response.content.decode('utf-8')) expected = {'resultado': ['03774-2016']} self.assertEqual(expected, result) def test_exonerados_2da_votacion_csv(self): Seguimientos(proyecto=self.p, evento='dispensado 2da', fecha='2010-10-10').save() response = self.c.get('/api/exonerados_2da_votacion.csv/') result = response.content.decode('utf-8') expected = '03774-2016' self.assertTrue(expected in result)
class TestAPI(TestCase): def setUp(self): self.maxDiff = None dummy = { "codigo": "03774", 'legislatura': 2016, "congresistas": "Dammert Ego Aguirre, Manuel Enrique Ernesto; Lescano Ancieta, Yonhy; Merino De Lama, Manuel; Guevara Amasifuen, Mesias Antonio; Mavila Leon, Rosa Delsa; Mendoza Frisch, Veronika Fanny", "expediente": "http://www2.congreso.gob.pe/sicr/tradocestproc/Expvirt_2011.nsf/visbusqptramdoc/03774?opendocument", "fecha_presentacion": "2014-09-05", "id": 3763, "numero_proyecto": "03774/2014-CR", "pdf_url": "http://www2.congreso.gob.pe/Sicr/TraDocEstProc/Contdoc02_2011_2.nsf/d99575da99ebfbe305256f2e006d1cf0/dbc9030966aac60905257d4a007b75d9/$FILE/PL03774050914.pdf", "seguimiento_page": "http://www2.congreso.gob.pe/Sicr/TraDocEstProc/CLProLey2011.nsf/Sicr/TraDocEstProc/CLProLey2011.nsf/PAporNumeroInverso/9609130B9871582F05257D4A00752301?opendocument", "short_url": "4aw8ym", "nombre_comision": "economia", "time_created": "2014-09-05 03:00:00", "time_edited": "2014-09-05 03:00:00", "titulo": "Propone establecer los lineamientos para la promoción de la eficiencia y competitividad en la actividad empresarial del Estado, garantizando su aporte estratégico para el desarrollo descentralizado y la soberanía nacional." } self.p = Proyecto(**dummy) self.p.save() dummy_slug = { "nombre": "Dammert Ego Aguirre, Manuel Enrique Ernesto", "ascii": "Dammert Ego Aguirre, Manuel Enrique Ernesto", "slug": "dammert_ego_aguirre/", } Slug(**dummy_slug).save() self.c = Client() def test_getting_proyecto(self): response = self.c.get('/api/proyecto.json/03774-2016/') result = json.loads(response.content.decode('utf-8')) expected = "03774" self.assertEqual(expected, result['codigo']) def test_getting_proyecto_csv(self): response = self.c.get('/api/proyecto.csv/03774-2016/') result = response.content.decode('utf-8') expected = "03774" self.assertTrue(expected in result) def test_getting_proyecto_missing(self): response = self.c.get('/api/proyecto.json/037740-2016/') result = response.content.decode('utf-8') expected = '{"error": "proyecto no existe"}' self.assertEqual(expected, result) def test_getting_proyecto_missing_csv(self): response = self.c.get('/api/proyecto.csv/037740-2016/') result = response.content.decode('utf-8') expected = 'error,proyecto no existe' self.assertEqual(expected, result) def test_getting_projects_of_person(self): response = self.c.get('/api/congresista.json/Dammert Ego/') result = json.loads(response.content.decode('utf-8')) expected = 'Dammert Ego Aguirre, Manuel Enrique Ernesto' self.assertEqual(expected, result['resultado'][0]['nombre']) def test_getting_projects_of_person_csv(self): response = self.c.get('/api/congresista.csv/Dammert Ego/') result = response.content.decode('utf-8') expected = 'Dammert Ego Aguirre, Manuel Enrique Ernesto' self.assertTrue(expected in result) def test_getting_projects_of_person_and_comission(self): response = self.c.get( '/api/congresista_y_comision.json/Dammert Ego/economia/') result = json.loads(response.content.decode('utf-8')) expected = ['03774-2016'] self.assertEqual(expected, result['resultado'][0]['proyectos']) def test_getting_projects_of_person_and_comission_csv(self): response = self.c.get( '/api/congresista_y_comision.csv/Dammert Ego/economia/') result = response.content.decode('utf-8') expected = '03774-2016' self.assertTrue(expected in result) def test_getting_projects_of_person_and_comission_csv_missing(self): response = self.c.get( '/api/congresista_y_comision.csv/Dammert Egolalala/economia/') result = response.content.decode('utf-8') expected = 'error,no se pudo encontrar congresista' self.assertEqual(expected, result) def test_not_enough_names_to_search_for_person(self): response = self.c.get('/api/congresista.json/Dammert/') result = json.loads(response.content.decode('utf-8')) expected = 'ingrese un nombre y un apellido' self.assertEqual(expected, result['error']) def test_not_enough_names_to_search_for_person_in_comision(self): response = self.c.get( '/api/congresista_y_comision.json/Dammert/economia/') result = json.loads(response.content.decode('utf-8')) expected = 'ingrese un nombre y un apellido' self.assertEqual(expected, result['error']) def test_person_cannot_be_found(self): response = self.c.get('/api/congresista.json/Aus Bus/') result = json.loads(response.content.decode('utf-8')) expected = 'no se pudo encontrar congresista' self.assertEqual(expected, result['error']) def test_person_name_incomplete(self): response = self.c.get('/api/congresista.json/Bus/') result = json.loads(response.content.decode('utf-8')) expected = 'ingrese un nombre y un apellido' self.assertEqual(expected, result['error']) def test_person_name_incomplete_csv(self): response = self.c.get('/api/congresista.csv/Bus/') result = response.content.decode('utf-8') expected = 'error,ingrese un nombre y un apellido' self.assertEqual(expected, result) def test_exonerados_dictamen_empty(self): response = self.c.get('/api/exonerados_dictamen.json/') result = json.loads(response.content.decode('utf-8')) expected = {'error': 'no se encontraron resultados'} self.assertEqual(expected, result) def test_exonerados_dictamen(self): Seguimientos(proyecto=self.p, evento='exoneración de dictamen', fecha='2010-10-10').save() response = self.c.get('/api/exonerados_dictamen.json/') result = json.loads(response.content.decode('utf-8')) expected = {'resultado': ['03774-2016']} self.assertEqual(expected, result) def test_exonerados_dictamen_csv(self): Seguimientos(proyecto=self.p, evento='exoneración de dictamen', fecha='2010-10-10').save() response = self.c.get('/api/exonerados_dictamen.csv/') result = response.content.decode('utf-8') expected = '03774-2016' self.assertTrue(expected in result) def test_exonerados_dictamen_csv_empty(self): response = self.c.get('/api/exonerados_dictamen.csv/') result = response.content.decode('utf-8') expected = 'error,no se encontraron resultados' self.assertEqual(expected, result) def test_exonerados_2da_votacion_empty(self): response = self.c.get('/api/exonerados_2da_votacion.json/') result = json.loads(response.content.decode('utf-8')) expected = {'error': 'no se encontraron resultados'} self.assertEqual(expected, result) def test_exonerados_2da_votacion_empty_csv(self): response = self.c.get('/api/exonerados_2da_votacion.csv/') result = response.content.decode('utf-8') expected = 'error,no se encontraron resultados' self.assertEqual(expected, result) def test_exonerados_2da_votacion(self): Seguimientos(proyecto=self.p, evento='dispensado 2da', fecha='2010-10-10').save() response = self.c.get('/api/exonerados_2da_votacion.json/') result = json.loads(response.content.decode('utf-8')) expected = {'resultado': ['03774-2016']} self.assertEqual(expected, result) def test_exonerados_2da_votacion_csv(self): Seguimientos(proyecto=self.p, evento='dispensado 2da', fecha='2010-10-10').save() response = self.c.get('/api/exonerados_2da_votacion.csv/') result = response.content.decode('utf-8') expected = '03774-2016' self.assertTrue(expected in result)
class TestCustomCommand(TestCase): def setUp(self): self.b = Proyecto( **{ 'codigo': '00586', 'legislatura': 2016, 'numero_proyecto': '00586/2011-CR', 'fecha_presentacion': '2010-10-10', 'short_url': '4huj5x', 'iniciativas_agrupadas': '{00001,00002,00586}', 'titulo_de_ley': 'Titulo de Ley', 'id': 1, }) b1 = Proyecto( **{ 'codigo': '00001', 'legislatura': 2016, 'numero_proyecto': '00001/2011-CR', 'fecha_presentacion': '2010-10-10', 'short_url': '4auj5a', 'id': 2, }) c = Seguimientos( **{ 'fecha': '2012-10-10', 'evento': 'en comisión Justicia', 'proyecto': self.b, }) c1 = Seguimientos( **{ 'fecha': '2012-10-10', 'evento': 'Dispensado 2da Votación', 'proyecto': self.b, }) c2 = Seguimientos( **{ 'fecha': '2012-10-10', 'evento': 'Promulgado Ley No: 29971', 'proyecto': self.b, }) c3 = Seguimientos( **{ 'fecha': '2012-10-10', 'evento': 'Publicado: Ley No: 29971', 'proyecto': self.b, }) self.b.save() b1.save() c.save() c1.save() c2.save() c3.save() call_command('create_stats') def test_create_stats(self): res = ComisionCount.objects.all() expected = 1 for i in res: self.assertEqual(expected, i.count) def test_all_iniciativas_with_title_of_law(self): res = Proyecto.objects.get(codigo='00001') expected = 'Titulo de Ley' result = res.titulo_de_ley self.assertEqual(expected, result) def test_get_dispensados_2da_votacion(self): res = Dispensed.objects.all() expected = 1 self.assertEqual(expected, res[0].total_dispensed) def test_get_aprobados(self): res = Dispensed.objects.all() expected = 1 self.assertEqual(expected, res[0].total_approved) def test_testing_if_event_is_in_commission(self): """ We need to check whether the event in the model Seguimientos is one that tells us that the project is in certain Commission. """ c = Seguimientos( **{ 'fecha': '2012-10-10', 'evento': 'en comisión Justicia', 'proyecto': self.b, }) expected = 'Justicia' result = test_if_event_is_in_commission(c) self.assertEqual(expected, result) c = Seguimientos( **{ 'fecha': '2012-10-10', 'evento': 'Publicado: Ley No: 29971', 'proyecto': self.b, }) expected = False result = test_if_event_is_in_commission(c) self.assertEqual(expected, result)
class TestCustomCommand(TestCase): def setUp(self): self.b = Proyecto(**{ 'codigo': '00586', 'numero_proyecto': '00586/2011-CR', 'fecha_presentacion': '2010-10-10', 'short_url': '4huj5x', 'iniciativas_agrupadas': '{00001,00002,00586}', 'titulo_de_ley': 'Titulo de Ley', 'id': 1, }) b1 = Proyecto(**{ 'codigo': '00001', 'numero_proyecto': '00001/2011-CR', 'fecha_presentacion': '2010-10-10', 'short_url': '4auj5a', 'id': 2, }) c = Seguimientos(**{ 'fecha': '2012-10-10', 'evento': 'en comisión Justicia', 'proyecto': self.b, }) c1 = Seguimientos(**{ 'fecha': '2012-10-10', 'evento': 'Dispensado 2da Votación', 'proyecto': self.b, }) c2 = Seguimientos(**{ 'fecha': '2012-10-10', 'evento': 'Promulgado Ley No: 29971', 'proyecto': self.b, }) c3 = Seguimientos(**{ 'fecha': '2012-10-10', 'evento': 'Publicado: Ley No: 29971', 'proyecto': self.b, }) self.b.save() b1.save() c.save() c1.save() c2.save() c3.save() call_command('create_stats') def test_create_stats(self): res = ComisionCount.objects.all() expected = 1 for i in res: self.assertEqual(expected, i.count) def test_all_iniciativas_with_title_of_law(self): res = Proyecto.objects.get(codigo='00001') expected = 'Titulo de Ley' result = res.titulo_de_ley self.assertEqual(expected, result) def test_get_dispensados_2da_votacion(self): res = Dispensed.objects.all() expected = 1 self.assertEqual(expected, res[0].total_dispensed) def test_get_aprobados(self): res = Dispensed.objects.all() expected = 1 self.assertEqual(expected, res[0].total_approved) def test_testing_if_event_is_in_commission(self): """ We need to check whether the event in the model Seguimientos is one that tells us that the project is in certain Commission. """ c = Seguimientos(**{ 'fecha': '2012-10-10', 'evento': 'en comisión Justicia', 'proyecto': self.b, }) expected = 'Justicia' result = test_if_event_is_in_commission(c) self.assertEqual(expected, result) c = Seguimientos(**{ 'fecha': '2012-10-10', 'evento': 'Publicado: Ley No: 29971', 'proyecto': self.b, }) expected = False result = test_if_event_is_in_commission(c) self.assertEqual(expected, result)