def test_list_products_ok_response( self, mock_pagination_meta, mock_filter_by ): '''Test list_products OK response. ''' # Arrange with self.app.app_context(): mock_pagination_meta.return_value = { 'total_rows': 1, 'total_pages': 1, 'current_page': 1, 'next_page': 1, 'prev_page': 1 } mock_filter_by.return_value.items = [ self.mock_product, ] product_controller = ProductController(self.request_context) # Act result = product_controller.list_products() # Assert assert result.status_code == 200 assert result.get_json()['msg'] == 'OK'
def test_update_product_ok_response( self, mock_product_repo_get, mock_request_params ): '''Test update_product OK response. ''' # Arrange with self.app.app_context(): mock_request_params.return_value = ( self.fake.name(), self.fake.text(), self.fake.pydecimal(left_digits=2, right_digits=2, positive=True), self.fake.pydecimal(left_digits=2, right_digits=2, positive=True), self.fake.name(), self.fake.name(), self.fake.name(), 20, 3, 1 ) mock_product_repo_get.return_value = self.mock_product product_controller = ProductController(self.request_context) # Act result = product_controller.update_product(1) # Assert assert result.status_code == 200 assert result.get_json()['msg'] == 'OK'
def test_update_product_when_product_doesnot_exist( self, mock_product_repo_get, mock_request_params ): '''Test update_product when product does not exist. ''' # Arrange with self.app.app_context(): mock_request_params.return_value = ( self.fake.name(), self.fake.text(), self.fake.pydecimal(left_digits=2, right_digits=2, positive=True), self.fake.pydecimal(left_digits=2, right_digits=2, positive=True), self.fake.name(), self.fake.name(), self.fake.name(), 20, 3, 1 ) mock_product_repo_get.return_value = None product_controller = ProductController(self.request_context) # Act result = product_controller.update_product(1) # Assert assert result.status_code == 400 assert result.get_json()['msg'] == 'Invalid or incorrect ' \ 'product_id provided'
def test_get_product_ok_response( self, mock_product_repo_get ): '''Test get_product OK response. ''' # Arrange with self.app.app_context(): mock_product_repo_get.return_value = self.mock_product product_controller = ProductController(self.request_context) # Act result = product_controller.get_product(1) # Assert assert result.status_code == 200 assert result.get_json()['msg'] == 'OK'
def test_delete_product_when_product_is_already_deleted( self, mock_product_repo_get ): '''Test delete_product when product is already deleted. ''' # Arrange with self.app.app_context(): mock_product_repo_get.return_value = self.mock_deleted_product product_controller = ProductController(self.request_context) # Act result = product_controller.delete_product(1) # Assert assert result.status_code == 400 assert result.get_json()['msg'] == 'product has already ' \ 'been deleted'
def test_delete_product_when_product_doesnot_exist( self, mock_product_repo_get ): '''Test delete_product when product doesnot exist. ''' # Arrange with self.app.app_context(): mock_product_repo_get.return_value = None product_controller = ProductController(self.request_context) # Act result = product_controller.delete_product(1) # Assert assert result.status_code == 400 assert result.get_json()['msg'] == 'Invalid or incorrect ' \ 'product_id provided'
def test_get_product_when_product_doesnot_exist( self, mock_product_repo_get ): '''Test get_product when the product doesnot exist. ''' # Arrange with self.app.app_context(): mock_product_repo_get.return_value = None product_controller = ProductController(self.request_context) # Act result = product_controller.get_product(1) # Assert assert result.status_code == 400 assert result.get_json()['msg'] == 'Bad Request - Invalid or ' \ 'Missing product_id'
def test_creat_product_ok_response( self, mock_new_product, mock_request_params ): '''Test create_product OK response. ''' mock_request_params.return_value = ( self.fake.name(), self.fake.text(), self.fake.pydecimal(left_digits=2, right_digits=2, positive=True), self.fake.pydecimal(left_digits=2, right_digits=2, positive=True), self.fake.name(), self.fake.name(), self.fake.name(), 20, 3, 1, [2,3] ) mock_new_product.return_value = self.mock_product product_controller = ProductController(self.request_context) # Act result = product_controller.create_product() # Assert assert result.status_code == 201 assert result.get_json()['msg'] == 'OK'
from flask import jsonify, request, Blueprint from flask.views import MethodView from datetime import datetime from flask_jwt_extended import get_jwt_identity, jwt_required from app.validation import Validation from app.decorator import admin_permission_required from app.controllers.product_controller import ProductController from app.controllers.sale_controller import SaleController from app.controllers.user_controller import UserController from app.db.db_functions import DBFunctions validate = Validation() product_controller = ProductController() user_controller = UserController() sale_controller = SaleController() db_func = DBFunctions() views_blueprint = Blueprint("views_blueprint", __name__) """PRODUCT VIEWS""" class AddProduct(MethodView): @admin_permission_required def post(self): try: data = request.get_json() search_keys = ("product", "quantity", "unit_price") if all(key in data.keys() for key in search_keys): product = data.get("product") quantity = data.get("quantity") unit_price = data.get("unit_price") invalid = validate.product_validation(