frlp-utn-ingsoft / orderingg

Aplicación utilizada en la cursada 2018 de Ingenieria de Software. UTN-FRLP
4 stars 20 forks source link

Duda sobre los codigos #72

Open CarlosdAndrade opened 6 years ago

CarlosdAndrade commented 6 years ago

Hola profesor, quería saber si estan bien los codigos para ver si entendí bien la lógica que me fue indicando:

    def test_borrar(self):
        p = Product(id='1', name='cuchillo', price=20) # Creo el producto
        db.session.add(p)
        o = Order(id=1) # Genero la orden
        db.session.add(o)
        op = OrderProduct(order_id=1, product_id=1, product= p, quantity=2) #Creo la orden
        db.session.add(op)
        db.session.commit() # Agrego lo que cree
        res = self.client.delete('order/1/product/1') #Realizo la transacción para borrar
        self.assertNotEqual(res.status, "200 OK", 'No se realizo la transacción correctamente') #Verifico si pudo hacerse la transacción
        res = Product.query.filter(Product.id == 1).first() #Realizo una consulta filtrando por el id del producto que agregue.
        self.assertTrue(res != '', 'El test fallo, no se eliminó el producto') #Pregunto por si es verdadero que la variable donde guardo la consulta es distinta de vacá

# Actividad 3 inciso 3c
    def test_name_vacio(self):
        p = {'name':'','price':30} #Creo el producto
        resp = self.client.post('/product', data=json.dumps(p), content_type='application/json') #cargo el producto
        self.assertNotEqual(resp.status, "200 OK",'No se realizo la transacción correctamente') #Pregunto si la transacción se hizo correctamente
        res= Product.query.filter(Product.name == '').first()#Realizo una consulta para saber si el producto con nombre vacío sigue estando
        self.assertTrue (res!='' , 'El test fallo, se agrego producto con nombre vacío')#Me fijo si donde guardo la respuesta es distinta de cadena vacía
Gracias profesor
RodrigoJacznik commented 6 years ago

Estas pudiendo correr los test? pasan o fallan?

CarlosdAndrade commented 6 years ago

Fallaban profe me equivoque en analizar la transacción, ahi lo corregi self.assertEqual(resp.status, "200 OK",'No se realizo la transacción correctamente') estaba verificando al revés la condición. Idem con el otro self.assertNoEqual, lo arregle. Perdón por el error. Quedaron asi def test_borrar(self): p = Product(id='1', name='cuchillo', price=20) # Creo el producto db.session.add(p) o = Order(id=1) # Genero la orden db.session.add(o) op = OrderProduct(order_id=1, product_id=1, product= p, quantity=2) #Creo la orden db.session.add(op) db.session.commit() # Agrego lo que cree res = self.client.delete('order/1/product/1') #Realizo la transacción para borrar self.assertEqual(res.status, "200 OK", 'No se realizo la transacción correctamente') #Verifico si pudo hacerse la transacción res = Product.query.filter(Product.id == 1).first() #Realizo una consulta filtrando por el id del producto que agregue. self.assertTrue(res != '', 'El test fallo, no se eliminó el producto') #Pregunto por si es verdadero que la variable donde guardo la consulta es distinta de vacá

Actividad 3 inciso 3c

def test_name_vacio(self):
    p = {'name':'','price':30} #Creo el producto
    resp = self.client.post('/product', data=json.dumps(p), content_type='application/json') #cargo el producto
    self.assertEqual(resp.status, "200 OK",'No se realizo la transacción correctamente') #Pregunto si la transacción se hizo correctamente
    res= Product.query.filter(Product.name == '').first()#Realizo una consulta para saber si el producto con nombre vacío sigue estando
    self.assertTrue res!= '', 'El test fallo, se agrego producto con nombre vacío')#Me fijo si donde guardo la respuesta es igual a la cadena vacía
ivanduva commented 6 years ago

Carlos, el test_name_vacio sigue estando mal hecho porque estás usando la API para hacer un test de modelo. Más allá de eso, por favor lee los mails que te enviamos porque arreglar esos dos tests NO era la actividad que te había tocado hacer para aprobar el trabajo.

CarlosdAndrade commented 6 years ago

Hola profesor, gracias por indicarmelo, la verdad entendí mal lo que tenía que realizar. Aca le envío el código de agregar una orden con cantidad negativa:

    def test_entero_negativo(self):
        p = Product(id='1', name='cuchillo', price=20)  # Creo el producto
        db.session.add(p)
        o = Order(id=1)  # Genero la orden
        db.session.add(o)
        op = OrderProduct(order_id=1, product_id=1, product=p, quantity=-2)  # Creo la orden con valor negativo
        db.session.add(op)
        db.session.commit()  # Agrego lo que cree
        res= OrderProduct.query.filter(OrderProduct.quantity <= 0).first()#Verifico que se hayan agregado ordenes con valores negativos
        self.assertTrue (res!='','El test fallo, se agrego una orden de producto con valor negativo')

Haber si voy mas o menos bien por el camino. Disculpe las molestias