def test_OVR_Supervisor_Atribuir(self): setor1 = self.create_setor('1', 'Setor 1') setor2 = self.create_setor('2', 'Setor 2') user1 = self.create_usuario('user_1', 'Usuario 1', setor1) user2 = self.create_usuario('user_2', 'Usuario 2', setor1) ovr = self.create_OVR_valido() ovr.setor_id = '1' session.add(ovr) session.commit() session.refresh(ovr) evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', None) # Atribuir responsavel, faz uma inclusão, atribui outro, tentar retomar, vai dar erro. # Colocar perfil Supervisor e auto-atribuir - params = { 'numero': '1234', 'tipoprocesso_id': 0, 'ovr_id': ovr.id, 'user_name': 'user_1' } processo = gera_processoovr(session, params) session.refresh(processo) session.refresh(ovr) assert len(ovr.processos) == 1 assert ovr.responsavel_cpf == 'user_1' print('Atribuição 1') evento = atribui_responsavel_ovr(session, ovr.id, 'user_2', 'user_1') session.refresh(ovr) assert ovr.responsavel_cpf == 'user_2' print('Atribuição 2') with self.assertRaises(ESomenteUsuarioResponsavel): evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', 'user_1')
def test_cadastra_TG(self): setor1 = self.create_setor('1', 'Setor 1') setor2 = self.create_setor('2', 'Setor 2') user1 = self.create_usuario('user_1', 'Usuario 1', setor1) user2 = self.create_usuario('user_2', 'Usuario 2', setor1) ovr = self.create_OVR_valido() ovr.setor_id = '1' session.add(ovr) session.commit() session.refresh(ovr) # Atribui OVR ao user_1 evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', None) assert ovr.responsavel_cpf == 'user_1' # lista TGs dessa OVR lista_tgs = lista_tgovr(session, ovr.id) assert len(lista_tgs) == 0 # user_1 cadastra TGOVR params = { 'ovr_id': ovr.id, 'unidadedemedida': 1, 'numerolote': 'teste', 'descricao': 'teste_desc', } tg = cadastra_tgovr(session, params, 'user_1') assert tg.user_name == 'user_1' assert tg.unidadedemedida == 1 # lista TGs dessa OVR lista_tgs = lista_tgovr(session, ovr.id) assert len(lista_tgs) == 1 # Atribui OVR ao user_2 evento = atribui_responsavel_ovr(session, ovr.id, 'user_2', 'user_1') assert ovr.responsavel_cpf == 'user_2' # user_2 cadastra TGOVR params = { 'ovr_id': ovr.id, 'unidadedemedida': 1, 'numerolote': 'teste user 2', 'descricao': 'teste_desc user 2', } tg = cadastra_tgovr(session, params, 'user_2') assert tg.user_name == 'user_2' assert tg.unidadedemedida == 1 # lista TGs dessa OVR lista_tgs = lista_tgovr(session, ovr.id) assert len(lista_tgs) == 2 # user_1 tenta cadastrar TGOVR params = { 'ovr_id': ovr.id, 'unidadedemedida': 1, 'numerolote': 'teste user 1', 'descricao': 'teste_desc user 1 falhou', } with self.assertRaises(ESomenteUsuarioResponsavel): tg = cadastra_tgovr(session, params, 'user_1') assert tg.user_name == 'user_2' assert tg.unidadedemedida == 2 # sem unidade # lista TGs dessa OVR lista_tgs = lista_tgovr(session, ovr.id) assert len(lista_tgs) == 2
def test_transferir_para_outro_setor(self): setor10 = self.create_setor('10', 'Setor 10', 20) setor20 = self.create_setor('20', 'Setor 20') user10 = self.create_usuario('user_10', 'Usuario 10', setor10) user20 = self.create_usuario('user_20', 'Usuario 20', setor20) ovr = self.create_OVR_valido() ovr.setor_id = '10' session.add(ovr) session.commit() session.refresh(ovr) assert ovr.setor_id == '10' # Atribui OVR ao user_10 evento = atribui_responsavel_ovr(session, ovr.id, 'user_10', None) assert ovr.responsavel_cpf == 'user_10' # User_10 muda OVR para Setor 20 ovr = muda_setor_ovr(session, ovr.id, setor20.id, user10.cpf) assert ovr.setor_id == '20' assert ovr.responsavel_cpf is None # User_20 autoatribui a ficha que está no setor dele e sem responsável. evento = atribui_responsavel_ovr(session, ovr.id, 'user_20', None) assert ovr.responsavel_cpf == 'user_20' # User_10 tenta alterar o setor para 10 e dá erro with self.assertRaises(ESomenteUsuarioResponsavel): ovr = muda_setor_ovr(session, ovr.id, setor10.id, user10.cpf) # User_20 muda OVR para Setor 10, ficha fica sem responsavel ovr = muda_setor_ovr(session, ovr.id, setor10.id, user20.cpf) assert ovr.setor_id == '10' assert ovr.responsavel_cpf is None # User_20 pode mudar a OVR que está no setor10 para setor 20 e ficha continua sem responsável ovr = muda_setor_ovr(session, ovr.id, setor20.id, user20.cpf) assert ovr.setor_id == '20' assert ovr.responsavel_cpf is None # User_10 pode mudar a OVR que está no setor20 para setor 10 e ficha continua sem responsável ovr = muda_setor_ovr(session, ovr.id, setor10.id, user10.cpf) assert ovr.setor_id == '10' assert ovr.responsavel_cpf is None # Conclusão, como a ficha fica sem responsável, qualquer usuário pode movê-la # entre os setores. # Se a ficha estiver atribuída a um usuário, nem o supervisor consegue mudar de setor perfilusuario = PerfilUsuario() perfilusuario.cpf = 'user_20' perfilusuario.perfil = Enumerado.get_id(perfilAcesso, 'Supervisor') session.add(perfilusuario) session.commit() # assert user20.perfis[0].perfil == 2 # perfil de supervisor # User_10 se autoatribui evento = atribui_responsavel_ovr(session, ovr.id, 'user_10', None) assert ovr.responsavel_cpf == 'user_10' # User_2 que é supervisor não consegue mudar a ficha para setor 20 with self.assertRaises(ESomenteUsuarioResponsavel): ovr = muda_setor_ovr(session, ovr.id, setor20.id, user20.cpf) assert ovr.setor_id == '10' # User_2 que é supervisor tem que atribuir a ficha a si para poder mudar de setor evento = atribui_responsavel_ovr(session, ovr.id, 'user_20', 'user_20') assert ovr.responsavel_cpf == 'user_20' ovr = muda_setor_ovr(session, ovr.id, setor20.id, user20.cpf) assert ovr.setor_id == '20' assert ovr.responsavel_cpf is None
def test_OVR_Processo(self): ovr = self.create_OVR_valido() session.refresh(ovr) atribui_responsavel_ovr(session, ovr.id, 'user_1', 'user_1') for tipo in Enumerado.tipoProcesso(): params = { 'numero': tipo[1], 'tipoprocesso_id': tipo[0], 'ovr_id': ovr.id, 'user_name': 'user_1' } processo = gera_processoovr(session, params) session.refresh(processo) assert processo.numero == params['numero'] assert processo.tipoprocesso_id == params['tipoprocesso_id'] session.refresh(ovr) assert len(ovr.processos) == len(Enumerado.tipoProcesso())
def test29_atribui_responsavel_ovr(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) responsavel = '68068220291' responsavel_ovr = atribui_responsavel_ovr(session=session, ovr_id=new_ovr.id, responsavel=responsavel, user_name=new_ovr.user_name) assert new_ovr.responsavel_cpf == '68068220291' session.delete(new_ovr) session.commit()
def test_OVR_libera(self): self.generate_setores_usuarios() ovr = self.create_OVR_valido() ovr.setor_id = '1' session.add(ovr) session.commit() session.refresh(ovr) evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', None) # Falha quando user_2 tenta liberar a OVR with self.assertRaises(ESomenteUsuarioResponsavel): evento = libera_ovr(session, ovr.id, 'user_2') # Falha quando user_2 tenta se autoatribuir a OVR with self.assertRaises(ESomenteUsuarioResponsavel): evento = atribui_responsavel_ovr(session, ovr.id, 'user_2', None) # user_1 libera a OVR evento = libera_ovr(session, ovr.id, 'user_1') assert ovr.responsavel_cpf is None evento = atribui_responsavel_ovr(session, ovr.id, 'user_2', None) assert ovr.responsavel_cpf == 'user_2'
def test_OVR_Processo_Excluir(self): ovr = self.create_OVR_valido() session.refresh(ovr) evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', None) # Recriar processo mas atribuir para outro a Ficha (erro ao excluir) params = { 'numero': '1234', 'tipoprocesso_id': 0, 'ovr_id': ovr.id, 'user_name': 'user_1' } processo = gera_processoovr(session, params) session.refresh(processo) session.refresh(ovr) assert len(ovr.processos) == 1 evento = atribui_responsavel_ovr(session, ovr.id, 'user_2', 'user_1') with self.assertRaises(ESomenteUsuarioResponsavel): excluir_processo(session, processo, 'user_1') session.refresh(ovr) assert len(ovr.processos) == 1
def test_OVR_Processo_Incluir(self): ovr = self.create_OVR_valido() session.refresh(ovr) evento = atribui_responsavel_ovr(session, ovr.id, 'user_2', None) # Tentar criar novo processo (erro ao incluir) params = { 'numero': '1234', 'tipoprocesso_id': 0, 'ovr_id': ovr.id, 'user_name': 'user_1' } with self.assertRaises(ESomenteUsuarioResponsavel): processo = gera_processoovr(session, params)
def test40_excluir_evento(self): new_ovr = gera_objeto(OVR(), session=session, params=self.params_ovr) responsavel = '68068220291' responsavel_ovr = atribui_responsavel_ovr(session=session, ovr_id=new_ovr.id, responsavel=responsavel, user_name=new_ovr.user_name) new_evento = EventoOVR(id=9, ovr_id=new_ovr.id, ovr=new_ovr, tipoevento_id=2, fase=1, motivo='um motivo', excluido=False, meramente_informativo=False) new_evento.user_name = responsavel session.add(new_evento) session.commit() exclui_evento = excluir_evento(session=session, evento_id=new_evento.id, user_cpf=new_evento.user_name) assert new_ovr.tipoevento_id == 13 session.delete(new_ovr) session.commit()
def test_Responsavel(self): # Atribui responsável válido ovr = self.create_OVR_valido() session.refresh(ovr) assert ovr.responsavel_cpf is None assert ovr.fase == 0 usuario = self.create_usuario('123', 'user1') usuario2 = self.create_usuario('456', 'user2') ovr = atribui_responsavel_ovr(session, ovr.id, usuario.cpf, usuario2.cpf) session.refresh(ovr) assert ovr.responsavel_cpf == usuario.cpf assert ovr.fase == 1 # Atribui outro responsável ovr = atribui_responsavel_ovr(session, ovr.id, usuario2.cpf, usuario.cpf) session.refresh(ovr) assert ovr.responsavel_cpf == usuario2.cpf eventos = ovr.historico assert len(eventos) == 2 evento = eventos[0] assert evento.fase == 1 assert evento.motivo == 'De: Nenhum Para: 123' evento = eventos[1] assert evento.fase == 1 # assert evento.motivo == 'Anterior: ' + usuario.cpf assert ovr.fase == evento.fase assert ovr.tipoevento_id == evento.tipoevento_id with self.assertRaises(Exception): excluir_evento(session, ovr.historico[-1].id, usuario2.cpf) assert ovr.fase == evento.fase assert ovr.tipoevento_id == evento.tipoevento_id # testa usuario_index list_user = [usuario, usuario2] index = usuario_index(list_user, usuario.cpf) assert index is not None assert isinstance(index, int)
def test_definir_auditor(self): setor1 = self.create_setor('1', 'Setor 1') setor2 = self.create_setor('2', 'Setor 2') user1 = self.create_usuario('1111', 'Usuario 1', setor1) user2 = self.create_usuario('2222', 'Usuario 2', setor1) ovr = self.create_OVR_valido() ovr.setor_id = '1' session.add(ovr) session.commit() session.refresh(ovr) assert ovr.responsavel_cpf is None # user1 atribui ficha a si mesmo evento1 = atribui_responsavel_ovr(session, ovr.id, user1.cpf, None) assert ovr.responsavel_cpf == user1.cpf # TESTE: user1 define auditor como user2 assert ovr.cpfauditorresponsavel is None evento2 = atribui_responsavel_ovr(session, ovr.id, user2.cpf, user1.cpf, True) assert ovr.responsavel_cpf == user1.cpf assert ovr.cpfauditorresponsavel == user2.cpf # TESTE: Falha quando user_2 tenta se autoatribuir a OVR, não é responsável with self.assertRaises(ESomenteUsuarioResponsavel): evento3 = atribui_responsavel_ovr(session, ovr.id, user2.cpf, user2.cpf) assert ovr.cpfauditorresponsavel == user2.cpf # TESTE: Falha quando user_2 tenta definir auditor with self.assertRaises(ESomenteUsuarioResponsavel): evento4 = atribui_responsavel_ovr(session, ovr.id, user2.cpf, user2.cpf, True) assert ovr.responsavel_cpf == user1.cpf assert ovr.cpfauditorresponsavel == user2.cpf # Teste: user1 se define como auditor responsável evento2 = atribui_responsavel_ovr(session, ovr.id, user1.cpf, user1.cpf, True) assert ovr.responsavel_cpf == user1.cpf assert ovr.cpfauditorresponsavel == user1.cpf
def test_OVR_Processo(self): ovr = self.create_OVR_valido() session.refresh(ovr) evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', None) params = { 'numero': '1234', 'tipoprocesso_id': 0, 'ovr_id': ovr.id, 'user_name': 'user_1' } processo = gera_processoovr(session, params) session.refresh(processo) session.refresh(ovr) assert len(ovr.processos) == 1 excluir_processo(session, processo, 'user_1') session.refresh(ovr) assert len(ovr.processos) == 0
def test_cadastra_RVF_outro_user(self): setor1 = self.create_setor('1', 'Setor 1') setor2 = self.create_setor('2', 'Setor 2') user1 = self.create_usuario('user_1', 'Usuario 1', setor1) user2 = self.create_usuario('user_2', 'Usuario 2', setor1) ovr = self.create_OVR_valido() ovr.setor_id = '1' session.add(ovr) session.commit() session.refresh(ovr) # Atribui OVR ao user_2 evento = atribui_responsavel_ovr(session, ovr.id, 'user_2', None) assert ovr.responsavel_cpf == 'user_2' # user_1 tenta cadastrar RVF with self.assertRaises(ESomenteUsuarioResponsavel): rvf = cadastra_rvf(session, 'user_1', {}, ovr.id) # user_2 cadastra RVF rvf = cadastra_rvf(session, 'user_2', {}, ovr.id) assert rvf.user_name == 'user_2'
def test_a08_encerrar_ficha_com_resultado_com_auditor(self): # Kanoo cria ficha limpa, se autoatribui e tenta encerrar ficha com resultado, com auditor definido self.login('kanoo', 'kanoo') params_ovr = { 'tipooperacao': 'Mercadoria Abandonada', 'recinto_id': 1, 'numeroCEmercante': '131415161718192' } ovr1 = self.create_OVR(params_ovr, 'kanoo') self.session.refresh(ovr1) assert ovr1.id is not None assert ovr1.responsavel is None assert ovr1.fase == 0 # Atribui responsabilidade para kanoo atribui_responsavel_ovr(session, ovr_id=ovr1.id, responsavel='kanoo', user_name=ovr1.user_name) # Kanoo se torna o auditor responsável pela ficha atribui_responsavel_ovr(session, ovr_id=ovr1.id, responsavel='kanoo', user_name=ovr1.user_name, auditor='kanoo') # Cria RVF tipo_apreensao = gera_objeto(TipoApreensao(), session, params={'descricao': 'Cocaína'}) lista_apreensoes = [] params_apreensao = { 'tipo_id': 1, 'peso': 10, 'descricao': 'Cocaína no tênis' } apreensao = gera_apreensao_rvf(session, params=params_apreensao) lista_apreensoes.append(apreensao) lista_imagens = [] params_rvf = { 'numerolote': 'ABCD1234567', 'descricao': 'RFV número 01', 'imagens': lista_imagens, 'apreensoes': lista_apreensoes, 'ovr_id': ovr1.id } cadastra_rvf(session, user_name=ovr1.user_name, params=params_rvf) # Tenta encerrar ficha lista_de_rvfs_apreensoes = lista_de_rvfs_e_apreensoes(session, ovr_id=ovr1.id) payload = {'lista_de_rvfs_apreensoes': lista_de_rvfs_apreensoes} encerramento_ovr = self.app.get('/encerramento_ovr?ovr_id=%s' % ovr1.id) assert encerramento_ovr.status_code == 200 text = str(encerramento_ovr.data) self.render_page(text) csrf_token = self.get_token(text) tipo_resultado_pos = text.find('name="tipo_resultado"') tipo_resultado = text[tipo_resultado_pos + 29:tipo_resultado_pos + 30] payload = { 'csrf_token': csrf_token, 'ovr_id': ovr1.id, 'responsavel': ovr1.responsavel.nome, 'apreensao': apreensao.peso, 'auditor': ovr1.cpfauditorresponsavel, 'tipo_resultado': tipo_resultado } ficha_encerrada = self.app.post('/encerrar_ficha', data=payload, follow_redirects=True) assert ficha_encerrada.status_code == 200 # self.render_page(str(ficha_encerrada.data)) session.delete(ovr1) self.logout()
def test_OVR_Supervisor_Varias_Atribuicoes(self): setor1 = self.create_setor('1', 'Setor 1') setor2 = self.create_setor('2', 'Setor 2') setor3 = self.create_setor('3', 'Setor 3', '1') user1 = self.create_usuario('user_1', 'Usuario 1', setor1) user2 = self.create_usuario('user_2', 'Usuario 2', setor1) ovr = self.create_OVR_valido() ovr.setor_id = '1' session.add(ovr) session.commit() session.refresh(ovr) evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', None) # Atribuir responsavel, faz uma inclusão, atribui outro, tentar retomar, vai dar erro. # Colocar perfil Supervisor e auto-atribuir - params = { 'numero': '1234', 'tipoprocesso_id': 0, 'ovr_id': ovr.id, 'user_name': 'user_1' } processo = gera_processoovr(session, params) session.refresh(processo) session.refresh(ovr) assert len(ovr.processos) == 1 assert ovr.responsavel_cpf == 'user_1' print('Atribuição 1') evento = atribui_responsavel_ovr(session, ovr.id, 'user_2', 'user_1') session.refresh(ovr) assert ovr.responsavel_cpf == 'user_2' print('Atribuição 2') with self.assertRaises(ESomenteUsuarioResponsavel): evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', 'user_1') perfilusuario = PerfilUsuario() perfilusuario.cpf = 'user_1' perfilusuario.perfil = Enumerado.get_id(perfilAcesso, 'Supervisor') session.add(perfilusuario) session.commit() print('Atribuição 3 - já é Supervisor') evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', 'user_1') assert ovr.responsavel_cpf == 'user_1' ### Se ovr estiver em Setor diferente com outra pessoa, deve falhar novamente!!!! ovr.setor_id = '2' ovr.responsavel_cpf = 'chapolin' session.add(ovr) session.commit() print('Atribuição 4 - é Supervisor mas ovr em outro Setor') with self.assertRaises(ESomenteUsuarioResponsavel): evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', 'user_1') ### Continua falhando quando o setor da ficha seja filho do setor do usuário supervisor ovr.setor_id = '3' ovr.responsavel_cpf = 'chaves' session.add(ovr) session.commit() print('Atribuição 5 - é Supervisor mas ovr em outro Setor filho') # with self.assertRaises(ESomenteUsuarioResponsavel): evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', 'chaves') with self.assertRaises(ESomenteUsuarioResponsavel): evento = atribui_responsavel_ovr(session, ovr.id, 'user_1', 'chaves') assert ovr.responsavel_cpf == 'user_1'