Código fonte de tests.integration.test_app

import json
import os
import unittest
import warnings
from datetime import datetime
from unittest.mock import patch

import pytz
from bson import ObjectId
from mongoengine import connect

from .utils import *
from legislei.app import app
from legislei.exceptions import AppError, InvalidModelId
from legislei.models.avaliacoes import Avaliacoes
from legislei.models.inscricoes import Inscricoes
from legislei.models.relatorio import Evento, Orgao, Parlamentar, Proposicao, Relatorio
from legislei.models.user import User


[documentos]class TestApp(ControllerHelperTester):
[documentos] def test_home_page(self): actual = self.app.get("/") self.assertEqual(actual.status_code, 200) self.assertIn(b"Projeto Legislei", actual.data)
[documentos] def test_consultar_page(self): actual = self.app.get("/consultar") self.assertEqual(actual.status_code, 200) self.assertIn(u"Gerar relatório".encode('utf-8'), actual.data)
[documentos] def test_relatorio_no_params(self): actual = self.app.get("/relatorio") self.assertEqual(actual.status_code, 400)
[documentos] def test_relatorio_from_db(self): actual = self.app.get("/relatorio?parlamentar=123&data=2019-01-07&parlamentarTipo=BR1&dias=7") self.assertEqual(actual.status_code, 200) self.assertIn(b"ParlamentarTeste", actual.data)
[documentos] def test_relatorio_not_in_db(self): actual = self.app.get("/relatorio?parlamentar=123&data=2019-01-07&parlamentarTipo=BR3&dias=7") self.assertEqual(actual.status_code, 200) self.assertIn(u"Gerando relatório".encode("utf-8"), actual.data)
[documentos] def test_relatorio_invalid_date(self): actual = self.app.get("/relatorio?parlamentar=123&data=invalid-date&parlamentarTipo=BR3&dias=7") self.assertEqual(actual.status_code, 400) self.assertIn(u"Requisição incompleta".encode("utf-8"), actual.data)
[documentos] def test_get_relatorio_by_id(self): actual = self.app.get("/relatorio/5c264b5e3a5efd576ecaf48e") self.assertEqual(actual.status_code, 200) self.assertIn(b"ParlamentarTeste", actual.data)
[documentos] def test_get_relatorio_no_relatorio(self): actual = self.app.get("/relatorio/4c264b5e3a5efd576ecaf48e") self.assertEqual(actual.status_code, 400) self.assertIn(u"Relatório não encontrado".encode("utf-8"), actual.data)
[documentos] def test_minhas_avaliacoes(self): login(self.app, "test", "123") actual = self.app.get("/minhasAvaliacoes") self.assertEqual(actual.status_code, 200) self.assertIn(u"Minhas avaliações".encode('utf-8'), actual.data) self.assertIn(b"ParlamentarTeste", actual.data)
[documentos] def test_minhas_avaliacoes_parlamentar(self): login(self.app, "test", "123") actual = self.app.get("/minhasAvaliacoes?parlamentarTipo=BR1&parlamentar=123") self.assertEqual(actual.status_code, 200) self.assertIn(b"ParlamentarTeste", actual.data) self.assertIn(b"Saldo total: 1", actual.data)
[documentos] def test_minhas_avaliacoes_parlamentar_parlamentar_fora_inscricoes(self): parlamentar = Parlamentar( nome="ParlamentarTeste2", id="1234", cargo="BR1" ) Avaliacoes( email="test@email.com", parlamentar=parlamentar, avaliacao="-1", avaliado={} ).save() login(self.app, "test", "123") actual = self.app.get("/minhasAvaliacoes?parlamentarTipo=BR1&parlamentar=1234") self.assertEqual(actual.status_code, 200) self.assertIn(b"ParlamentarTeste2", actual.data) self.assertIn(b"Saldo total: -1", actual.data)
[documentos] def test_minhas_avaliacoes_parlamentar_sem_avaliacoes(self): Avaliacoes().drop_collection() login(self.app, "test", "123") actual = self.app.get("/minhasAvaliacoes?parlamentarTipo=BR1&parlamentar=123") self.assertEqual(actual.status_code, 200) self.assertIn(b"ParlamentarTeste", actual.data) self.assertIn(b"Saldo total: 0", actual.data)
[documentos] def test_minhas_avaliacoes_parlamentar_sem_avaliacoes_parlamentar_fora_inscricoes(self): login(self.app, "test", "123") actual = self.app.get("/minhasAvaliacoes?parlamentarTipo=BR1&parlamentar=12345") self.assertEqual(actual.status_code, 200) self.assertIn(u"Nenhuma avaliação".encode('utf-8'), actual.data)
[documentos] def test_nova_inscricao_home(self): login(self.app, "test", "123") actual = self.app.get("/novaInscricao") self.assertEqual(actual.status_code, 200) self.assertIn(u"Nova inscrição".encode('utf-8'), actual.data)
[documentos] def test_registrar_home(self): actual = self.app.get("/registrar") actual_data = actual.data.decode('utf-8') self.assertEqual(actual.status_code, 200) self.assertIn("Criar uma conta", actual_data)
[documentos] def test_login_home(self): actual = self.app.get("/login") actual_data = actual.data.decode('utf-8') self.assertEqual(actual.status_code, 200) self.assertIn("Entrar", actual_data)
[documentos] def test_login_ok(self): actual = self.app.post( "/login", data={ "name": "test", "password": "123" }, follow_redirects=True ) actual_data = actual.data.decode('utf-8') self.assertEqual(actual.status_code, 200) self.assertIn(u"Minhas inscrições", actual_data)
[documentos] def test_login_incorreto(self): actual = self.app.post( "/login", data={ "name": "test", "password": "12345" }, follow_redirects=True ) actual_data = actual.data.decode('utf-8') self.assertEqual(actual.status_code, 200) self.assertIn(u"Usuário/senha incorretos", actual_data)
[documentos] def test_logout(self): login(self.app, "test", "123") actual = self.app.get("/logout", follow_redirects=True) actual_data = actual.data.decode('utf-8') self.assertEqual(actual.status_code, 200) self.assertIn(u"Projeto Legislei", actual_data)