Código fonte de tests.integration.test_device_controller

import json
import warnings

from .utils import *
from legislei import controllers
from legislei.models.user import User

[documentos]class TestDeviceController(ControllerHelperTester):
[documentos] def setUp(self): super().setUp() warnings.simplefilter("ignore")
[documentos] def test_get_dispositivos_sucesso(self): login_header = login_api(self.app, "test", "123") user = User.objects(username="test").first() actual = self.app.get( "/v1/usuarios/dispositivos", headers=login_header ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 200) self.assertIn("dispositivo", str(actual_data)) self.assertIn("---token---", str(actual_data))
[documentos] def test_get_dispositivos_sem_login(self): user_id = User.objects(username="test").first().pk actual = self.app.get( "/v1/usuarios/dispositivos".format(user_id) ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 401) self.assertIn("message", actual_data)
[documentos] def test_post_dispositivos_sucesso(self): login_header = login_api(self.app, "test", "123") user = User.objects(username="test").first() actual = self.app.post( "/v1/usuarios/dispositivos", data=json.dumps({ "uuid": "1414", "token": "---token2---", "name": "outro_dispositivo", "os": "iOS" }), content_type='application/json', headers=login_header ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 201) self.assertEqual("Criado", actual_data["message"]) self.assertEqual(len(user.reload().devices), 2)
[documentos] def test_post_dispositivos_dispositivo_com_mesmo_uuid_existente(self): login_header = login_api(self.app, "test", "123") user = User.objects(username="test").first() actual = self.app.post( "/v1/usuarios/dispositivos", data=json.dumps({ "uuid": "14", "token": "---token2---", "name": "outro_dispositivo", "os": "iOS" }), content_type='application/json', headers=login_header ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 422) self.assertEqual("Dispositivo já existe", actual_data["message"]) self.assertEqual(len(user.reload().devices), 1)
[documentos] def test_post_dispositivos_faltando_parametros_obrigatorios(self): login_header = login_api(self.app, "test", "123") user_id = User.objects(username="test").first().pk actual = self.app.post( "/v1/usuarios/dispositivos".format(user_id), data=json.dumps({ "uuid": "1414", "token": "---token2---", }), content_type='application/json', headers=login_header ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 400) self.assertIn("message", actual_data)
[documentos] def test_post_dispositivos_parametros_invalidos(self): login_header = login_api(self.app, "test", "123") user_id = User.objects(username="test").first().pk actual = self.app.post( "/v1/usuarios/dispositivos".format(user_id), data=json.dumps({ "uuid": "1414", "token": True, "name": "outro_dispositivo" }), content_type='application/json', headers=login_header ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 400) self.assertIn("message", actual_data)
[documentos] def test_post_dispositivos_sem_login(self): user_id = User.objects(username="test").first().pk actual = self.app.post( "/v1/usuarios/dispositivos".format(user_id), data=json.dumps({ "uuid": "1414", "token": "---token2---", "name": "outro_dispositivo", "os": "iOS" }), content_type='application/json' ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 401) self.assertIn("message", actual_data)
[documentos] def test_patch_dispositivos_sucesso(self): login_header = login_api(self.app, "test", "123") user = User.objects(username="test").first() actual = self.app.patch( "/v1/usuarios/dispositivos/14", data=json.dumps({ "active": False }), content_type='application/json', headers=login_header ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 200) self.assertEqual("Ok", actual_data["message"]) self.assertFalse(user.reload().devices[0].active)
[documentos] def test_patch_dispositivos_parametro_inexistente(self): login_header = login_api(self.app, "test", "123") user = User.objects(username="test").first() actual = self.app.patch( "/v1/usuarios/dispositivos/14", data=json.dumps({ "naoexisto": True }), content_type='application/json', headers=login_header ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 200) self.assertIn("message", actual_data) self.assertNotIn("naoexisto", user.reload().devices[0].to_json())
[documentos] def test_patch_dispositivos_dispositivo_inexistente(self): login_header = login_api(self.app, "test", "123") user = User.objects(username="test").first() actual = self.app.patch( "/v1/usuarios/dispositivos/124578", data=json.dumps({ "active": False }), content_type='application/json', headers=login_header ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 400) self.assertEqual("Dispositivo não existe", actual_data["message"])
[documentos] def test_patch_dispositivos_parametro_invalido(self): login_header = login_api(self.app, "test", "123") user = User.objects(username="test").first() actual = self.app.patch( "/v1/usuarios/dispositivos/14", data=json.dumps({ "active": "invalido" }), content_type='application/json', headers=login_header ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 400) self.assertIn("message", actual_data)
[documentos] def test_patch_dispositivos_sem_login(self): user = User.objects(username="test").first() actual = self.app.patch( "/v1/usuarios/dispositivos/14", data=json.dumps({ "active": False }), content_type='application/json' ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 401) self.assertIn("message", actual_data)
[documentos] def test_delete_dispositivos_sucesso(self): login_header = login_api(self.app, "test", "123") user = User.objects(username="test").first() actual = self.app.delete( "/v1/usuarios/dispositivos/14", headers=login_header ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 200) self.assertEqual("Apagado", actual_data["message"]) self.assertEqual(len(user.reload().devices), 0)
[documentos] def test_delete_dispositivos_sem_login(self): user = User.objects(username="test").first() actual = self.app.delete( "/v1/usuarios/dispositivos/14" ) actual_data = json.loads(actual.data.decode("utf-8")) self.assertEqual(actual.status_code, 401) self.assertIn("message", actual_data)