Пример #1
0
    def test_delete(self, get_client_db):
        # DELETE
        client, _db, headers = get_client_db
        clear_data(_db)

        mock_data = from_img_dir_to_bytes('./tests/test_images/ivete.jpg')

        # CENÁRIO 1 - Tentativa com turma não registrada
        response = client.delete('/turmas/FAKECLASS/participantes/1/', headers=headers)

        assert response.status_code == 400
        assert response.json['message'] == 'Não existe turma com esse codigo no banco de dados.'

        # CENÁRIO 2 - OK
        _db.session.add(Professor(nome='AAA', departamento='AAA', instituicao='AAA'))
        _db.session.add(Turma(nome='Metodologia Cientifica', codigo='SCC5900', semestre="2020.2", professor_id=1))
        _db.session.add(Aluno(nome='Ivete', curso='Danca', matricula='101010', embedding=mock_data))
        _db.session.add(Participante(turma_codigo='SCC5900', matricula='101010'))
        _db.session.commit()
        response = client.delete('/turmas/SCC5900/participantes/1/', headers=headers)
        assert response.status_code == 204

        # CENÁRIO 3 - Tentativa de excluir aluno não mais participante
        response = client.delete('/turmas/SCC5900/participantes/1/', headers=headers)
        assert response.status_code == 400
        assert response.json['message'] == 'Não existe participante com esse ID no banco de dados dessa turma.'

        # CLEAN UP
        clear_data(_db)
    def test_delete(self, get_client_db):
        # DELETE
        client, _db, headers = get_client_db
        clear_data(_db)
        
        # CENÁRIO 1 - Tentativa com turma não registrada
        response = client.delete('/turmas/SCC5900/frequencias/1/', headers=headers)

        assert response.status_code == 400
        assert response.json['message'] == 'Não existe turma com esse codigo no banco de dados.'

        # CENÁRIO 2 - OK
        _db.session.add(Professor(nome='AAA', departamento='AAA', instituicao='AAA'))
        _db.session.add(Turma(nome='Metodologia Cientifica', codigo='SCC5900', semestre="2020.2", professor_id=1))
        mock_img = from_img_dir_to_bytes('./tests/test_images/ivete.jpg')
        mock_face = array(process_faces(mock_img))
        mock_face_embedding = from_array_to_bytes(mock_face)
        _db.session.add(Aluno(nome='Ivete', curso='Danca', matricula='101010', embedding=mock_face_embedding))
        _db.session.add(Participante(turma_codigo='SCC5900', matricula='101010'))
        mock_data_img_turma = from_img_dir_to_bytes('./tests/test_images/ivete-e-boy.jpg')
        _db.session.add(Frequencia(turma_codigo='SCC5900', imagem_turma=mock_data_img_turma))
        _db.session.commit()

        response = client.delete('/turmas/SCC5900/frequencias/1/', headers=headers)
        assert response.status_code == 204

        # CENÁRIO 3 - Tentativa com frequência não mais presente
        response = client.delete('/turmas/SCC5900/frequencias/1/', headers=headers)
        assert response.status_code == 400
        assert response.json['message'] == 'Não existe frequencia com esse ID no banco de dados.'

        # CLEAN UP
        clear_data(_db)
    def test_put(self, get_client_db):
        # PUT
        client, _db, headers = get_client_db
        clear_data(_db)

        # CENÁRIO 1 - Tentativa de atualizar turma com código não presente no banco de dados
        data = {"nome": "Ciencias Sociais"}
        response = client.put('/turmas/SCC5900/', data=data, headers=headers)
        assert response.status_code == 400
        assert response.json[
            'message'] == 'Não existe turma com esse codigo no banco de dados.'

        # CENÁRIO 2 - OK
        _db.session.add(
            Professor(nome='AAA', departamento='AAA', instituicao='AAA'))
        _db.session.add(
            Turma(nome='Metodologia Cientifica',
                  codigo='SCC5900',
                  semestre="2020.2",
                  professor_id=1))
        _db.session.commit()

        response = client.put('/turmas/SCC5900/', data=data, headers=headers)
        assert response.status_code == 204

        # CENÁRIO 3 - Tentativa de atualizar turma com ID de professor não existente
        data = {"professor_id": 100}
        response = client.put('/turmas/SCC5900/', data=data, headers=headers)
        assert response.status_code == 400
        assert response.json[
            'message'] == 'Não existe professor com esse ID no banco de dados.'

        # CLEAN UP
        clear_data(_db)
    def test_delete(self, get_client_db):
        # DELETE
        client, _db, headers = get_client_db
        clear_data(_db)

        # CENÁRIO 1 - OK
        _db.session.add(
            Professor(nome='AAA', departamento='AAA', instituicao='AAA'))
        _db.session.add(
            Turma(nome='Metodologia Cientifica',
                  codigo='SCC5900',
                  semestre="2020.2",
                  professor_id=1))
        _db.session.commit()

        response = client.delete('/turmas/SCC5900/', headers=headers)
        assert response.status_code == 204

        # CENÁRIO 2 - Tentativa de deletar turma que não existe mais no banco de dados
        response = client.delete('/turmas/SCC5900/', headers=headers)
        assert response.status_code == 400
        assert response.json[
            'message'] == 'Não existe turma com esse codigo no banco de dados.'

        # CLEAN UP
        clear_data(_db)
Пример #5
0
    def test_get(self, get_client_db):
        # GET
        client, _db, headers = get_client_db
        clear_data(_db)

        # CENÁRIO 1.1 - Tentativa com turma não registrada
        response = client.get('/turmas/FAKECLASS/participantes/', headers=headers)

        assert response.status_code == 400
        assert response.json['message'] == 'Não existe turma com esse codigo no banco de dados.'

        # CENÁRIO 1.b - Tentativa com turma não registrada
        response = client.get('/turmas/FAKECLASS/participantes/1/', headers=headers)

        assert response.status_code == 400
        assert response.json['message'] == 'Não existe turma com esse codigo no banco de dados.'

        # CENÁRIO 2 - Turma sem participantes
        _db.session.add(Professor(nome='AAA', departamento='AAA', instituicao='AAA'))
        _db.session.add(Turma(nome='Metodologia Cientifica', codigo='SCC5900', semestre="2020.2", professor_id=1))
        _db.session.commit()

        response = client.get('/turmas/SCC5900/participantes/', headers=headers)

        assert response.status_code == 200
        assert response.json == []

        # CENÁRIO 3 - OK
        mock_data = from_img_dir_to_bytes('./tests/test_images/ivete.jpg')
        _db.session.add(Aluno(nome='Ivete', curso='Danca', matricula='101010', embedding=mock_data))
        _db.session.add(Participante(turma_codigo='SCC5900', matricula='101010'))
        _db.session.commit()

        response = client.get('/turmas/SCC5900/participantes/', headers=headers)
        assert response.json[0]['matricula'] == '101010'

        response = client.get('/turmas/SCC5900/participantes/1/', headers=headers)
        assert response.json[0]['matricula'] == '101010'

        response = client.get('/turmas/SCC5900/participantes/?matricula=101010', headers=headers)
        assert response.json[0]['matricula'] == '101010'

        # CENÁRIO 4 - Tentativa de obter participante com ID sem registro no banco de dados
        response = client.get('/turmas/SCC5900/participantes/100/', headers=headers)

        assert response.status_code == 400
        assert response.json['message'] == 'Não existe participante com esse ID no banco de dados dessa turma.'

        # CLEAN UP
        clear_data(_db)
    def test_get(self, get_client_db):
        # GET
        client, _db, headers = get_client_db
        clear_data(_db)

        # CENÁRIO 1 - Não existem turmas registradas ainda
        response = client.get('/turmas/', headers=headers)

        assert response.status_code == 200
        assert response.json == []

        # CENÁRIO 2 - Não existe turma com o código indicado
        response = client.get('/turmas/1/', headers=headers)
        assert response.status_code == 400
        assert response.json[
            'message'] == 'Não existe turma com esse codigo no banco de dados.'

        # CENÁRIO 3 - OK
        _db.session.add(
            Professor(nome='AAA', departamento='AAA', instituicao='AAA'))
        _db.session.add(
            Turma(nome='Metodologia Cientifica',
                  codigo='SCC5900',
                  semestre="2020.2",
                  professor_id=1))
        _db.session.commit()

        response = client.get('/turmas/', headers=headers)
        assert response.json[0]['nome'] == 'Metodologia Cientifica'

        response = client.get('/turmas/?nome=Metodologia%20Cientifica',
                              headers=headers)
        assert response.json[0]['nome'] == 'Metodologia Cientifica'

        response = client.get('/turmas/?codigo=SCC5900', headers=headers)
        assert response.json[0]['nome'] == 'Metodologia Cientifica'

        response = client.get('/turmas/?semestre=2020.2', headers=headers)
        assert response.json[0]['nome'] == 'Metodologia Cientifica'

        response = client.get('/turmas/?professor_id=1', headers=headers)
        assert response.json[0]['nome'] == 'Metodologia Cientifica'

        response = client.get('/turmas/SCC5900/', headers=headers)
        assert response.json[0]['nome'] == 'Metodologia Cientifica'

        # CLEAN UP
        clear_data(_db)
def novoTurma(request):

    contexto = {}
    contexto['cursos'] = Curso.objects.all()

    if request.POST:
        form = TurmaForm(request.POST)

        if form.is_valid():
            form.save()
            return HttpResponseRedirect("/painel/administrador/turmas")
        else:
            contexto['form'] = form
            contexto['turma'] = Turma(form)
    else:
        contexto['form'] = TurmaForm()

    return render(request, "administrador/turmas/novo.html", contexto)
Пример #8
0
    def test_post(self, get_client_db):
        # POST
        client, _db, headers = get_client_db
        clear_data(_db)
        
        _db.session.add(Professor(nome='AAA', departamento='AAA', instituicao='AAA'))
        _db.session.add(Turma(nome='Metodologia Cientifica', codigo='SCC5900', semestre="2020.2", professor_id=1))
        _db.session.commit()

        # CENÁRIO 1 - Tentativa com turma não registrada
        response = client.post('/turmas/FAKECLASS/participantes/', data={'matricula': '1'}, headers=headers)

        assert response.status_code == 400
        assert response.json['message'] == 'Não existe turma com esse codigo no banco de dados.'
        
        
        # CENÁRIO 2 - Aluno com matrícula não registrada no banco de dados
        data = {
            "matricula": "101010",
        }
        response = client.post('/turmas/SCC5900/participantes/', data=data, headers=headers)
        assert response.status_code == 400
        assert response.json['message'] == 'Não existe aluno com essa matrícula no banco de dados.'

        # CENÁRIO 3 - OK
        mock_data = from_img_dir_to_bytes('./tests/test_images/ivete.jpg')
        _db.session.add(Aluno(nome='Ivete', curso='Danca', matricula='101010', embedding=mock_data))
        _db.session.commit()        

        response = client.post('/turmas/SCC5900/participantes/', data=data, headers=headers)

        assert response.status_code == 201
        assert response.json == {'participante.id': 1}

        # CENÁRIO 4 - Aluno já registrado na disciplina
        response = client.post('/turmas/SCC5900/participantes/', data=data, headers=headers)

        assert response.status_code == 400
        assert response.json['message'] == 'Esse aluno já foi registrado nessa disciplina.'

        # CLEAN UP
        clear_data(_db)
def editarTurma(request, idTurma):

    turma = Turma.objects.get(id=idTurma)

    contexto = {}
    contexto['cursos'] = Curso.objects.all()

    if request.POST:
        form = TurmaForm(request.POST, instance=turma)

        if form.is_valid():
            form.save()
            return HttpResponseRedirect("/painel/administrador/turmas")
        else:
            contexto['form'] = form
            contexto['turma'] = Turma(form)
    else:
        contexto['form'] = TurmaForm(instance=turma)
        contexto['turma'] = turma

    return render(request, "administrador/turmas/editar.html", contexto)
    def test_get(self, get_client_db):
        # GET
        client, _db, headers = get_client_db
        clear_data(_db)

        _db.session.add(Professor(nome='AAA', departamento='AAA', instituicao='AAA'))
        _db.session.add(Turma(nome='Metodologia Cientifica', codigo='SCC5900', semestre="2020.2", professor_id=1))
        mock_img = from_img_dir_to_bytes('./tests/test_images/ivete.jpg')
        mock_face = array(process_faces(mock_img))
        mock_face_embedding = from_array_to_bytes(mock_face)
        _db.session.add(Aluno(nome='Ivete', curso='Danca', matricula='101010', embedding=mock_face_embedding))
        _db.session.add(Participante(turma_codigo='SCC5900', matricula='101010'))
        mock_data_img_turma = from_img_dir_to_bytes('./tests/test_images/ivete-e-boy.jpg')
        _db.session.add(Frequencia(turma_codigo='SCC5900', imagem_turma=mock_data_img_turma))
        _db.session.add(Presenca(frequencia_id=1, participante_id=1, status=True))
        _db.session.add(AnotacaoErros(frequencia_id=1, falsos_positivos=1, falsos_negativos=0))
        _db.session.commit()


        # CENÁRIO 1 - Tentativa com turma não registrada
        response = client.get('/turmas/FAKECLASS/frequencias/1/erros/', headers=headers)

        assert response.status_code == 400
        assert response.json['message'] == 'Não existe turma com esse codigo no banco de dados.'

        # CENÁRIO 2 - Tentativa com frequência não registrada
        response = client.get('/turmas/SCC5900/frequencias/100/erros/', headers=headers)

        assert response.status_code == 400
        assert response.json['message'] == 'Não existe frequencia com esse ID no banco de dados.'

        # CENÁRIO 3 - OK
        response = client.get('/turmas/SCC5900/frequencias/1/erros/', headers=headers)

        assert response.json[0]['frequencia_id'] == 1
        assert response.json[0]['falsos_positivos'] == 1
        assert response.json[0]['falsos_negativos'] == 0

        # CLEAN UP
        clear_data(_db)
    def test_post(self, get_client_db):
        # POST
        client, _db, headers = get_client_db
        clear_data(_db)

        # CENÁRIO 1 - Tentativa com turma não registrada
        file = os.path.join("./tests/test_images/ivete-e-boy.jpg")
        mock_data_img_turma = (file, './tests/test_images/ivete-e-boy.jpg')
        data = {
            "imagem_turma": mock_data_img_turma
        }

        response = client.post('/turmas/SCC5900/frequencias/', data=data, headers=headers)
        assert response.status_code == 400 
        assert response.json['message'] == 'Não existe turma com esse codigo no banco de dados.'

        # CENÁRIO 2 - Tentativa com turma sem participantes
        _db.session.add(Professor(nome='AAA', departamento='AAA', instituicao='AAA'))
        _db.session.add(Turma(nome='Metodologia Cientifica', codigo='SCC5900', semestre="2020.2", professor_id=1))
        _db.session.commit()

        response = client.post('/turmas/SCC5900/frequencias/', data=data, headers=headers)
        assert response.status_code == 400 
        assert response.json['message'] == 'Não existem participantes registrados na turma.'
        
        # CENÁRIO 3 - OK
        mock_img = from_img_dir_to_bytes('./tests/test_images/ivete.jpg')
        mock_face = array(process_faces(mock_img))
        mock_face_embedding = from_array_to_bytes(mock_face)
        _db.session.add(Aluno(nome='Ivete', curso='Danca', matricula='101010', embedding=mock_face_embedding))
        _db.session.add(Participante(turma_codigo='SCC5900', matricula='101010'))
        _db.session.commit()        
        
        response = client.post('/turmas/SCC5900/frequencias/', data=data, headers=headers)
        assert response.status_code == 201
        assert response.json == {'frequencia.id': 1}

        # CLEAN UP
        clear_data(_db)
Пример #12
0
def carregar_turma(row):
    # TODO fazer o teste se a turma já existe aqui e retornar!

    siape = row[2] if row[2] != '' else None
    id_componente_curricular = row[5]

    if ComponenteCurricular.objects.filter(
            id_componente=id_componente_curricular).exists():
        cc = ComponenteCurricular.objects.get(
            id_componente=id_componente_curricular)

        docente = carregar_docente_substituto(siape=siape, componente=cc)

        curriculo = get_curriculo_by_cc(id_componente_curricular)

        id_turma = row[0]
        codigo_turma = row[1]
        matricula_docente_externo = row[3] if row[3] != '' else None
        observacao = row[4].strip()
        ch_dedicada_periodo = row[6] if row[6] != '' else None
        nivel_ensino = row[7]
        campus_turma = row[8]
        local = row[9]
        ano = row[10] if row[10] != '' else None
        periodo = row[11] if row[11] != '' else None
        data_inicio_str = row[12]
        data_inicio = parse(data_inicio_str)
        data_fim_str = row[13]
        data_fim = parse(data_fim_str)
        descricao_horario = row[14]
        total_solicitacoes = row[15] if row[15] != '' else None
        capacidade_aluno = row[16]
        tipo = row[17] if row[17] != '' else None
        distancia = row[18] if row[18] == 'true' else False
        data_consolidacao_str = row[19] if row[19] != '' else None
        data_consolidacao = data_consolidacao_str if data_consolidacao_str is None \
            else parse(data_consolidacao_str)
        agrupadora = row[20] if row[20] == 'true' else False
        id_turma_agrupadora = row[21] if row[21] != '' else None
        qtd_aulas_lancadas = row[22] if row[22] != '' else None
        situacao_turma = row[23]
        convenio = row[24]
        modalidade_participantes = row[25]

        if not Turma.objects.filter(id_turma=id_turma).exists():
            print("Adicionando Turma " + id_turma + " - " + codigo_turma +
                  "- " + cc.codigo + " - " + cc.nome + " - " +
                  descricao_horario)
            turma = Turma(id_turma=id_turma,
                          codigo_turma=codigo_turma,
                          docente=docente,
                          matricula_docente_externo=matricula_docente_externo,
                          observacao=observacao,
                          componente=cc,
                          ch_dedicada_periodo=ch_dedicada_periodo,
                          nivel_ensino=nivel_ensino,
                          campus_turma=campus_turma,
                          local=local,
                          ano=ano,
                          periodo=periodo,
                          data_inicio=data_inicio,
                          data_fim=data_fim,
                          descricao_horario=descricao_horario,
                          total_solicitacoes=total_solicitacoes,
                          capacidade_aluno=capacidade_aluno,
                          tipo=tipo,
                          distancia=distancia,
                          data_consolidacao=data_consolidacao,
                          agrupadora=agrupadora,
                          id_turma_agrupadora=id_turma_agrupadora,
                          qtd_aulas_lancadas=qtd_aulas_lancadas,
                          situacao_turma=situacao_turma,
                          convenio=convenio,
                          modalidade_participantes=modalidade_participantes)
            turma.save()
        else:
            print('.', end="")
Пример #13
0
def criar_turmas():
    print("Criando Turmas 2019.1 e 2019.2 para os Cursos do CERES ...!")

    with open('turmas-2019.2.csv') as csvfile:
        turmas = csv.reader(csvfile, delimiter=';')
        next(turmas)  # skip header

        for row in turmas:

            siape = row[2] if row[2] != '' else None
            id_componente_curricular = row[5]

            if ComponenteCurricular.objects.filter(
                    id_componente=id_componente_curricular).exists():
                cc = ComponenteCurricular.objects.get(
                    id_componente=id_componente_curricular)
                print(cc)

                docente = None
                if siape != '' and Docente.objects.filter(
                        siape=siape).exists():
                    # Professores Substitutos e Temporários não estão na lista
                    docente = Docente.objects.get(siape=siape)
                    print(docente)

                id_turma = row[0]
                codigo_turma = row[1]
                matricula_docente_externo = row[3] if row[3] != '' else None

                if row[3] != '' and row[3] is not None:
                    print(matricula_docente_externo)

                observacao = row[4].strip()
                ch_dedicada_periodo = row[6] if row[6] != '' else None
                nivel_ensino = row[7]
                campus_turma = row[8]
                local = row[9]
                ano = row[10] if row[10] != '' else None
                periodo = row[11] if row[11] != '' else None
                data_inicio_str = row[12]
                data_inicio = parse(data_inicio_str)
                data_fim_str = row[13]
                data_fim = parse(data_fim_str)
                descricao_horario = row[14]
                total_solicitacoes = row[15] if row[15] != '' else None
                capacidade_aluno = row[16]
                tipo = row[17] if row[17] != '' else None
                distancia = row[18] if row[18] == 'true' else False
                data_consolidacao_str = row[19] if row[19] != '' else None
                data_consolidacao = data_consolidacao_str if data_consolidacao_str is None \
                    else parse(data_consolidacao_str)
                agrupadora = row[20] if row[20] == 'true' else False
                id_turma_agrupadora = row[21] if row[21] != '' else None
                qtd_aulas_lancadas = row[22] if row[22] != '' else None
                situacao_turma = row[23]
                convenio = row[24]
                modalidade_participantes = row[25]

                turma = Turma(
                    id_turma=id_turma,
                    codigo_turma=codigo_turma,
                    siape=siape,
                    matricula_docente_externo=matricula_docente_externo,
                    observacao=observacao,
                    componente=cc,
                    ch_dedicada_periodo=ch_dedicada_periodo,
                    nivel_ensino=nivel_ensino,
                    campus_turma=campus_turma,
                    local=local,
                    ano=ano,
                    periodo=periodo,
                    data_inicio=data_inicio,
                    data_fim=data_fim,
                    descricao_horario=descricao_horario,
                    total_solicitacoes=total_solicitacoes,
                    capacidade_aluno=capacidade_aluno,
                    tipo=tipo,
                    distancia=distancia,
                    data_consolidacao=data_consolidacao,
                    agrupadora=agrupadora,
                    id_turma_agrupadora=id_turma_agrupadora,
                    qtd_aulas_lancadas=qtd_aulas_lancadas,
                    situacao_turma=situacao_turma,
                    convenio=convenio,
                    modalidade_participantes=modalidade_participantes)
                turma.save()
Пример #14
0
    def test_post(self, get_client_db):
        # POST
        client, _db, headers = get_client_db
        clear_data(_db)

        _db.session.add(
            Professor(nome='AAA', departamento='AAA', instituicao='AAA'))
        _db.session.add(
            Turma(nome='Metodologia Cientifica',
                  codigo='SCC5900',
                  semestre="2020.2",
                  professor_id=1))
        mock_img = from_img_dir_to_bytes('./tests/test_images/ivete.jpg')
        mock_face = array(process_faces(mock_img))
        mock_face_embedding = from_array_to_bytes(mock_face)
        _db.session.add(
            Aluno(nome='Ivete',
                  curso='Danca',
                  matricula='101010',
                  embedding=mock_face_embedding))
        _db.session.add(
            Participante(turma_codigo='SCC5900', matricula='101010'))
        mock_data_img_turma = from_img_dir_to_bytes(
            './tests/test_images/ivete-e-boy.jpg')
        _db.session.add(
            Frequencia(turma_codigo='SCC5900',
                       imagem_turma=mock_data_img_turma))
        _db.session.commit()

        # CENÁRIO 1 - Matrícula inválida
        data = {"matricula": 101011, "status": True}

        response = client.post('/turmas/SCC5900/frequencias/1/presencas/',
                               data=data,
                               headers=headers)
        assert response.status_code == 400
        assert response.json[
            'message'] == 'Não existe aluno com essa matricula participando da disciplina no banco de dados.'

        # CENÁRIO 2 - OK
        data = {"matricula": 101010, "status": True}

        response = client.post('/turmas/SCC5900/frequencias/1/presencas/',
                               data=data,
                               headers=headers)

        assert response.status_code == 201
        assert response.json == {'participante.id': 1}

        # CENÁRIO 3 - Aluno não registrado
        response = client.post('/turmas/SCC5900/frequencias/1/presencas/',
                               data=data,
                               headers=headers)

        assert response.status_code == 400
        assert response.json[
            'message'] == 'Registro de presença desse aluno já está presente no banco de dados.'

        # CENÁRIO 4 - Não existe turma com o código indicado
        response = client.post('/turmas/FAKECLASS/frequencias/1/presencas/',
                               data=data,
                               headers=headers)

        assert response.status_code == 400
        assert response.json[
            'message'] == 'Não existe turma com esse codigo no banco de dados.'

        # CENÁRIO 5 - Não existe frequencia com o ID indicado
        response = client.post('/turmas/SCC5900/frequencias/100/presencas/',
                               data=data,
                               headers=headers)

        assert response.status_code == 400
        assert response.json[
            'message'] == 'Não existe frequencia com esse ID no banco de dados.'

        # CLEAN UP
        clear_data(_db)
Пример #15
0
    def test_delete(self, get_client_db):
        # DELETE
        client, _db, headers = get_client_db
        clear_data(_db)

        _db.session.add(
            Professor(nome='AAA', departamento='AAA', instituicao='AAA'))
        _db.session.add(
            Turma(nome='Metodologia Cientifica',
                  codigo='SCC5900',
                  semestre="2020.2",
                  professor_id=1))
        mock_img = from_img_dir_to_bytes('./tests/test_images/ivete.jpg')
        mock_face = array(process_faces(mock_img))
        mock_face_embedding = from_array_to_bytes(mock_face)
        _db.session.add(
            Aluno(nome='Ivete',
                  curso='Danca',
                  matricula='101010',
                  embedding=mock_face_embedding))
        _db.session.add(
            Participante(turma_codigo='SCC5900', matricula='101010'))
        mock_data_img_turma = from_img_dir_to_bytes(
            './tests/test_images/ivete-e-boy.jpg')
        _db.session.add(
            Frequencia(turma_codigo='SCC5900',
                       imagem_turma=mock_data_img_turma))
        _db.session.add(
            Presenca(frequencia_id=1, participante_id=1, status=True))
        _db.session.add(
            AnotacaoErros(frequencia_id=1,
                          falsos_positivos=0,
                          falsos_negativos=0))
        _db.session.commit()

        # CENÁRIO 1 - Matrícula inválida
        data = {
            "matricula": 202020,
        }
        response = client.delete('/turmas/SCC5900/frequencias/1/presencas/',
                                 data=data,
                                 headers=headers)
        assert response.status_code == 400
        assert response.json[
            'message'] == 'Não existe aluno com essa matricula participando da disciplina no banco de dados.'

        # CENÁRIO 2 - OK
        data = {
            "matricula": 101010,
        }
        response = client.delete('/turmas/SCC5900/frequencias/1/presencas/',
                                 data=data,
                                 headers=headers)
        assert response.status_code == 204

        # CENÁRIO 3 - Não existe turma com o código indicado
        response = client.delete('/turmas/FAKECLASS/frequencias/1/presencas/',
                                 data=data,
                                 headers=headers)

        assert response.status_code == 400
        assert response.json[
            'message'] == 'Não existe turma com esse codigo no banco de dados.'

        # CENÁRIO 4 - Não existe frequencia com o ID indicado
        response = client.delete('/turmas/SCC5900/frequencias/100/presencas/',
                                 data=data,
                                 headers=headers)

        assert response.status_code == 400
        assert response.json[
            'message'] == 'Não existe frequencia com esse ID no banco de dados.'

        # CLEAN UP
        clear_data(_db)