Exemple #1
0
    def test_crear_pedido(self):
        
        bt = BoxTransmogrifier()
        bt.datos_de_envio = DatosDeEnvio.objects.create(**self._data)
        bt.gastos_de_envio = GastosDeEnvio.objects.get(provincia="C",
                                                       localidad="")
        for x in xrange(1, 10):
            cajas = self.randomboxes(choices=[self.a_pk, self.b_pk], number=x)
            
            lista_de_cajas = bt.crear_lista_de_cajas_apartir_de_lista_str(cajas)
            

            pedido = bt.crear_pedido()
            self.assert_(pedido)
            self.assert_(pedido.pk)
            
            sk = lambda obj : obj.pk

            # Take into account that the order can be different, so we
            # compare size of boxes first
            _len = lambda obj : obj.total_de_productos()
            self.assertEqual(sorted(map(_len, lista_de_cajas)),
                             sorted(map(_len, pedido.cajas.all())))

            # Now we compare that every item of the box (flatten)
            elems0 = sorted((elem
                             for box in lista_de_cajas
                             for elem in box), key=sk)

            elems1 = sorted((elem
                             for caja in pedido.cajas.all()
                             for elem in caja), key=sk)

            self.assertEqual(list(elems0), list(elems1))

        self.assertEqual(Pedido.objects.all().count(), 9)