Пример #1
0
 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')
Пример #2
0
 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
Пример #3
0
 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
Пример #4
0
 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())
Пример #5
0
 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()
Пример #6
0
 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'
Пример #7
0
 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
Пример #8
0
 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)
Пример #9
0
 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()
Пример #10
0
 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)
Пример #11
0
 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
Пример #12
0
 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
Пример #13
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'
Пример #14
0
    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()
Пример #15
0
 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'