Ejemplo n.º 1
0
class TestDescripcionAlternativa(TestCase):

    def setUp(self):
        self.p1 = ProductoFactory(descripcion=u"Salsa de Tomate Arcor 500ml")

    def test_alternativa_guarda_instancia(self):
        assert DescripcionAlternativa.objects.count() == 0
        descripcion = "La misma salsa descripta distinto ;-)"
        self.p1.agregar_descripcion(descripcion)

        self.assertEqual(DescripcionAlternativa.objects.count(), 1)
        alternativa = DescripcionAlternativa.objects.all()[0]
        self.assertEqual(alternativa.producto, self.p1)
        self.assertEqual(alternativa.descripcion, descripcion)
        self.assertEqual(alternativa.busqueda, normalizar(descripcion))

    def test_excepcion_si_existe(self):
        descripcion = "La misma salsa descripta distinto ;-)"
        self.p1.agregar_descripcion(descripcion)
        with self.assertRaises(IntegrityError):
            self.p1.agregar_descripcion(descripcion)

    def test_ignorar_excepcion(self):
        descripcion = "La misma salsa descripta distinto ;-)"
        self.p1.agregar_descripcion(descripcion)
        # sin excepcion
        self.p1.agregar_descripcion(descripcion, True)
        self.assertEqual(DescripcionAlternativa.objects.count(), 1)
Ejemplo n.º 2
0
 def setUp(self):
     self.client = Client()
     self.url = reverse('buscador')
     self.productos = [
         ProductoFactory(descripcion=u"Salsa de Tomate Arcor 500ml"),
         ProductoFactory(descripcion=u"Salsa de Tomate Cica 500ml"),
         ProductoFactory(descripcion=u"Puré de Tomate Arcor 350ml"),
         ProductoFactory(descripcion=u"Mayonesa Hellmanns 350gr")
     ]
Ejemplo n.º 3
0
 def test_detalle_similares(self):
     simil1 = ProductoFactory(descripcion=self.prod.descripcion + " plus")
     simil2 = ProductoFactory(descripcion=self.prod.descripcion + " extra")
     with patch('preciosa.precios.models.Producto.similares') as mock:
         mock.return_value = [simil1, simil2]
         r = self.client.get(self.url)
     similares = r.data['similares']
     self.assertEqual(similares[0]['id'], simil1.id)
     self.assertEqual(similares[0]['descripcion'], simil1.descripcion)
     self.assertEqual(similares[1]['id'], simil2.id)
     self.assertEqual(similares[1]['descripcion'], simil2.descripcion)
Ejemplo n.º 4
0
 def setUp(self):
     self.producto = ProductoFactory()
     self.suc = SucursalFactory()
     self.suc2 = SucursalFactory(ciudad=self.suc.ciudad,
                                 cadena=self.suc.cadena)
     self.suc3 = SucursalFactory(ciudad=self.suc.ciudad,
                                 cadena=self.suc.cadena)
Ejemplo n.º 5
0
 def setUp(self):
     self.suc = SucursalFactory()
     self.prod = ProductoFactory(upc='779595')
     self.url = reverse('producto_detalle',
                        args=(self.suc.id, self.prod.id))
     self.user = UserFactory()
     self.token = self.user.auth_token.key
     self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.token)
Ejemplo n.º 6
0
class TestSimilaresAProducto(TestCase):

    def setUp(self):
        self.p1 = ProductoFactory(descripcion=u"Salsa de Tomate Arcor 500ml")
        self.p2 = ProductoFactory(descripcion=u"Salsa de Tomate Cica 500ml")
        self.p3 = ProductoFactory(descripcion=u"Puré de Tomate Arcor 350ml")
        self.p4 = ProductoFactory(descripcion=u"Mayonesa Hellmanns 350gr")

    def test_similares(self):
        ids = self.p1.similares().values_list('id', flat=True)
        self.assertEqual(list(ids), [self.p2.id, self.p3.id])

        ids = self.p1.similares(1).values_list('id', flat=True)
        self.assertEqual(list(ids), [self.p2.id])

    def test_sin_resultado(self):
        qs = self.p4.similares()
        self.assertFalse(qs.exists())
Ejemplo n.º 7
0
 def test_producto_con_contenido_no_usa_annalisa_salvo_force(self):
     p = ProductoFactory()
     assert p.contenido and p.contenido != Decimal('2.1')
     contenido_original = p.contenido
     self.config({'volumen': 2.1})
     self.call()
     self.assertEqual(_(p).contenido, contenido_original)
     self.call(force_contenido=True)
     self.assertEqual(_(p).contenido, Decimal('2.1'))
Ejemplo n.º 8
0
 def test_producto_con_unidad_no_usa_annalisa_salvo_force(self):
     p = ProductoFactory()
     assert p.unidad_medida != Producto.UM_GRAMO
     unidad_original = p.unidad_medida
     self.config({'unidad_peso': 'gramo'})
     self.call()
     self.assertEqual(_(p).unidad_medida, unidad_original)
     self.call(force_unidad_medida=True)
     self.assertEqual(_(p).unidad_medida, Producto.UM_GRAMO)
Ejemplo n.º 9
0
 def test_producto_con_marca_no_usa_annalisa_salvo_force(self):
     p = ProductoFactory()
     assert p.marca
     marca_org = p.marca
     marca2 = MarcaFactory()
     self.config({'marcaid': marca2.id})
     self.call()
     self.assertEqual(_(p).marca, marca_org)
     self.call(force_marca=True)
     self.assertEqual(_(p).marca, marca2)
Ejemplo n.º 10
0
 def test_producto_categoria_no_usa_annalisa_salvo_force(self):
     p = ProductoFactory()
     assert p.categoria
     cat_org = p.categoria
     cat2 = CategoriaFactory(depth=3)
     self.config({'categoriaid': cat2.id})
     self.call()
     self.assertEqual(_(p).categoria, cat_org)
     self.call(force_categoria=True)
     self.assertEqual(_(p).categoria, cat2)
Ejemplo n.º 11
0
    def setUp(self):
        self.producto = ProductoFactory()
        self.carrefour = CadenaFactory(nombre='Carrefour')
        self.sucursales_carrefour = suc1, suc2 = [
            SucursalFactory(cadena=self.carrefour),
            SucursalFactory(cadena=self.carrefour)
        ]
        self.super_regional = SucursalFactory(nombre='Lo de Cacho')

        # lo de cacho queda en y una de carrefour queda en NOA
        self.noa = RegionFactory(
            nombre="NOA",
            ciudades_incluidas=[suc2.ciudad, self.super_regional.ciudad])
        # una de carrefour en Caba
        self.caba = RegionFactory(nombre="CABA",
                                  ciudades_incluidas=[suc1.ciudad])
Ejemplo n.º 12
0
 def setUp(self):
     self.p1 = ProductoFactory(descripcion=u"Salsa de Tomate Arcor 500ml")
Ejemplo n.º 13
0
 def setUp(self):
     self.sucursal = SucursalFactory()
     self.producto = ProductoFactory()
Ejemplo n.º 14
0
 def test_producto_sin_contenido_usa_annalisa(self):
     p = ProductoFactory(contenido=None)
     assert p.contenido is None
     self.config({'peso': 3.1})
     self.call()
     self.assertEqual(_(p).contenido, Decimal('3.1'))
Ejemplo n.º 15
0
 def test_producto_sin_marca_usa_annalisa(self):
     p = ProductoFactory(marca=None, unidad_medida=Producto.UM_L)
     marca = MarcaFactory()
     self.config({'marcaid': marca.id})
     self.call()
     self.assertEqual(_(p).marca, marca)
Ejemplo n.º 16
0
 def test_mayus(self):
     p1 = ProductoFactory(descripcion=u"UÑAS Y DIENTES")
     self.assertEqual(p1.busqueda, 'unas y dientes')
Ejemplo n.º 17
0
 def test_acentos(self):
     p1 = ProductoFactory(descripcion=u"ÁéíóÚ")
     self.assertEqual(p1.busqueda, 'aeiou')
Ejemplo n.º 18
0
 def setUp(self):
     self.p1 = ProductoFactory(descripcion=u"Salsa de Tomate Arcor 500ml")
     self.p2 = ProductoFactory(descripcion=u"Salsa de Tomate Cica 500ml")
     self.p3 = ProductoFactory(descripcion=u"Puré de Tomate Arcor 350ml")
     self.p4 = ProductoFactory(descripcion=u"Mayonesa Hellmanns 350gr")
Ejemplo n.º 19
0
 def setUp(self):
     cat = CategoriaFactory()
     self.productos = [ProductoFactory(descripcion=d,
                                       categoria=cat) for d in PRODUCTOS]
     self.q = 'Milanesas de soja MONDO FRIZZATTA ceb/que cja 380 grm'
     self.qs = self.f(self.q)
Ejemplo n.º 20
0
 def test_producto_sin_unidad_usa_annalisa(self):
     p = ProductoFactory(unidad_medida=None)
     assert p.unidad_medida is None
     self.config({'unidad_peso': 'gramo'})
     self.call()
     self.assertEqual(_(p).unidad_medida, Producto.UM_GRAMO)