def test_open_new_store_happy(self): #ok Ecommerce.get_instance().register("client", "123456789", 24) Ecommerce.get_instance().register("seller", "123456789", 24) store_number = Ecommerce.get_instance().open_new_store( "gifts store", "seller", "226333", 0, 100, 18).val[0][0] print(store_number) self.assertTrue(store_number > 0)
def test_change_details_of_product(self): user1 = User("amir", 1) user1.identifier = 0 user1.username = "******" user1.password = "******" user1.state = State.STORE_OWNER user1.is_logged_in = True store1 = Store("mega", 1, "123123", None, None) store1.store_number = 1 product1 = Product('chocholate', 'Food', ['Food', 'Sweet'], 10) product1.catalog_number = 1 store1.owners = [0] store1.add_new_product(product1) Ecommerce.get_instance().subscribers = [user1] Ecommerce.get_instance().stores = [store1] self.assertTrue( user1.change_details_of_product(1, "name", "whiteChocholate").val, "need return True") self.assertFalse( user1.change_details_of_product(2, "name", "whiteChocholate").val, "need return False")
def remove_from_cart(): form = RemoveFromCartForm() if form.validate_on_submit(): if UserSessions.current_user.is_logged_in: resp = Ecommerce.get_instance().remove_from_cart( UserSessions.current_user.username, form.catalog_number.data, None) else: check_if_store_exist = Ecommerce.get_instance( ).is_product_in_store(form.store_number.data, form.catalog_number.data) if check_if_store_exist.val: for shopping_cart in UserSessions.current_user.shopping_basket: if form.store_number.data == shopping_cart['store_number']: resp = Ecommerce.get_instance().remove_from_cart( UserSessions.current_user.username, form.catalog_number.data, shopping_cart) else: flash(check_if_store_exist.message, 'danger') flash(resp.message, 'success' if resp.val else 'danger') return render_template( 'remove_from_cart.html', form=form, title='Remove From Cart', legend='Remove From Cart', is_logged_in=UserSessions.current_user.is_logged_in) return render_template('remove_from_cart.html', form=form, title='Remove From Cart', legend='Remove From Cart', is_logged_in=UserSessions.current_user.is_logged_in)
def limit_quantity_per_store(): if not UserSessions.current_user.is_logged_in: return redirect(url_for('login')) form = LimitQuantityPerStore() if form.validate_on_submit(): if form.minimum_quantity.data == '' and form.maximum_quantity.data == '': flash( 'At least one of the maximum or minimum values must be filled', 'danger') return redirect(url_for('limit_quantity')) resp0 = None resp1 = None if form.minimum_quantity.data != '': resp0 = Ecommerce.get_instance().change_details_of_store( UserSessions.current_user.username, form.store_number.data, 'minimum_products', form.minimum_quantity.data) if form.maximum_quantity.data != '': resp1 = Ecommerce.get_instance().change_details_of_store( UserSessions.current_user.username, form.store_number.data, 'maximum_products', form.maximum_quantity.data) if resp0 and resp1 and resp0.val and resp1.val: flash(resp0.message, 'success') else: flash('Something went wrong, please check and try again', 'danger') return render_template('limit_quantity_per_store.html', form=form, title='limit quantity per store', legend='limit quantity per store')
def test_add_new_product(self): s1 = Store("my store", 0, 123213, None, None) s1.store_number = 0 Ecommerce.get_instance().stores = [s1] Ecommerce.get_instance().add_new_product(0, 'france schnitzel', 35, 'schnitzel', ['hot', 'crispy']) self.assertEqual(len(s1.products), 1) Ecommerce.get_instance().add_new_product(0, 'italian schnitzel', 35, 'hotSchnitzel', []) self.assertEqual(len(s1.products), 2)
def test_inc_product_amount(self): s1 = Store("my store", 1, 123213, None, None) s1.store_number = 0 Ecommerce.get_instance().stores = [s1] Ecommerce.get_instance().add_new_product(0, 'france schnitzel', 35, 'schnitzel', ['hot', 'crispy']) Ecommerce.get_instance().inc_product_amount(0, 0, 70) for p in s1.products: if p['product'].catalog_number == 0: self.assertEqual(p['amount'], 70)
def test_search_product(self): # no such product self.assertEqual( Ecommerce.get_instance().search_product( 'Name', 'no such product bla bla bla').val, []) # search by name Ecommerce.get_instance().register('ofek', 'secret', 20) store_number = Ecommerce.get_instance().open_new_store( 'mystore', 'ofek', 123456, 1, 100, 12).val[0][0] Ecommerce.get_instance().add_new_product('ofek', 'mystery book', 50, 17, 'reading', store_number, ['mystery', 'leisure'], 1, 70, 13) self.assertEqual( Ecommerce.get_instance().search_product( 'Name', 'mystery book').val[0].name, 'mystery book') # search by category self.assertEqual( Ecommerce.get_instance().search_product('Category', 'reading').val[0].category, 'reading') # search by key words self.assertEqual( Ecommerce.get_instance().search_product('Keyword', 'mystery').val[0][1], 'mystery')
def test_appointment_store_owner_sad(self): Ecommerce.get_instance().register("seller", "123456789", 24) Ecommerce.get_instance().register("notowneryet", "123456789", 24) store_number = Ecommerce.get_instance().open_new_store( "gifts store", "seller", "226333", 0, 100, 18).val[0][0] Ecommerce.get_instance().add_store_owner("seller", store_number, "notowneryet") Ecommerce.get_instance().add_store_owner("seller", store_number, "notowneryet").val
def test_add_new_product(self): Ecommerce.get_instance().register('ofek', 'secret', 20) store_number = Ecommerce.get_instance().open_new_store( 'mystore', 'ofek', 123456, 1, 100, 12).val[0][0] Ecommerce.get_instance().add_new_product('ofek', 'mystery book', 50, 17, 'reading', store_number, ['mystery', 'leisure'], 1, 70, 13) self.assertEqual( Ecommerce.get_instance().search_product( 'Name', 'mystery book').val[0].name, 'mystery book') num_of_products = SQLHandler.get_instance().select_from_db( 'select count(*) from products')[0][0] self.assertEqual(num_of_products, 1) Ecommerce.get_instance().add_new_product('ofek', 'mystery book2', 50, 17, 'reading', store_number, ['mystery', 'leisure'], 1, 70, 13) num_of_products = SQLHandler.get_instance().select_from_db( 'select count(*) from products')[0][0] self.assertEqual(num_of_products, 2)
def test_close_permanently(self): Ecommerce.get_instance().register("client1", "123456789", 24) Ecommerce.get_instance().register("admin", "123456789", 24) self.assertTrue(Ecommerce.get_instance().make_admin("admin",24)) store_number = Ecommerce.get_instance().open_new_store("ramiLevi", "amirdimri2", "12344", 0, 15, 14).val self.assertTrue(Ecommerce.get_instance().close_permanently("admin",store_number)) # Ecommerce.get_instance().get_stores_of_user_owner("amirdimri") self.assertFalse(Ecommerce.get_instance().close_store("client1", store_number))
def add_conditional_discount(): if not UserSessions.current_user.is_logged_in: return redirect(url_for('login')) form = AddConditionalDiscountPolicyToProduct() if form.validate_on_submit(): resp = Ecommerce.get_instance().add_cond_discount( UserSessions.current_user.username, form.first_product.data, form.discount_percentage.data, request.form.get('double_deals'), form.start_date.data, form.end_date.data, request.form.get('or_and'), form.second_product.data) flash(resp.message, 'success' if resp.val else 'danger') # flash(form.discount_percentage.data, 'success') # flash(request.form.get('double_deals'), 'success') # flash(form.start_date.data, 'success') # flash(form.end_date.data, 'success') # flash(form.first_product.data, 'success') # flash(request.form.get('or_and'), 'success') # flash(form.second_product.data, 'success') return redirect(url_for('add_conditional_discount')) return render_template('add_conditional _discount.html', form=form, title='add conditional discount policy', legend='add conditional discount policy')
def basket(): form = PurchaseForm() products = [] print(form.validate_on_submit()) if form.validate_on_submit(): print('amir') delivery_sys = delivery_system.DeliveryAddress(form.country.data, form.city.data, form.street.data, form.zip.data) resp = Ecommerce.get_instance().make_purchase( UserSessions.current_user.username, 'credit card', [ form.card_number.data, form.holder.data, form.cvv.data, form.month.data, form.year.data ], delivery_sys, None, None) if resp.val is not False: products = resp.val print('amir') flash(resp.message, 'success' if resp.val else 'danger') return render_template( 'basket.html', products=products, form=form, title='Basket', legend='Shopping Basket', is_logged_in=UserSessions.current_user.is_logged_in) print('ofek') return render_template('basket.html', products=products, form=form, title='Basket', legend='Shopping Basket', is_logged_in=UserSessions.current_user.is_logged_in)
def show_cart(): form = ShowCartForm() if form.validate_on_submit(): if UserSessions.current_user.is_logged_in: products = Ecommerce.get_instance().show_cart( UserSessions.current_user.username, form.store_number.data) message = products.message products = products.val else: products = [] message = 'Could not find the shopping cart you were looking for' for shopping_cart in UserSessions.current_user.shopping_basket: if shopping_cart['store_number'] == form.store_number.data: products = shopping_cart['products'] message = 'Found the shopping cart you were looking for' if products is None: flash(message, 'danger') elif len(products) == 0: flash('No products were found', 'danger') else: return render_template('show_cart.html', form=form, title='Show Cart', legend='Show Cart', products=products, store_number=form.store_number.data) return render_template('show_cart.html', form=form, title='Show Cart', legend='Show Cart')
def test_remove_store_owner_happy(self): Ecommerce.get_instance().register("seller", "123456789", 24) Ecommerce.get_instance().register("notowneryet", "123456789", 24) store_number = Ecommerce.get_instance().open_new_store( "gifts store", "seller", "226333", 0, 100, 18).val[0][0] Ecommerce.get_instance().add_store_owner("seller", store_number, "notowneryet") self.assertTrue(Ecommerce.get_instance().remove_store_owner( "seller", store_number, "notowneryet"))
def test_login(self): #ok user1 = User("amir", 324) user1.register("amirdimri", "123456789") Ecommerce.get_instance().subscribers = [user1] self.assertTrue( user1.login("amirdimri", "123456789").val, "need return True") self.assertFalse( user1.login("amirdimri", "123456789").val, "need return False")
def add_to_cart(): form = AddToCartForm() print('bbb') if form.validate_on_submit(): print('aaaa') if UserSessions.current_user.is_logged_in: resp = Ecommerce.get_instance().add_to_cart( UserSessions.current_user.username, form.catalog_number.data, None) else: check_if_store_exist = Ecommerce.get_instance( ).is_product_in_store(form.store_number.data, form.catalog_number.data) if check_if_store_exist.val: for shopping_cart in UserSessions.current_user.shopping_basket: if form.store_number.data == shopping_cart['store_number']: resp = Ecommerce.get_instance().add_to_cart( UserSessions.current_user.username, form.catalog_number.data, shopping_cart) else: new_cart = [{ 'store_number': form.store_number.data, 'products': [] }] UserSessions.current_user.shopping_basket.appent( new_cart) resp = Ecommerce.get_instance().add_to_cart( UserSessions.current_user.username, form.catalog_number.data, new_cart) else: flash(check_if_store_exist.message, 'danger') # ADD ANOTHER FIELD BASED ON GUEST OR NOT!!!!!!!!!!!!!!!!!! # from UserSessions.current_user.shopping_basket!!!!!!!!!!!!!!!!!!! flash(resp.message, 'success' if resp.val else 'danger') return render_template( 'add_to_cart.html', form=form, title='Add To Cart', legend='Add To Cart', is_logged_in=UserSessions.current_user.is_logged_in) return render_template('add_to_cart.html', form=form, title='Add To Cart', legend='Add To Cart', is_logged_in=UserSessions.current_user.is_logged_in)
def test_search_product(self): #ok store1 = Store("ramiLevi", 0, "123123", None, None) store1.store_number = 0 product1 = Product('Apple', 'Fruits', ['Food', 'Fruit', 'Apple'], 5) product1.catalog_number = 0 store1.add_new_product(product1) Ecommerce.get_instance().stores = [store1] self.assertEqual(len(User.search_product("name", "Apple").val), 1, 'bad')
def test_add_to_cart_happy(self): #ok Ecommerce.get_instance().register("client", "123456789", 24) Ecommerce.get_instance().register("seller", "123456789", 24) store_number = Ecommerce.get_instance().open_new_store( "gifts store", "seller", "226333", 0, 100, 18).val[0][0] print('store number' + str(store_number)) Ecommerce.get_instance().add_new_product("seller", 'chocholate', 10, 13, 'Food', store_number, ['food', 'sweet'], 0, 100, 16) catalog_number = Ecommerce.get_instance().search_product( 'Name', 'chocholate').val[0][0] print('catalog_number ' + str(catalog_number)) add_cart_response = Ecommerce.get_instance().add_to_cart( "client", catalog_number, None) print(add_cart_response.message)
def test_add_new_product(self): #ok user1 = User("amir", 2) user1.identifier = 0 store1 = Store("ramiLevi", 0, "123123", None, None) store1.supervisor = 1 Ecommerce.get_instance().stores = [store1] user1.state = State.STORE_OWNER self.assertTrue( user1.add_new_product(0, "chocholate", 5, "Food", ['Food', 'Sweet']), "need return True")
def test_remove_subscriber(self): #ok user1 = User("amir", 1) user1.identifier = 0 Ecommerce.get_instance().subscribers = [user1] user2 = User("ofek", 13) user2.identifier = 1 user2.state = State.GUEST self.assertFalse(user2.remove_subscriber(0).val, "need return False") user2.state = State.SYSTEM_ADMINISTRATOR self.assertTrue(user2.remove_subscriber(0), "need return False")
def test_add_to_cart(self): #ok user1 = User("amir", 12) product1 = Product('chocholate', 'Food', ['Food', 'Sweet'], 10) product1.catalog_number = 1 store1 = Store("ramiLevi", 0, "123123", None, None) store1.add_new_product(product1) Ecommerce.get_instance().stores = [store1] store1.inc_product_amount(1, 5) self.assertTrue(user1.add_to_cart(1).val, "need return True") self.assertFalse(user1.add_to_cart(9).val, "need return False")
def test_make_purchase(self): user = User('ofek', 18) discount_service = DiscountService() buying_policy = BuyingPolicyService() address = DeliveryAddress(13, 'Israel') store = Store('effect', 123, 123, discount_service, buying_policy) Ecommerce.get_instance().stores.append(store) cart = ShoppingCart(store) product = Product('israeli schnitzel', 'schnitzel', ['hot', 'casher'], 15) store.products.append({'product': product, 'amount': 5}) cart.products[product.catalog_number] = { 'product': product, 'amount': 4 } user.shopping_basket.shopping_carts.append(cart) all_transactions_been_made = user.make_purchase( 'paypal', ['ofek', '4580160114431651', '7', '20', '458'], address) self.assertEqual(len(all_transactions_been_made), 1) self.assertEqual(store.products[0]['amount'], 1)
def register(): form = RegistrationForm() if form.validate_on_submit(): resp = Ecommerce.get_instance().register(form.username.data, form.password.data, form.age.data) if not resp.val: flash(resp.message, 'danger') else: flash(resp.message, 'success') return redirect(url_for('login')) return render_template('register.html', title='Register', form=form)
def test_remove_product_sad(self): Ecommerce.get_instance().register("client", "123456789", 24) Ecommerce.get_instance().register("seller", "123456789", 24) store_number = Ecommerce.get_instance().open_new_store( "gifts store", "seller", "226333", 0, 100, 18).val[0][0] print(store_number) catalog_number = Ecommerce.get_instance().add_new_product( "seller", 'chocholate', 10, 13, 'Food', store_number, ['food', 'sweet'], 0, 100, 16).val self.assertFalse(Ecommerce.get_instance().remove_product( "seller", catalog_number + 1).val)
def test_search_product_sad(self): #ok Ecommerce.get_instance().register("amirdimri2", "123456789", 24) Ecommerce.get_instance().login("amirdimri2", "123456789") store_number_response = Ecommerce.get_instance().open_new_store( "ramiLevi", "amirdimri2", "12344", 0, 15, 14) print(store_number_response.message) catalog_number = Ecommerce.get_instance().add_new_product( "seller", 'chocholate', 10, 13, 'Food', store_number_response.val, ['food', 'sweet'], 0, 100, 16).val self.assertTrue(Ecommerce.get_instance().search_product( "Name", "Banana").val == [])
def remove_product(): if not UserSessions.current_user.is_logged_in: return redirect(url_for('login')) form = RemoveProductForm() if form.validate_on_submit(): resp = Ecommerce.get_instance().remove_product( UserSessions.current_user.username, form.catalog_number.data) flash(resp.message, 'success' if resp.val else 'danger') return redirect(url_for('remove_product')) return render_template('remove_product.html', form=form, title='Remove Product', legend='Remove Product')
def permanently_close(): if not UserSessions.current_user.is_logged_in: return redirect(url_for('login')) form = PermanentlyClose() if form.validate_on_submit(): resp = Ecommerce.get_instance().close_permanently( UserSessions.current_user.username, form.store_number.data) flash(resp.message, 'success' if resp.val else 'danger') return redirect(url_for('permanently_close')) return render_template('permanently_close.html', form=form, title='Permanently Close Store', legend='Permanently Close Store')
def test_remove_from_cart(self): #ok user1 = User("amir", 32) user1.identifier = 1 user1.state = State.STORE_OWNER product1 = Product('chocholate', 'Food', ['Food', 'Sweet'], 10) product1.catalog_number = 1 store1 = Store("ramiLevi", 0, "123123", None, None) store1.store_number = 0 store1.supervisor = 1 store1.add_new_product(product1) store1.owners = [user1.identifier] Ecommerce.get_instance().stores = [store1] self.assertTrue(user1.remove_product(0, 1).val, "need return True") self.assertFalse(user1.remove_product(0, 1).val, "need return False")
def test_remove_product(self): #ok user1 = User("amir", 12) user1.identifier = 0 store1 = Store("mega", 0, "456456", None, None) store1.store_number = 1 product1 = Product('chocholate', 'Food', ['Food', 'Sweet'], 10) product1.catalog_number = 1 store1.add_new_product(product1) Ecommerce.get_instance().stores = [store1] user1.state = State.GUEST self.assertFalse(user1.remove_product(1, 1).val, "need return False") user1.state = State.STORE_OWNER self.assertTrue(user1.remove_product(1, 1), "need return True") self.assertFalse(user1.remove_product(1, 10).val, "need return False")
def test_change_details_of_product_happy(self): Ecommerce.get_instance().register("client", "123456789", 24) Ecommerce.get_instance().register("seller", "123456789", 24) store_number = Ecommerce.get_instance().open_new_store( "gifts store", "seller", "226333", 0, 100, 18).val[0][0] print(store_number) catalog_number = Ecommerce.get_instance().add_new_product( "seller", 'chocholate', 10, 13, 'Food', store_number, ['food', 'sweet'], 0, 100, 16).val self.assertTrue( Ecommerce.get_instance().change_details_of_product( "seller", catalog_number, "Name", "brown chocholate"), "need return True")