예제 #1
0
 def test_post_sem_id(self):
     """Adiciona uma feira sem informar o id"""
     response = post_as_json(self.client, reverse("api-feiras"),
                             test_data["sem_id"])
     content = get_response_content(response)
     self.assertEqual(content["results"][0]["id"], 1,
                      "Deve adicionar uma feira com código 1")
예제 #2
0
 def test_busca_invalida(self):
     """Tenta fazer uma busca com parâmetros não preenchidos"""
     response = self.client.get(reverse("api-feiras-busca"))
     content = get_response_content(response)
     self.assertEqual(response.status_code, 500,
                      u"Deve retornar status 500")
     self.assertEqual(content["message"], MENSAGEM_BUSCA_INVALIDA,
                      u"Deve retornar mensagem de erro")
예제 #3
0
 def test_post_faltando_campo_obrigatorio(self):
     u"""Adiciona uma feira faltando um campo obrigatório"""
     response = post_as_json(self.client, reverse("api-feiras"),
                             test_data["faltando_campos"])
     self.assertEqual(response.status_code, 500, "Deve gerar erro 500")
     self.assertEqual(
         get_response_content(response).get("message"),
         u"Os seguintes campos obrigatórios não foram preenchidos: longitude",
         u"Deve retornar uma mensagem de erro com a lista de campos obrigatórios não preenchidos"
     )
예제 #4
0
    def test_put_invalido(self):
        u"""Tenta alterar o ID da feira"""
        response = post_as_json(self.client, reverse("api-feiras"),
                                feiras_test_data["com_id_2"])
        content = get_response_content(response)
        id = content["results"][0]["id"]
        id_novo = id + 1
        put_data = {"id": id_novo}

        response = put_as_json(self.client,
                               reverse("api-feira-id", kwargs={"id": id}),
                               put_data)
        content = get_response_content(response)
        self.assertEqual(response.status_code, 500,
                         u"Deve retornar status 500")
        self.assertEqual(
            content["message"],
            u"Campo id não pode ser alterado: {} => {}".format(id, id_novo),
            u"Deve retornar mensagem de erro")
예제 #5
0
 def test_post_campo_relacionado_invalido(self):
     """Adiciona uma com um distrito inexistente sem informar nome para adicionar na tabela relacionada"""
     response = post_as_json(self.client, reverse("api-feiras"),
                             test_data["distrito_invalido"])
     content = get_response_content(response)
     self.assertEqual(response.status_code, 500, "Deve retornar status 500")
     self.assertEqual(
         content.get("message"),
         u"O código informado para distrito não existe",
         u"Deve retornar uma mensagem informando que o código de distrito é inválido"
     )
예제 #6
0
    def test_put(self):
        u"""Adiciona uma feira e altera o nome"""
        response = post_as_json(self.client, reverse("api-feiras"),
                                feiras_test_data["com_id_2"])
        content = get_response_content(response)
        id = content["results"][0]["id"]
        nome_anterior = content["results"][0]["nome"]
        nome_novo = nome_anterior + " NOVO"
        put_data = {"nome": nome_novo}

        response = put_as_json(self.client,
                               reverse("api-feira-id", kwargs={"id": id}),
                               put_data)
        content = get_response_content(response)
        self.assertEqual(response.status_code, 200,
                         u"Deve retornar status 200")
        self.assertEqual(content["results"][0]["nome"], nome_novo,
                         u"Deve mudar o nome para {}".format(nome_novo))
        self.assertNotEqual(content["results"][0]["nome"], nome_anterior,
                            u"Nome novo deve ser diferente do anterior")
예제 #7
0
 def test_post_com_id_repetido(self):
     """Adiciona uma feira informando um ID repetido"""
     post_as_json(self.client, reverse("api-feiras"), test_data["com_id"])
     response = post_as_json(self.client, reverse("api-feiras"),
                             test_data["com_id"])
     content = get_response_content(response)
     self.assertEqual(response.status_code, 500, "Deve retornar status 500")
     self.assertEqual(
         content.get("message"),
         u"O id informado já existe no cadastro de feiras",
         u"Deve retornar uma mensagem informando que o id já está cadastrado"
     )
예제 #8
0
 def test_busca(self):
     """Adiciona feiras e faz uma busca simples por nome"""
     self.AdicionarFeiras()
     for nome, queries in test_data["queries"].iteritems():
         for query in queries:
             response = self.client.get(reverse("api-feiras-busca"),
                                        query["params"])
             content = get_response_content(response)
             self.assertEqual(response.status_code, 200,
                              u"Deve retornar status 200")
             self.assertEqual(
                 content["count"], query["results_count"],
                 u"Deve retornar a quantidade esperada de feiras")
예제 #9
0
    def test_list(self):
        """Recupera todas as feiras cadastradas"""
        # adiciona 4 feiras
        url = reverse("api-feiras")
        post_as_json(self.client, url, test_data["sem_id"])
        post_as_json(self.client, url, test_data["sem_id"])
        post_as_json(self.client, url, test_data["sem_id"])
        post_as_json(self.client, url, test_data["sem_id"])

        response = self.client.get(url)
        content = get_response_content(response)
        self.assertEqual(response.status_code, 200, "Deve retornar status 200")
        self.assertEqual(content["count"], 4, "Deve retornar contagem igual 4")
        self.assertEqual(len(content["results"]), 4, "Deve retornar 4 feiras")
예제 #10
0
    def test_delete(self):
        u"""Adiciona uma feira, exclui em seguida e verifica se foi mesmo excluída"""
        id = feiras_test_data["com_id_2"]["id"]
        post_as_json(self.client, reverse("api-feiras"),
                     feiras_test_data["com_id_2"])
        response = self.client.delete(
            reverse("api-feira-id", kwargs={"id": id}))
        content = get_response_content(response)
        self.assertEqual(response.status_code, 200, "Deve retornar status 200")
        self.assertEqual(
            content["message"], u"Feira {} removida com sucesso".format(id),
            u"Deve retornar mensagem de confirmação de feira excluida")

        response = self.client.get(reverse("api-feira-id", kwargs={"id": id}))
        self.assertEqual(response.status_code, 404, "Deve retornar status 404")
예제 #11
0
    def test_get_id(self):
        u"""Adiciona três feiras e tenta recuperar uma delas"""
        post_as_json(self.client, reverse("api-feiras"),
                     feiras_test_data["com_id"])
        post_as_json(self.client, reverse("api-feiras"),
                     feiras_test_data["com_id_2"])
        post_as_json(self.client, reverse("api-feiras"),
                     feiras_test_data["com_id_3"])

        response = self.client.get(reverse("api-feira-id", kwargs={"id": 2}))
        content = get_response_content(response)
        nome_2 = feiras_test_data["com_id_2"]["nome"]
        self.assertEqual(response.status_code, 200, "Deve retornar status 200")
        self.assertEqual(
            content["results"][0]["nome"], nome_2,
            u"Deve retonrnar a feira com nome = {}".format(nome_2))