def add_products_to_cart(): if request.is_json: request_dict = request.get_json() products = request_dict.get('products') response = GuestRole.save_products_to_basket(products) # if response: return jsonify(msg=response['msg'], data=response['response'])
def setUp(self) -> None: if not ("testing" in rel_path): raise ReferenceError("The Data Base is not the testing data base.\n" "\t\t\t\tPlease go to src.main.DataAccessLayer.ConnectionProxy.RealDb.rel_path\n" "\t\t\t\t and change rel_path to test_rel_path.\n" "\t\t\t\tThanks :D") self.__guest_role = GuestRole() self.__trade_control_mock = TradeControl.get_instance() self.__security_mock = Security.get_instance() self.__payment_proxy_mock = PaymentProxy.get_instance() self.__delivery_proxy_mock = DeliveryProxy.get_instance() self.__nickname = "anna9218" self.__password = "******" self.__store_name = "Some Store" self.__product_name = "Some Product" self.__keyword = "Some Keyword" self.__category = "Some Category"
def login(): if request.is_json: request_dict = request.get_json() nickname = request_dict.get('nickname') password = request_dict.get('password') response = GuestRole.login(nickname, password) # seems OK, need to verify later if response: return jsonify(msg=response['msg'], data=response['response']) return jsonify(msg="Login failed", data=response['response'], status=400)
def search_products_by(): if request.is_json: request_dict = request.get_json() search_option = request_dict.get( 'search_option') # by name, keyword or category input_str = request_dict.get('input') response = GuestRole.search_products_by( search_option, input_str) # list of Products (Object) return jsonify(msg=response["msg"], data=response["response"]) return jsonify(msg="Oops, communication error.", data=[])
def display_stores_products(): if request.is_json: request_dict = request.get_json() store_name = request_dict.get('store_name') store_info_flag = request_dict.get('store_info_flag') products_info_flag = request_dict.get('products_info_flag') response = GuestRole.display_stores_or_products_info( store_name, store_info_flag, products_info_flag) if response: return jsonify(msg=response["msg"], data=response["response"]) return jsonify(msg="get store products failed", data=response["response"], status=400)
def register(): req = request if request.is_json: request_dict = request.get_json() nickname = request_dict.get('nickname') password = request_dict.get('password') response = GuestRole.register(nickname, password) # seems OK, checked if response: return jsonify(msg=response['msg'], data=response['response']) # return jsonify(msg="Registered successfully!") return jsonify(msg="Registration failed", data=response['response'], status=400)
def purchase_products(): response = GuestRole.purchase_products() if response: # print(response) # print(purchases) # print(purchases[0]) # print(purchases[0]["store_name"]) # print("after handle") return jsonify(data=response) return jsonify(msg="purchase products failed", data=response["response"], status=400)
def filter_products_by(): if request.is_json: request_dict = request.get_json() filter_option = request_dict.get( 'filter_option') # by name, keyword or category products_ls = request_dict.get('products_ls') if filter_option == 1: min_price = request_dict.get('min_price') max_price = request_dict.get('max_price') response = GuestRole.filter_products_by( products_ls, filter_option, min_price=min_price, max_price=max_price) # list of Products (Object) else: if filter_option == 2: category = request_dict.get('category') response = GuestRole.filter_products_by( products_ls, filter_option, category=category) # list of Products (Object) return jsonify(msg=response["msg"], data=response["response"]) return jsonify(msg="Oops, communication error.", data=[])
def confirm_purchase(): if request.is_json: request_dict = request.get_json() delivery_details = request_dict.get('delivery_details') payment_details = request_dict.get('payment_details') details = request_dict.get("purchases") response = GuestRole.confirm_payment(delivery_details, payment_details, details) if response['response']: # purchases = details["purchases"] # map(lambda purchase: handle_purchase_msg(purchase["store_name"]), purchases) for purchase in details["purchases"]: handle_purchase_msg(purchase["store_name"]) if response: return jsonify(msg=response['msg'], data=response['response']) return jsonify(msg="purchase confirmation failed", data=response["response"], status=400)
def update_or_remove_from_shopping_cart(): # flag: str, products_details: [{"product_name": str, "store_name": str, "amount": int}]) \ if request.is_json: request_dict = request.get_json() action_type = request_dict.get('action_type') products_details = [{ 'product_name': request_dict.get("product_name"), 'store_name': request_dict.get("store_name"), 'amount': request_dict.get("amount") }] response = GuestRole.update_shopping_cart(action_type, products_details) if response: return jsonify(msg=response['msg'], data=response['response']) return jsonify(msg="purchase confirmation failed", data=response["response"], status=400)
class GuestRoleTest(unittest.TestCase): def setUp(self) -> None: if not ("testing" in rel_path): raise ReferenceError("The Data Base is not the testing data base.\n" "\t\t\t\tPlease go to src.main.DataAccessLayer.ConnectionProxy.RealDb.rel_path\n" "\t\t\t\t and change rel_path to test_rel_path.\n" "\t\t\t\tThanks :D") self.__guest_role = GuestRole() self.__trade_control_mock = TradeControl.get_instance() self.__security_mock = Security.get_instance() self.__payment_proxy_mock = PaymentProxy.get_instance() self.__delivery_proxy_mock = DeliveryProxy.get_instance() self.__nickname = "anna9218" self.__password = "******" self.__store_name = "Some Store" self.__product_name = "Some Product" self.__keyword = "Some Keyword" self.__category = "Some Category" # use case 2.2 def test_register(self): self.__security_mock.get_instance().validated_password = MagicMock(return_value=True) self.__trade_control_mock.get_instance().register_guest = MagicMock(return_value=True) res = self.__guest_role.register(self.__nickname, self.__password) # should succeed self.assertTrue(res) self.__security_mock.get_instance().validated_password = MagicMock(return_value=False) self.__trade_control_mock.get_instance().register_guest = MagicMock(return_value=True) res = self.__guest_role.register(self.__nickname, self.__password) self.assertFalse(res['response']) self.__security_mock.get_instance().validated_password = MagicMock(return_value=False) self.__trade_control_mock.get_instance().register_guest = MagicMock(return_value=False) res = self.__guest_role.register(self.__nickname, self.__password) self.assertFalse(res['response']) self.__security_mock.get_instance().validated_password = MagicMock(return_value=True) self.__trade_control_mock.get_instance().register_guest = MagicMock(return_value=False) res = self.__guest_role.register(self.__nickname, self.__password) self.assertFalse(res) # use case 2.3 def test_login(self): self.__trade_control_mock.get_instance().login_subscriber = MagicMock(return_value=True) res = self.__guest_role.login(self.__nickname, self.__password) # should succeed self.assertTrue(res) self.__trade_control_mock.get_instance().login_subscriber = MagicMock(return_value=False) res = self.__guest_role.login(self.__nickname, self.__password) self.assertFalse(res) # use case 2.4 def test_display_stores_or_products_info(self): self.__trade_control_mock.get_instance().get_store_info = MagicMock(return_value=True) res = self.__guest_role.display_stores_or_products_info(self.__store_name, True, False) self.assertTrue(res) self.__trade_control_mock.get_instance().get_store_info = MagicMock(return_value=False) res = self.__guest_role.display_stores_or_products_info(self.__store_name, True, False) self.assertFalse(res) self.__trade_control_mock.get_instance().get_store_inventory = MagicMock(return_value=True) res = self.__guest_role.display_stores_or_products_info(self.__store_name, False, True) self.assertTrue(res) self.__trade_control_mock.get_instance().get_store_inventory = MagicMock(return_value=False) res = self.__guest_role.display_stores_or_products_info(self.__store_name, False, True) self.assertFalse(res) # use case 2.5.1 def test_search_products_by(self): self.__trade_control_mock.get_instance().get_products_by = MagicMock(return_value=[]) res = self.__guest_role.search_products_by(1, self.__product_name) self.assertEqual([], res) self.__trade_control_mock.get_instance().get_products_by = MagicMock(return_value=[]) res = self.__guest_role.search_products_by(2, self.__keyword) self.assertEqual([], res) self.__trade_control_mock.get_instance().get_products_by = MagicMock(return_value=[]) res = self.__guest_role.search_products_by(3, self.__category) self.assertEqual([], res) # use case 2.5.2 def test_filter_products_by(self): self.__trade_control_mock.get_instance().filter_products_by = MagicMock(return_value=[]) res = self.__guest_role.filter_products_by([], []) self.assertEqual([], res) # use case 2.6 def test_save_products_to_basket(self): self.__trade_control_mock.get_instance().save_products_to_basket = MagicMock(return_value=[]) res = self.__guest_role.save_products_to_basket([]) self.assertEqual([], res) # use case 2.7 def test_view_shopping_cart(self): self.__trade_control_mock.get_instance().view_shopping_cart = MagicMock(return_value=[]) res = self.__guest_role.view_shopping_cart() self.assertEqual([], res) # use case 2.7 def test_update_shopping_cart(self): self.__trade_control_mock.get_instance().remove_from_shopping_cart = MagicMock(return_value=True) res = self.__guest_role.update_shopping_cart("remove", []) self.assertTrue(res) self.__trade_control_mock.get_instance().remove_from_shopping_cart = MagicMock(return_value=False) res = self.__guest_role.update_shopping_cart("remove", []) self.assertFalse(res) self.__trade_control_mock.get_instance().update_quantity_in_shopping_cart = MagicMock(return_value=True) res = self.__guest_role.update_shopping_cart("update", []) self.assertTrue(res) self.__trade_control_mock.get_instance().update_quantity_in_shopping_cart = MagicMock(return_value=False) res = self.__guest_role.update_shopping_cart("update", []) self.assertFalse(res) # -------------------------------------------------------------------- # use case 2.8 def test_purchase_products(self): self.__trade_control_mock.get_instance().purchase_products = MagicMock(return_value=[]) res = self.__guest_role.purchase_products() self.assertEqual([], res) def tearDown(self): self.__trade_control_mock.__delete__() self.__security_mock.__delete__() def __repr__(self): return repr("GuestRoleTest") if __name__ == '__main__': unittest.main()
def view_shopping_cart(): response = GuestRole.view_shopping_cart() return jsonify(data=response["response"], msg=response["msg"])
def display_stores(): response = GuestRole.display_stores() # BUG return jsonify(data=response)