Código fonte de tests.integration.utils

import json
import os
from datetime import datetime
from unittest import TestCase

import pytz
from bson import ObjectId
from mongoengine import connect

from legislei.app import app
from legislei.models.avaliacoes import Avaliacoes
from legislei.models.inscricoes import Inscricoes
from legislei.models.relatorio import Evento, Orgao, Parlamentar, Relatorio
from legislei.models.user import User, UserDevice


[documentos]class ControllerHelperTester(TestCase): db = None
[documentos] @classmethod def setUpClass(cls): cls.db = connect('legislei-testing', host=os.environ.get("MONGODB_HOST", "localhost"), port=int(os.environ.get("MONGODB_PORT", "27017"))) cls.db.drop_database("legislei-testing")
[documentos] def setUp(self): app.config['TESTING'] = True app.config['DEBUG'] = False os.environ["MONGODB_DBNAME"] = "legislei-testing" os.environ["HOST_ENDPOINT"] = '' set_up_db(self.db) self.app = app.test_client()
[documentos] def tearDown(self): self.db.drop_database("legislei-testing")
[documentos]def login(client, username, password): return client.post('/login', data={ "name": username, "password": password }, follow_redirects=True)
[documentos]def login_api(client, username, password): response = client.post( '/v1/usuarios/token_acesso', data=json.dumps({ 'username': username, 'senha': password }), content_type='application/json' ) response = json.loads(response.data.decode('utf-8')) return {'Authorization': response["token"]}
[documentos]def logout(client): return client.get('/logout', follow_redirects=True)
[documentos]def set_up_parlamentar(): par = Parlamentar() par.nome = "ParlamentarTeste" par.foto = "url" par.id = "123" par.partido = "Partido" par.cargo = "BR1" par.uf = "ES" return par
[documentos]def set_up_db(db): parlamentar_test = set_up_parlamentar() brasilia_tz = pytz.timezone('America/Sao_Paulo') orgaos_evento = [Orgao( nome="ÓrgãoTeste", sigla="OT", cargo="None", apelido="OhTe" )] eventos_presentes = [Evento( id="12345", nome="Evento teste", data_inicial=brasilia_tz.localize(datetime(2019, 1, 1)), data_final=brasilia_tz.localize(datetime(2019, 1, 1)), url="http://url.com", situacao="Encerrada", presenca=0, orgaos=orgaos_evento )] eventos_ausentes = [Evento( id="123", nome="Evento teste", data_inicial=brasilia_tz.localize(datetime(2019, 1, 1)), data_final=brasilia_tz.localize(datetime(2019, 1, 1)), url="http://url.com", situacao="Cancelada", presenca=1, orgaos=orgaos_evento )] Relatorio( pk=ObjectId("5c264b5e3a5efd576ecaf48e"), parlamentar=parlamentar_test, proposicoes=[], data_inicial=brasilia_tz.localize(datetime(2018, 12, 31)), data_final=brasilia_tz.localize(datetime(2019, 1, 7)), orgaos=[], eventos_presentes=eventos_presentes, eventos_ausentes=eventos_ausentes, eventos_previstos=[], ).save() Avaliacoes( pk=ObjectId("5c5116f5c3acc80004eada0a"), email="test@email.com", parlamentar=parlamentar_test, avaliacao="1", avaliado={ "url": "url", "situacao": "Cancelada", "dataFinal": brasilia_tz.localize(datetime(2019, 1, 1)), "orgaos": [ { "sigla": "OT", "nome": "ÓrgãoTeste", "apelido": "OhTe", "cargo": None } ], "dataInicial": brasilia_tz.localize(datetime(2019, 1, 1)), "presenca": 1, "nome": "Evento teste", "id": "123" }, relatorioId=ObjectId("5c264b5e3a5efd576ecaf48e"), ).save() inscricoes = Inscricoes( parlamentares=[parlamentar_test], intervalo=7 ) User.drop_collection() User( username="test", email="test@email.com", password="$pbkdf2-sha256$16$ZOwdg9A6R2itlTKm9N57bw$J8ut3l2pGwngIOdLZeT/LMHCY/CW75wNZOAk6k6sP1c", inscricoes=inscricoes, devices=[ UserDevice( id="14", name="dispositivo", token="---token---", active=True, os="Android" ) ] ).save()