class EditarLancamentoPostOk(TestCase):
    def setUp(self):
        self.cadastro = SubmissaoModel(equipe=CHOICES_EQUIPES[1][0],
                                       status=CHOICES_CONDICAO[0][0],
                                       problema=CHOICES_PROBLEMAS[1][0],
                                       tempo=20)
        self.cadastro.save()
        self.cadastro.tempo = 50
        self.form = SubmissaoForm(instance=self.cadastro)
        self.data = dict(
            id_lancamento=self.cadastro.pk,
            equipe=CHOICES_EQUIPES[4][0],
            status=CHOICES_CONDICAO[1][0],
            problema=CHOICES_PROBLEMAS[6][0],
            tempo=50,
        )
        self.resp = self.client.post(r(view_in_test), self.data)

    def test_tempo_alterado(self):
        gravado = SubmissaoModel.objects.get(pk=1)
        self.assertEqual(50, gravado.tempo)
        self.assertNotEqual(20, gravado.status)

    def test_problema_status(self):
        gravado = SubmissaoModel.objects.get(pk=1)
        self.assertEqual(CHOICES_PROBLEMAS[6][0], gravado.problema)
        self.assertNotEqual(CHOICES_PROBLEMAS[1][0], gravado.problema)

    def test_status_alterado(self):
        gravado = SubmissaoModel.objects.get(pk=1)
        self.assertEqual(CHOICES_CONDICAO[1][0], gravado.status)
        self.assertNotEqual(CHOICES_CONDICAO[0][0], gravado.status)

    def test_equipe_alterado(self):
        gravado = SubmissaoModel.objects.get(pk=1)
        self.assertEqual(CHOICES_EQUIPES[4][0], gravado.equipe)

    def test_template(self):
        self.assertTemplateUsed(self.resp, template_post_in_ok_case)

    def test_200_template(self):
        self.assertEqual(200, self.resp.status_code)

    def test_csrf(self):
        self.assertContains(self.resp, 'csrfmiddlewaretoken')

    def test_context_form(self):
        form = self.resp.context['form']
        self.assertIsInstance(form, PreSubmissaoForm)

    def test_html_template(self):
        tags = (
            ('Olimpíada', 1),
            ('<form', 2),
            ('</form>', 2),
            ('type="submit"', 2),
        )
        for text, count in tags:
            with self.subTest():
                self.assertContains(self.resp, text, count)
예제 #2
0
class SubmissaoModelTest(TestCase):
    def setUp(self):
        self.status = CHOICES_CONDICAO[0][0]
        self.equipe = CHOICES_EQUIPES[1][0]
        self.problema = CHOICES_PROBLEMAS[1][0]
        self.cadastro = SubmissaoModel(
            equipe=self.equipe,
            status=self.status,
            problema=self.problema,
            tempo=20,
        )
        self.cadastro.save()

    def test_created(self):
        self.assertTrue(SubmissaoModel.objects.exists())

    def test_modificado_em(self):
        self.assertIsInstance(self.cadastro.modificado_em, datetime)

    def test_problema(self):
        problema = self.cadastro.__dict__.get('problema', '')
        self.assertEqual(problema, self.problema)

    def test_status(self):
        status = self.cadastro.__dict__.get('status', '')
        self.assertEqual(status, self.status)

    def test_equipe(self):
        equipe = self.cadastro.__dict__.get('equipe', '')
        self.assertEqual(equipe, self.equipe)

    def test_tempo(self):
        tempo = self.cadastro.__dict__.get('tempo', '')
        self.assertEqual(tempo, 20)
 def setUp(self):
     self.cadastro = SubmissaoModel(equipe=CHOICES_EQUIPES[1][0],
                                    status=CHOICES_CONDICAO[0][0],
                                    problema=CHOICES_PROBLEMAS[1][0],
                                    tempo=20)
     self.cadastro.save()
     self.data = dict(id_lancamento=self.cadastro.pk, )
     self.resp = self.client.post(r(view_in_test), self.data)
예제 #4
0
 def setUp(self):
     self.status = CHOICES_CONDICAO[0][0]
     self.equipe = CHOICES_EQUIPES[1][0]
     self.problema = CHOICES_PROBLEMAS[1][0]
     self.cadastro = SubmissaoModel(
         equipe=self.equipe,
         status=self.status,
         problema=self.problema,
         tempo=20,
     )
     self.cadastro.save()
예제 #5
0
class RemoverLancamentoPostFail(TestCase):
    def setUp(self):
        self.cadastro = SubmissaoModel(equipe=CHOICES_EQUIPES[1][0],
                                       status=CHOICES_CONDICAO[0][0],
                                       problema=CHOICES_PROBLEMAS[1][0],
                                       tempo=20)
        self.cadastro.save()
        self.data = dict(id_lancamento=self.cadastro.pk, )
        self.cadastro.delete()
        self.resp = self.client.post(r(view_in_test), self.data)

    def test_template(self):
        self.assertTemplateUsed(self.resp, template_post_in_fail_case)

    def test_200_template(self):
        self.assertEqual(200, self.resp.status_code)

    def test_csrf(self):
        self.assertContains(self.resp, 'csrfmiddlewaretoken')

    def test_context_form(self):
        form = self.resp.context['form']
        self.assertIsInstance(form, PreSubmissaoForm)

    def test_context_id_lancamento(self):
        id_lancamento = self.resp.context['id_lancamento']
        self.assertIsInstance(id_lancamento, str)

    def test_html_template(self):
        tags = (
            ('Olimpíada', 1),
            ('<form', 2),
            ('</form>', 2),
            ('type="submit"', 2),
        )
        for text, count in tags:
            with self.subTest():
                self.assertContains(self.resp, text, count)
예제 #6
0
 def _pontuacao_por_equipe_problema(self, equipe, problema):
     submissao_rejeitadas = SubmissaoModel.objects.filter(
         equipe=equipe).filter(problema=problema).filter(status='RE')
     submissao_aceitas = SubmissaoModel.objects.filter(
         equipe=equipe).filter(problema=problema).filter(status='AC')
     qtd_envio_rejeitadas = submissao_rejeitadas.count()
     qtd_envio_aceitas = submissao_aceitas.count()
     qtd_envio = qtd_envio_rejeitadas + qtd_envio_aceitas
     tempo_total = 0
     if qtd_envio_aceitas > 0:
         punicao = qtd_envio_rejeitadas * SubmissaoModel().get_punicao()
         tempo_aceito = submissao_aceitas.aggregate(Sum('tempo'))
         tempo1 = tempo_aceito.get('tempo__sum', '0')
         tempo_total = punicao + tempo1
     return qtd_envio, tempo_total
예제 #7
0
 def setUp(self):
     cad = SubmissaoModel(equipe=1, problema=2, status='RE', tempo=5)
     cad.save()
     cad = SubmissaoModel(equipe=1, problema=1, status='RE', tempo=5)
     cad.save()
     cad = SubmissaoModel(equipe=1, problema=1, status='AC', tempo=20)
     cad.save()
     cad = SubmissaoModel(equipe=1, problema=2, status='AC', tempo=55)
     cad.save()
     cad = SubmissaoModel(equipe=1, problema=5, status='RE', tempo=10)
     cad.save()
     cad = SubmissaoModel(equipe=1, problema=5, status='AC', tempo=20)
     cad.save()
     cad = SubmissaoModel(equipe=2, problema=1, status='RE', tempo=12)
     cad.save()
     cad = SubmissaoModel(equipe=5, problema=2, status='RE', tempo=20)
     cad.save()
     cad = SubmissaoModel(equipe=7, problema=1, status='AC', tempo=12)
     cad.save()
     cad = SubmissaoModel(equipe=9, problema=1, status='AC', tempo=10)
     cad.save()
     cad = SubmissaoModel(equipe=9, problema=2, status='AC', tempo=12)
     cad.save()
     cad = SubmissaoModel(equipe=9, problema=5, status='AC', tempo=12)
     cad.save()
     self.placar = Placar()
예제 #8
0
 def setUp(self):
     cad = SubmissaoModel(equipe=1, problema=2, status='RE', tempo=5)
     cad.save()
     cad = SubmissaoModel(equipe=1, problema=1, status='RE', tempo=5)
     cad.save()
     cad = SubmissaoModel(equipe=1, problema=1, status='AC', tempo=20)
     cad.save()
     cad = SubmissaoModel(equipe=1, problema=2, status='AC', tempo=55)
     cad.save()
     cad = SubmissaoModel(equipe=1, problema=5, status='RE', tempo=10)
     cad.save()
     cad = SubmissaoModel(equipe=1, problema=5, status='AC', tempo=20)
     cad.save()
     cad = SubmissaoModel(equipe=2, problema=1, status='RE', tempo=12)
     cad.save()
     cad = SubmissaoModel(equipe=5, problema=2, status='RE', tempo=20)
     cad.save()
     cad = SubmissaoModel(equipe=7, problema=1, status='AC', tempo=12)
     cad.save()
     cad = SubmissaoModel(equipe=9, problema=1, status='AC', tempo=10)
     cad.save()
     cad = SubmissaoModel(equipe=9, problema=2, status='AC', tempo=12)
     cad.save()
     cad = SubmissaoModel(equipe=9, problema=5, status='AC', tempo=12)
     cad.save()
     self.client = Client()
     self.resp = self.client.get(r(view_in_test))