def test_agregarOcupado(self): """Agregar una nueva máquina en un lugar ya ocupado """ request = self.factory.post('/Maquina/add', data=self.maquina2) request.user = self.user maquina_add(request) eMaquina = Maquina.objects.filter(pk="AUTO_002").exists() self.assertEqual(eMaquina, False, "El campo ya esta ocupado")
def test_AgregarLaboratorioInexistente(self): """Agregar una máquina a un aboratorio inexistente """ request = self.factory.post('/Maquina/add', data=self.maquina4) request.user = self.user maquina_add(request) eMaquina = Maquina.objects.filter(pk="AUTO_004").exists() self.assertEqual(eMaquina, False, "El laboratorio no es valido")
def test_AgregarIdRepetido(self): """Agregar una máquina con un ID ya existente """ request = self.factory.post('/Maquina/add', data=self.maquina3) request.user = self.user maquina_add(request) con = Maquina.objects.filter(con_reserva=False).count() eMaquina = con == 1 self.assertEqual(eMaquina, True, "Deberia solo haber una maquia pero hay " + str(con))
def test_PermisoAgregar(self): """Comprueba que un usario no autenticado no pueda agregar máquinas. También comprueba con un usario con el permiso de agregar máquinas pueda hacerlo """ request = self.factory.get('/Maquina/add', follow=True) request.user = AnonymousUser() response = maquina_add(request) self.assertEqual(response.status_code, 401, "No debe estar autorizado") request.user = self.user response = maquina_add(request) self.assertEqual(response.status_code, 200, "Debe estar autorizado")
def test_AgregarCamposInvalidos(self): """Prueba los campos obligatorios del servicio REST """ request = self.factory.post('/Maquina/add', data=self.maquina8) request.user = self.user response = maquina_add(request) eMaquina = Maquina.objects.filter(pk="AUTO_008").exists() self.assertEqual(eMaquina, False, "La posicion es invalida")
def test_AgregarySuperior(self): """Agregar una máquina en una posición y mayor a la capacidad del laboratorio """ request = self.factory.post('/Maquina/add', data=self.maquina7) request.user = self.user response = maquina_add(request) eMaquina = Maquina.objects.filter(pk="AUTO_005").exists() self.assertEqual(eMaquina, False, "La posicion es invalida")
def test_agregarMaquina(self): """ Comprueba que el servicio REST de agregar máquinas sea correcto para un usuario autorizado, también comprueba que un usario autorizado pueda editar una máquina existente """ request = self.factory.post('/Maquina/add', data=self.maquina1) request.user = self.user response = maquina_add(request) eMaquina = Maquina.objects.filter(pk="AUTO_001").exists() self.assertEqual(eMaquina, True, "El cientifico debe poder agregar máquinas") request = self.factory.get('/Maquina/') request.user = self.user response = maquina_update(request, 'AUTO_001') self.assertEqual( response.status_code, 200, "El cientifico debe estar autorizado y la máquina existir")
def setUp(self): self.factory = RequestFactory() self.user = User.objects.create_user(username='******', email='*****@*****.**', password=CONTRASENA) c.login(username=self.user.username, password=CONTRASENA) self.tipoId = TipoDocumento.objects.create(nombre_corto="cc", descripcion="") self.grupo = Group.objects.create(name='asistentes') self.usuario = Usuario.objects.create( nombre_usuario="jlennon", correo_electronico="*****@*****.**", codigo_usuario="201610780", nombres="John", apellidos="Lennon", telefono="3005717606", userNatIdTyp=self.tipoId, userNatIdNum="51603784", grupo=self.grupo, user=self.user, contrasena=CONTRASENA) self.userSinPermisos = User.objects.create_user( username='******', email='*****@*****.**', password=CONTRASENA) c.login(username=self.userSinPermisos.username, password=CONTRASENA) solicitar = Permission.objects.get(name='Maquina||solicitar') self.user.user_permissions.add(solicitar) self.LaboratorioPrueba = Laboratorio.objects.create( nombre="Laboratorio genetica", id="LAB_101") self.maquinaPrueba = { "idAlmacenamiento": "1", "nombre": "Autoclave Portátil", "descripcion": "Un autoclave es un recipiente de presión metálico de paredes gruesas con un cierre hermético que permite trabajar a alta presión para realizar una reacción industrial, una cocción o una esterilización con vapor de agua", "idSistema": "AUTO_010", "con_reserva": False, "posX": 0, "posY": 0, "idLaboratorio": self.LaboratorioPrueba.id } request = self.factory.post('/Maquina/add', data=self.maquinaPrueba) request.user = self.user maquina_add(request) self.protocoloPrueba = Protocolo.objects.create( nombre="Protocolo # 1", descripcion="Este es un protocolo de prueba", objetivo="Comprobar funcionalidad de solicitud maquinas") self.pasoPrueba = Paso.objects.create( id="1", nombre="Paso # 1", descripcion="Este es un paso de prueba", protocolo=self.protocoloPrueba) self.proyectoPrueba = Proyecto.objects.create( nombre="Proyecto # 1", descripcion="Este es un proyecto de prueba", objetivo="Comprobar funcionalidad de solicitud maquinas", lider=self.usuario, activo=True) self.proyectoPrueba.asistentes.add(self.usuario) self.experimentoPrueba = Experimento.objects.create( nombre="Experimento # 1", descripcion="Este es un experimento de prueba", objetivo="Comprobar funcionalidad de solicitud maquinas", projecto=self.proyectoPrueba) self.experimentoPrueba.protocolos.add(self.protocoloPrueba)
def setUp(self): """Inicia el estado del test Se encarga de : * Crear un usario y darle los permisos de agregar y editar * Crear un laboratorio * Definir varias máquinas que serviran para probar la lógica del negocio """ # Every test needs access to the request factory. self.factory = RequestFactory() self.user = User.objects.create_user(username='******', email='*****@*****.**', password=CONTRASENA) c.login(username=self.user.username, password=CONTRASENA) agregar = Permission.objects.get(name='Maquina||agregar') editar = Permission.objects.get(name='Maquina||editar') self.user.user_permissions.add(agregar, editar) self.LaboratorioPrueba = Laboratorio.objects.create( nombre="Laboratorio genetica", id="LAB_101") self.maquinaPrueba = { "nombre": "Autoclave Portátil", "descripcion": "Un autoclave es un recipiente de presión metálico de paredes gruesas con un cierre hermético que permite trabajar a alta presión para realizar una reacción industrial, una cocción o una esterilización con vapor de agua", "idSistema": "AUTO_010", "con_reserva": False, "posX": 0, "posY": 0, "idLaboratorio": self.LaboratorioPrueba.id } self.maquina1 = { "nombre": "Autoclave Portátil", "descripcion": "Un autoclave es un recipiente de presión metálico de paredes gruesas con un cierre hermético que permite trabajar a alta presión para realizar una reacción industrial, una cocción o una esterilización con vapor de agua", "idSistema": "AUTO_001", "con_reserva": False, "posX": 10, "posY": 10, "idLaboratorio": self.LaboratorioPrueba.id } self.maquina2 = { "nombre": "Autoclave Portátil", "descripcion": "Un autoclave es un recipiente de presión metálico de paredes gruesas con un cierre hermético que permite trabajar a alta presión para realizar una reacción industrial, una cocción o una esterilización con vapor de agua", "idSistema": "AUTO_002", "con_reserva": False, "posX": 0, "posY": 0, "idLaboratorio": self.LaboratorioPrueba.id } self.maquina3 = { "nombre": "Autoclave Portátil", "descripcion": "Un autoclave es un recipiente de presión metálico de paredes gruesas con un cierre hermético que permite trabajar a alta presión para realizar una reacción industrial, una cocción o una esterilización con vapor de agua", "idSistema": "AUTO_010", "con_reserva": False, "posX": 1, "posY": 1, "idLaboratorio": self.LaboratorioPrueba.id } self.maquina4 = { "nombre": "Autoclave Portátil", "descripcion": "Un autoclave es un recipiente de presión metálico de paredes gruesas con un cierre hermético que permite trabajar a alta presión para realizar una reacción industrial, una cocción o una esterilización con vapor de agua", "idSistema": "AUTO_004", "con_reserva": False, "posX": 2, "posY": 2, "idLaboratorio": "No existente" } self.maquina5 = { "nombre": "Autoclave Portátil", "descripcion": "Un autoclave es un recipiente de presión metálico de paredes gruesas con un cierre hermético que permite trabajar a alta presión para realizar una reacción industrial, una cocción o una esterilización con vapor de agua", "idSistema": "AUTO_005", "con_reserva": False, "posX": -1, "posY": -1, "idLaboratorio": self.LaboratorioPrueba.id } self.maquina6 = { "nombre": "Autoclave Portátil", "descripcion": "Un autoclave es un recipiente de presión metálico de paredes gruesas con un cierre hermético que permite trabajar a alta presión para realizar una reacción industrial, una cocción o una esterilización con vapor de agua", "idSistema": "AUTO_005", "con_reserva": False, "posX": 100, "posY": 3, "idLaboratorio": self.LaboratorioPrueba.id } self.maquina7 = { "nombre": "Autoclave Portátil", "descripcion": "Un autoclave es un recipiente de presión metálico de paredes gruesas con un cierre hermético que permite trabajar a alta presión para realizar una reacción industrial, una cocción o una esterilización con vapor de agua", "idSistema": "AUTO_005", "con_reserva": False, "posX": 3, "posY": 100, "idLaboratorio": self.LaboratorioPrueba.id } self.maquina8 = { "nombres": "Autoclave Portátil", "descripcions": "Un autoclave es un recipiente de presión metálico de paredes gruesas con un cierre hermético que permite trabajar a alta presión para realizar una reacción industrial, una cocción o una esterilización con vapor de agua", "idSistema": "AUTO_008", "con_reserva": False, "posX": 1, "posY": 1, "idLaboratorio": self.LaboratorioPrueba.id } request = self.factory.post('/Maquina/add', data=self.maquinaPrueba) request.user = self.user maquina_add(request)