Exemple #1
0
    def test_al_mover_orden_del_nodo(self):

        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)

        NodoMenuFactoryUtils.crear_multiples_nodos_menu(
            5, self.menu, nodo_padre1)
        cantidad_nodos = NodoMenu.objects.get_cantidad_nodos_hijos(
            nodo_padre1.id)

        nodos_hijo = NodoMenu.objects.get_nodos_hijos(nodo_padre1.id)

        # Los nuevos nodos tiene el id desde el numero 2
        self.utilt.comparar_orden(nodo_padre1, [2, 3, 4, 5, 6])

        NodoMenu.objects.cambiarOrden(6, 1)
        self.utilt.comparar_orden(nodo_padre1, [6, 2, 3, 4, 5])

        NodoMenu.objects.cambiarOrden(4, 2)
        self.utilt.comparar_orden(nodo_padre1, [6, 4, 2, 3, 5])

        NodoMenu.objects.cambiarOrden(6, 5)

        cantidad_nodos = NodoMenu.objects.get_cantidad_nodos_hijos(
            nodo_padre1.id)
        self.utilt.comparar_orden(nodo_padre1, [4, 2, 3, 5, 6])

        NodoMenu.objects.cambiarOrden(2, 3)
        self.utilt.comparar_orden(nodo_padre1, [4, 3, 2, 5, 6])
Exemple #2
0
    def test_crear_nodomenu_con_padre(self):
        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)
        self.assertEquals(nodo_padre1.id, 1)

        nodo2 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                     nodo_padre=nodo_padre1,
                                                     menu=self.menu)

        self.assertEquals(nodo2.id, 2)
        self.assertEquals(nodo2.nodo_padre, nodo_padre1)
Exemple #3
0
    def test_nonomenu_con_un_padre_y_un_menu_al_que_no_pertenece(self):
        menu2 = MenuFactory()

        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)

        nodo2 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                     nodo_padre=nodo_padre1,
                                                     menu=menu2)

        self.assertEquals(nodo2.menu, self.menu)
Exemple #4
0
    def test_obtener_arbol_menu(self):
        NodoMenuFactoryUtils.crear_nodo_con_hijos(self.menu, 'India',
                                                  ['AP', 'MP', 'KAR'])
        NodoMenuFactoryUtils.crear_nodo_con_hijos(self.menu, 'UK', [])
        NodoMenuFactoryUtils.crear_nodo_con_hijos(self.menu, 'Mexico',
                                                  ['Guadalajara', 'Sinaloa'])

        NodoMenuFactoryUtils.crear_nodo_con_hijos(self.menu, 'KAR',
                                                  ['BAGDAG', 'MALGA'])

        NodoMenu.objects.cambiarOrden(6,
                                      1)  #Ponemos a Mexico al Inicio del orden

        nodo_menu = NodoMenu.objects.obtener_arbol_menu(1)

        self.assertEqual(len(nodo_menu), 3)
        self.assertEqual(nodo_menu[0]['etiqueta'], 'Mexico')
        self.assertEqual(len(nodo_menu[0]['sub_menu']), 2)

        self.assertEqual(nodo_menu[1]['etiqueta'], 'India')
        self.assertEqual(len(nodo_menu[1]['sub_menu']), 3)
        self.assertEqual(len(nodo_menu[1]['sub_menu'][2]['sub_menu']), 2)

        self.assertEqual(nodo_menu[2]['etiqueta'], 'UK')
        self.assertEqual(len(nodo_menu[2]['sub_menu']), 0)

        nodo_menu_err = NodoMenu.objects.obtener_arbol_menu(3)

        self.assertEqual(len(nodo_menu_err), 0)
Exemple #5
0
    def test_GET_arbol_menu(self):
        NodoMenuFactoryUtils.crear_nodo_con_hijos(self.menu,'India',['AP','MP','KAR'])
        NodoMenuFactoryUtils.crear_nodo_con_hijos(self.menu,'UK',[])
        NodoMenuFactoryUtils.crear_nodo_con_hijos(self.menu,'Mexico',['Guadalajara','Sinaloa'])

        NodoMenuFactoryUtils.crear_nodo_con_hijos(self.menu,'KAR',['BAGDAG','MALGA'])

        NodoMenu.objects.cambiarOrden(6,1) #Ponemos a Mexico al Inicio del orden

        id_menu = 1
        base_url_arbol = reverse('nodo_arbol_menu', kwargs={'id_menu': id_menu})

        response = self.client.get(base_url_arbol, format='json')

        nodo_menu = json.loads(response.data)

        self.assertEqual(response['content-type'], 'application/json')
        self.assertEqual(response.status_code, status.HTTP_200_OK)

        self.assertEqual(len(nodo_menu),3)
        self.assertEqual(nodo_menu[0]['etiqueta'],'Mexico')
        self.assertEqual(len(nodo_menu[0]['sub_menu']),2)

        self.assertEqual(nodo_menu[1]['etiqueta'],'India')
        self.assertEqual(len(nodo_menu[1]['sub_menu']),3)
        self.assertEqual(len(nodo_menu[1]['sub_menu'][2]['sub_menu']),2)

        self.assertEqual(nodo_menu[2]['etiqueta'],'UK')
        self.assertEqual(len(nodo_menu[2]['sub_menu']),0)

        id_menu = 3
        base_url_arbol = reverse('nodo_arbol_menu', kwargs={'id_menu': id_menu})

        response = self.client.get(base_url_arbol, format='json')
        self.assertEquals(response.data,'[]')
Exemple #6
0
    def test_PUT_mover_orden_que_no_existe(self):

        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None, nodo_padre=None, menu=self.menu)

        NodoMenuFactoryUtils.crear_multiples_nodos_menu(2,self.menu, nodo_padre1)
        cantidad_nodos = NodoMenu.objects.get_cantidad_nodos_hijos(nodo_padre1.id)


        base_url_orden = reverse('nodo_menu_orden', kwargs={'pk': 2, 'orden':3})

        response_update = self.client.put(base_url_orden)

        self.assertEqual(response_update.status_code, 400)
        self.assertEqual(response_update.data,'No se puede mover a un orden '
                                              'mayor al numero de elementos')
Exemple #7
0
    def test_PUT_mover_orden_del_nodo(self):
        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None, nodo_padre=None, menu=self.menu)

        NodoMenuFactoryUtils.crear_multiples_nodos_menu(5, self.menu, nodo_padre1)

        cantidad_nodos = NodoMenu.objects.get_cantidad_nodos_hijos(nodo_padre1.id)

        nodos_hijo = NodoMenu.objects.get_nodos_hijos(nodo_padre1.id)

        self.utilt.comparar_orden(nodo_padre1, [2, 3, 4, 5, 6])
        base_url_orden = reverse('nodo_menu_orden', kwargs={'pk': 6, 'orden':1})
        response_update = self.client.put(base_url_orden)
        self.assertEqual(response_update.status_code, 200)


        self.utilt.comparar_orden(nodo_padre1, [6, 2, 3, 4, 5])
Exemple #8
0
    def test_PUT_mover_orden_de_nodo_raiz(self):
        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None, nodo_padre=None, menu=self.menu)

        nodo_padre2 = NodoMenuFactoryUtils.crear_nodo_menu(id=None, nodo_padre=None, menu=self.menu)

        nodo_padre3 = NodoMenuFactoryUtils.crear_nodo_menu(id=None, nodo_padre=None, menu=self.menu)

        self.utilt.comparar_orden(None, [1, 2, 3])


        base_url_orden = reverse('nodo_menu_orden', kwargs={'pk': 3, 'orden':1})
        response_update = self.client.put(base_url_orden)
        self.assertEqual(response_update.status_code, 200)


        self.utilt.comparar_orden(None, [3, 1, 2])
Exemple #9
0
 def test_crear_nodomenu_principal_con_id(self):
     nodo = NodoMenuFactoryUtils.crear_nodo_menu(id=3,
                                                 nodo_padre=None,
                                                 menu=self.menu)
     nodo_menus_guardados = NodoMenu.objects.all()
     self.assertEqual(nodo_menus_guardados.count(), 1)
     self.assertEqual(nodo_menus_guardados[0].id, 3)
Exemple #10
0
    def test_eliminar_nodo(self):
        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)

        NodoMenuFactoryUtils.crear_multiples_nodos_menu(
            5, self.menu, nodo_padre1)

        nodos_hijo1 = NodoMenu.objects.get_nodos_hijos(nodo_padre1.id)
        self.utilt.comparar_orden(nodo_padre1, [2, 3, 4, 5, 6])

        eliminados = NodoMenu.objects.eliminar_nodo(4)
        self.assertEquals(eliminados, 1)

        nodos_hijo1 = NodoMenu.objects.get_nodos_hijos(nodo_padre1.id)
        self.utilt.comparar_orden(nodo_padre1, [2, 3, 5, 6])
Exemple #11
0
    def test_modificar_nodo_con_menu_al_que_no_pertenece(self):
        menu2 = MenuFactory()

        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)

        nodo_padre2 = NodoMenuFactoryUtils.crear_nodo_menu(
            id=3, nodo_padre=nodo_padre1, menu=self.menu)

        nodo_padre2.menu = menu2

        nodo_update = self.nodo_en_diccionario(nodo_padre2)
        nodo_modificado = NodoMenu.objects.modificarNodo(**nodo_update)

        self.assertEquals(nodo_modificado.menu, self.menu)
Exemple #12
0
    def test_PUT_cambiar_nodo_de_padre_de_menu_diferente(self):
        menu2 = MenuFactory()

        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None, nodo_padre=None, menu=menu2)

        nodo_padre2 = NodoMenuFactoryUtils.crear_nodo_menu(id=None, nodo_padre=None, menu=self.menu)

        self.assertEquals(nodo_padre1.id,1)
        self.assertEquals(nodo_padre2.id,2)

        base_url_orden = reverse('nodo_menu_padre', kwargs={'pk': 2, 'padre_id':1})

        response_update = self.client.put(base_url_orden)

        self.assertEqual(response_update.status_code, 400)
        self.assertEqual(response_update.data,'No se puede mover a un '
                                              'padre con menu diferente')
Exemple #13
0
    def test_al_mover_orden_de_nodo_raiz(self):

        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)

        nodo_padre2 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)

        nodo_padre3 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)
        self.utilt.comparar_orden(None, [1, 2, 3])

        NodoMenu.objects.cambiarOrden(3, 1)
        self.utilt.comparar_orden(None, [3, 1, 2])
Exemple #14
0
 def test_crear_nodomenu_con_padre_que_no_existe(self):
     with self.assertRaises(ValidationError) as cm:
         nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=0,
                                                            nodo_padre=10,
                                                            menu=self.menu)
     error = cm.exception
     self.assertEquals(error.message,
                       'El nodo padre con el id 10 no existe')
Exemple #15
0
    def test_cambiar_nodo_de_padre_de_menu_diferente(self):
        menu2 = MenuFactory()

        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=menu2)

        nodo_padre2 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)

        self.assertEquals(nodo_padre1.id, 1)
        self.assertEquals(nodo_padre2.id, 2)

        with self.assertRaises(ValidationError) as cm:
            NodoMenu.objects.cambiar_nodo_padre(2, 1)
        error = cm.exception
        self.assertEquals(error.message, 'No se puede mover a un padre '
                          'con menu diferente')
Exemple #16
0
    def test_DELETE_nodo(self):
        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None, nodo_padre=None, menu=self.menu)

        NodoMenuFactoryUtils.crear_multiples_nodos_menu(5,self.menu, nodo_padre1)

        nodos_hijo1 = NodoMenu.objects.get_nodos_hijos(nodo_padre1.id)

        self.utilt.comparar_orden(nodo_padre1, [2, 3, 4, 5, 6])


        base_url_update = reverse('nodo_menu_update', kwargs={'pk': 4})

        response_delete = self.client.delete(base_url_update)


        self.assertEqual(response_delete.status_code, 200)
        self.assertEquals(response_delete.data,1)

        nodos_hijo1 = NodoMenu.objects.get_nodos_hijos(nodo_padre1.id)
        self.utilt.comparar_orden(nodo_padre1, [2, 3, 5, 6])
Exemple #17
0
    def test_al_crear_un_nodo_su_orden_es_el_mayor_de_su_nivel(self):
        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)

        NodoMenuFactoryUtils.crear_multiples_nodos_menu(
            4, self.menu, nodo_padre1)

        cantidad_nodos = NodoMenu.objects.get_cantidad_nodos_hijos(
            nodo_padre1.id)
        nodos_hijo = NodoMenu.objects.get_nodos_hijos(nodo_padre1.id)

        nodo_padre2 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)

        # Los nuevos nodos tiene el id desde el numero 2
        self.utilt.comparar_orden(nodo_padre1, [2, 3, 4, 5])

        self.assertEqual(nodo_padre1.orden, 1)
        self.assertEqual(nodo_padre2.orden, 2)
Exemple #18
0
    def test_modificar_datos_nodo_menu(self):
        nodo_menu_data = NodoMenuFactoryUtils.crear_nodo_menu(id=3,
                                                              nodo_padre=None,
                                                              menu=self.menu)

        nodo_menu_data.etiqueta = 'Etiqueta modificada'
        nodo_menu_data.orden = 5
        nodo_update = self.nodo_en_diccionario(nodo_menu_data)
        nodo_modificado = NodoMenu.objects.modificarNodo(**nodo_update)
        self.assertEqual(nodo_modificado.etiqueta, 'Etiqueta modificada')
        self.assertEqual(nodo_modificado.orden,
                         1)  #Aqui no se puede modificar el orden
Exemple #19
0
    def test_PUT_cambiar_nodo_de_padre(self):
        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None, nodo_padre=None, menu=self.menu)

        nodo_padre2 = NodoMenuFactoryUtils.crear_nodo_menu(id=None, nodo_padre=None, menu=self.menu)

        NodoMenuFactoryUtils.crear_multiples_nodos_menu(3,self.menu, nodo_padre1)
        NodoMenuFactoryUtils.crear_multiples_nodos_menu(4,self.menu, nodo_padre2)


        nodos_hijo1 = NodoMenu.objects.get_nodos_hijos(nodo_padre1.id)
        nodos_hijo2 = NodoMenu.objects.get_nodos_hijos(nodo_padre2.id)

        self.assertEquals(nodos_hijo1.count(),3)
        self.assertEquals(nodos_hijo2.count(),4)

        self.assertEqual(nodos_hijo2[1].id,7)


        base_url_orden = reverse('nodo_menu_padre', kwargs={'pk': 7, 'padre_id':1})

        response_update = self.client.put(base_url_orden)

        self.assertEqual(response_update.status_code, 200)
        self.assertEqual(response_update.data['id'],7)
        self.assertEqual(response_update.data['nodo_padre'],1)
Exemple #20
0
    def test_al_mover_orden_que_no_existe(self):
        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(id=None,
                                                           nodo_padre=None,
                                                           menu=self.menu)

        NodoMenuFactoryUtils.crear_multiples_nodos_menu(
            2, self.menu, nodo_padre1)
        cantidad_nodos = NodoMenu.objects.get_cantidad_nodos_hijos(
            nodo_padre1.id)

        with self.assertRaises(ValidationError) as cm:
            NodoMenu.objects.cambiarOrden(2, -1)

        error = cm.exception
        self.assertEquals(error.messages[0], 'No se puede mover a un orden '
                          'menor a 0')
        with self.assertRaises(ValidationError) as cm:
            NodoMenu.objects.cambiarOrden(2, 3)
        error = cm.exception
        self.assertEquals(
            error.messages[0], 'No se puede mover a un orden '
            'mayor al numero de elementos')
Exemple #21
0
    def test_cambiar_nodo_de_padre(self):
        nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_con_hijos(
            self.menu, 'Nodo Padre1', ['p1h1', 'p1h2', 'p1h3'])
        nodo_padre2 = NodoMenuFactoryUtils.crear_nodo_con_hijos(
            self.menu, 'Nodo Padre2', ['p2h1', 'p2h2', 'p2h3', 'p2h4'])

        nodos_hijo1 = NodoMenu.objects.get_nodos_hijos(nodo_padre1.id)
        nodos_hijo2 = NodoMenu.objects.get_nodos_hijos(nodo_padre2.id)
        self.assertEquals(nodos_hijo1.count(), 3)
        self.assertEquals(nodos_hijo2.count(), 4)

        self.utilt.comparar_orden(nodo_padre1, [2, 3, 4])
        self.utilt.comparar_orden(nodo_padre2, [6, 7, 8, 9])

        NodoMenu.objects.cambiar_nodo_padre(7, 1)

        nodos_hijo1 = NodoMenu.objects.get_nodos_hijos(nodo_padre1.id)
        nodos_hijo2 = NodoMenu.objects.get_nodos_hijos(nodo_padre2.id)
        self.assertEquals(nodos_hijo1.count(), 4)
        self.assertEquals(nodos_hijo2.count(), 3)

        self.utilt.comparar_orden(nodo_padre1, [2, 3, 4, 7])
        self.utilt.comparar_orden(nodo_padre2, [6, 8, 9])
Exemple #22
0
    def test_crear_nodomenu_con_etiqueta_mayor_a_su_longitud_permitida(self):
        siguiente = get_next_value('nodosMenu')
        self.assertEquals(siguiente, 1)

        etiqueta = 'a' * 100

        with self.assertRaises(ValidationError) as cm:
            nodo_padre1 = NodoMenuFactoryUtils.crear_nodo_menu(
                id=None, nodo_padre=None, menu=self.menu, etiqueta=etiqueta)

        error = cm.exception
        self.assertEquals(
            error.messages[0], 'La longitud maxima es de '
            '60 caracteres (tiene 100)')
        siguiente = get_next_value('nodosMenu')
        self.assertEquals(siguiente, 2)