class TestUpdate(ProductRequestTest): def setUp(self): ProductRequestTest.setUp(self) self.product2 = Product(quote_id=1, name="Test2", material="Material2", acabado="Acabado2", cristal="Cristal2") self.product2.add() def test_should_update_product_given_valid_data(self): product_request = ProductRequest(self.product) url = url_for('quote.edit', id=self.quote.id) product_data = dict(name1="New Name", material1="Material", acabado1="Acabado", cristal1="Cristal") with self.request_context(url, product_data): product_request.update() self.db.session.rollback() self.assertEqual(self.product.name, "New Name") def test_should_not_update_product_given_invalid_data(self): product_request = ProductRequest(self.product) url = url_for('quote.edit', id=self.quote.id) product_data = dict(name1="", material1="", acabado1="", cristal1="") with self.request_context(url, product_data): product_request.update() self.db.session.rollback() self.assertEqual(self.product.name, "Test")
class TestUpdate(ProductTest): def setUp(self): ProductTest.setUp(self) self.product2 = Product( quote_id=1, name="Test2", material="Material2", acabado="Acabado2", cristal="Cristal2" ) self.product2.add() def test_should_update_product_given_valid_name(self): self.product.name = "New Name" self.product.update() self.db.session.rollback() self.assertEqual(self.product.name, "New Name") def test_should_update_product_given_repeated_name(self): self.product2.name = "Test" self.product2.update() self.db.session.rollback() self.assertEqual(self.product2.name, "Test")
def setUp(self): ProductRequestTest.setUp(self) self.product2 = Product(quote_id=1, name="Test2", material="Material2", acabado="Acabado2", cristal="Cristal2") self.product2.add()
def setUp(self): MyTest.setUp(self) self.product = Product(quote_id=1, name="Test", material="Material", acabado="Acabado", cristal="Cristal") self.product.add() self.quote = Quote.new(1)
def add_product(self, product): new_product = Product( quote_id=self.id, name=product.name, material=product.material, acabado=product.acabado, cristal=product.cristal, unit_price=product.unit_price ) new_product.add()
def test_should_add_product_given_empty_values(self): product = Product( quote_id=1, name="", material="", acabado="", cristal="" ) product.add() self.assertIn(product, self.db.session)
def test_should_add_product_given_repeated_values(self): product = Product( quote_id=1, name="Test", material="Material", acabado="Acabado", cristal="Cristal" ) product.add() self.assertIn(product, self.db.session)
def test_should_not_return_error_given_repeated_values(self): product = Product(quote_id=1, name="Test", material="Material", acabado="Acabado", cristal="Cristal") product.add() product_validation = ProductValidation(product) error = product_validation.validate() self.assertEqual(error, None)
def test_should_return_error_given_invalid_products(self): quote_validation = QuoteValidation(self.quote) product = Product( quote_id=1, name="", material="", acabado="", cristal="" ) product.add() error = quote_validation.validate_products()
class ProductTest(MyTest): def setUp(self): MyTest.setUp(self) self.product = Product( quote_id=1, name="Test", material="Material", acabado="Acabado", cristal="Cristal" ) self.product.add()
def test_should_not_return_error_given_valid_products(self): quote_validation = QuoteValidation(self.quote) product = Product( quote_id=1, name="Valid name", material="Valid Material", acabado="Valid Acabado", cristal="Valid Cristal" ) product.add() error = quote_validation.validate_products() self.assertEqual(error, None)
def get_product(self): try: product = Product.search(request.form['name']) except KeyError: product = None return product
class TestGetAll(ProductTest): def setUp(self): ProductTest.setUp(self) self.product2 = Product( quote_id=1, name="Test2", material="Material2", acabado="Acabado2", cristal="Cristal2" ) self.product2.add() def test_should_return_all_products(self): products = Product.get_all() self.assertEqual(products, [self.product, self.product2])
def new_product(self): form = get_form(empty_form) product = Product.search(form["name"]) if product: form = empty_form product = self.make_product(form) return product
def make_product(self, form): product = Product(quote_id=self.quote.id, name=form['name'], material=form['material'], acabado=form['acabado'], cristal=form['cristal'], unit_price=0) return product
def setUp(self): MyTest.setUp(self) self.quote = Quote.new(1) self.customer = Customer( name="Test", email="*****@*****.**", phone="123 456 7890", address="Test address" ) self.customer.add() self.product = Product( quote_id=1, name="Test", material="Material", acabado="Acabado", cristal="Cristal" ) self.product.add()
def test_should_return_error_given_empty_values(self): product = Product(quote_id=1, name="", material="", acabado="", cristal="") product_validation = ProductValidation(product) error = product_validation.check_for_empty_values() self.assertNotEqual(error, None)
def __init__(self): self.products = Product.get_all() self.heads = [ "name", "material", "acabado", "cristal" ] self.data = self.get_empty_data() self.add_data()
def test_should_not_add_product_given_invalid_product(self): product = Product(quote_id=1, name="", material="", acabado="", cristal="") product_request = ProductRequest(product) product_request.add() self.assertNotIn(product, self.db.session)
def test_should_add_product_given_valid_product(self): product = Product(quote_id=1, name="Test two", material="Material", acabado="Acabado", cristal="Cristal") product_request = ProductRequest(product) product_request.add() self.assertIn(product, self.db.session)
def test_should_return_error_given_invalid_unit_price(self): product = Product(quote_id=1, name="Test", material="Material", acabado="Acabado", cristal="Cristal", unit_price="invalid unit_price") product_validation = ProductValidation(product) error = product_validation.validate_unit_price() self.assertNotEqual(error, None)
def test_should_not_return_error_given_valid_product(self): product = Product(quote_id=1, name="Test", material="Material", acabado="Acabado", cristal="Cristal", unit_price=10, cantidad=1) product_validation = ProductValidation(product) error = product_validation.validate() self.assertEqual(error, None)
def test_should_not_save_changes_given_invalid_data(self): quote_request = QuoteRequest(self.quote) url = url_for('quote.edit', id=self.quote.id) quote_data = dict( customer_name="", email="test.email.com", address="New address", name1="", material1="New Material", acabado1="", cristal1="New Cristal", name="Test Two", material="", acabado="Acabado two", cristal="Cristal two" ) with self.request_context(url, quote_data): quote_request.edit() self.db.session.rollback() self.assertEqual(self.customer.name, "Test") self.assertEqual(self.product.name, "Test") self.assertNotEqual(self.quote.address, "New address") self.assertEqual(len(Product.get_all()), 1)
def test_should_return_product_given_valid_id(self): product = Product.get(1) self.assertEqual(product, self.product)
def test_should_return_none_given_invalid_id(self): product = Product.get(2) self.assertEqual(product, None)
def test_should_return_all_products(self): products = Product.get_all() self.assertEqual(products, [self.product, self.product2])
def delete(id): product = Product.get(id) quote_id = product.quote.id product.delete() return redirect(url_for('quote.edit', id=quote_id))
def rotate_window(id): product = Product.get(id) product.orientation.rotate_window() return redirect(url_for('quote.edit', id=product.quote_id))