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" )
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")
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")
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" )
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" )
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")
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")
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")
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))
def AdicionarFeiras(self): url = reverse("api-feiras") for feira in test_data["feiras"]: response = post_as_json(self.client, url, feira) self.assertEqual(response.status_code, 200, u"POST Deve retornar status 200")
def test_post_com_id(self): """Adiciona uma feira informando o ID""" response = post_as_json(self.client, reverse("api-feiras"), test_data["com_id"]) self.assertEqual(response.status_code, 200, "Deve adicionar uma feira e retornar status 200")