def test_update_skill_ok_response( self, mock_skill_controller_request_params, mock_skill_repo_find_first, mock_skill_repo_get, ): """Test update_skill when role doesn't exist.""" # Arrange with self.app.app_context(): mock_skill_repo_get.return_value = self.mock_skill mock_skill_repo_find_first.return_value = self.mock_skill mock_skill_controller_request_params.return_value = ( self.mock_skill.id, "New mockwer", self.mock_skill.skill_category_id, ) skill_controller = SkillController(self.request_context) # Act result = skill_controller.update_skill(self.mock_skill.id) print(result.__dict__) # Assert assert result.status_code == 200 assert result.get_json()["msg"] == "OK"
def test_update_skill_when_id_do_not_match( self, mock_skill_repo_get, mock_skill_controller_request_params, mock_skill_repo_find_first, ): """Test update_skill when role doesn't exist.""" # Arrange with self.app.app_context(): mock_skill_repo_get.return_value = self.mock_skill mock_skill_repo_find_first.return_value = self.mock_skill mock_skill_controller_request_params.return_value = ( "Mock name", "Mock help", 8, ) skill_controller = SkillController(self.request_context) # Act result = skill_controller.update_skill(1) # Assert assert result.status_code == 400 assert result.get_json( )["msg"] == "Invalid or incorrect skill_id provided"
def test_update_skill_when_name_is_already_taken( self, mock_skill_controller_request_params, mock_skill_repo_find_first, mock_skill_repo_get, ): """Test update_skill when name already exists.""" # Arrange with self.app.app_context(): mock_skill_repo_get.return_value = self.mock_skill2 mock_skill_repo_find_first.return_value = self.mock_skill mock_skill_controller_request_params.return_value = ( self.mock_skill.id, self.mock_skill2.name, self.mock_skill_category.id, ) skill_controller = SkillController(self.request_context) # Act result = skill_controller.update_skill(self.mock_skill.id) # Assert assert result.status_code == 400 assert ( result.get_json()["msg"] == f"Skill name 'Mock skill2' with category name {self.mock_skill_category.name} already exists" )
def test_get_skill_ok_response(self, mock_skill_repo_find_first): """Test get_skill OK response.""" # Arrange with self.app.app_context(): mock_skill_repo_find_first.return_value = self.mock_skill skill_controller = SkillController(self.request_context) # Act result = skill_controller.get_skill(1) # Assert assert result.status_code == 200 assert result.get_json()["msg"] == "OK"
def test_get_skill_when_invalid_or_missing(self, mock_skill_repo_find_first): """Test get_skill invalid repo response.""" # Arrange with self.app.app_context(): mock_skill_repo_find_first.return_value = None skill_controller = SkillController(self.request_context) # Act result = skill_controller.get_skill(99) # Assert assert result.status_code == 400 assert result.get_json()["msg"] == "Invalid or Missing skill_id"
def test_delete_skill_when_skill_is_invalid(self, mock_skill_repo_get): """Test delete_skill when the role is invalid.""" # Arrange with self.app.app_context(): mock_skill_repo_get.return_value = None skill_controler = SkillController(self.request_context) # Act result = skill_controler.delete_skill(1) # Assert assert result.status_code == 404 assert (result.get_json()["msg"] == "Invalid or incorrect " "skill_id provided")
def test_delete_skill_ok_response(self, mock_skill_repo_update, mock_skill_repo_get): """Test delete_skill when the role is invalid.""" # Arrange with self.app.app_context(): mock_skill_repo_get.return_value = self.mock_skill mock_skill_repo_update.return_value = self.mock_skill skill_controler = SkillController(self.request_context) # Act result = skill_controler.delete_skill(1) # Assert assert result.status_code == 200 assert result.get_json()["msg"] == "skill deleted"
def test_list_skill_ok_response( self, mock_skill_repo_get_unpaginated, ): """Test list_skill OK response.""" # Arrange with self.app.app_context(): mock_skill_repo_get_unpaginated.return_value.items = [ self.mock_skill, ] skill_controller = SkillController(self.request_context) # Act result = skill_controller.list_skills() print(result.__dict__) # Assert assert result.status_code == 200 assert result.get_json()["msg"] == "OK"
def test_create_skill_ok_response( self, mock_skill_repo_find_first, mock_skill_controller_request_params, ): """Test create_skill OK response.""" # Arrange with self.app.app_context(): mock_skill_controller_request_params.return_value = ( "Skill Name", self.mock_skill_category.id, ) mock_skill_repo_find_first.return_value = None skill_controller = SkillController(self.request_context) # Act result = skill_controller.create_skill() # Assert assert result.status_code == 201 assert result.get_json()["msg"] == "OK"
def test_create_skill_when_name_and_category_id_already_exists( self, mock_skill_repo_find_first, mock_skill_controller_request_params, ): """Test create_skill when name and category id already exists.""" # Arrange with self.app.app_context(): mock_skill_controller_request_params.return_value = ( self.mock_skill.name, self.mock_skill.skill_category_id, ) mock_skill_repo_find_first.return_value = self.mock_skill skill_controller = SkillController(self.request_context) # Act result = skill_controller.create_skill() # Assert assert result.status_code == 400 assert (result.get_json()["msg"] == f"Skill name {self.mock_skill.name} with category name " f"{self.mock_skill.skill_category.name} already exists")
def test_update_skill_when_skill_doesnot_exist( self, mock_skill_repo_get, mock_skill_repo_find_first, mock_skill_controller_request_params, ): """Test update_skill when skill doesn't exist.""" # Arrange with self.app.app_context(): mock_skill_repo_get.return_value = None mock_skill_repo_find_first.return_value = None mock_skill_controller_request_params.return_value = ( 99, None, None, ) skill_controller = SkillController(self.request_context) # Act result = skill_controller.update_skill(99) # Assert assert result.status_code == 404 assert result.get_json()["msg"] == "Skill Not Found"
from app.blueprints.base_blueprint import ( Blueprint, BaseBlueprint, request, Security, Auth, ) from app.controllers.skill_controller import SkillController url_prefix = "{}/skills".format(BaseBlueprint.base_url_prefix) skill_blueprint = Blueprint("skill", __name__, url_prefix=url_prefix) skill_controller = SkillController(request) @skill_blueprint.route("/", methods=["GET"]) @Auth.has_permission(["view_skill"]) def list_skills(): return skill_controller.list_skills() @skill_blueprint.route("/<int:id>/", methods=["GET"]) @Auth.has_permission(["view_skill"]) def get_skill(skill_id): return skill_controller.get_skill(skill_id) @skill_blueprint.route("/", methods=["POST"]) @Security.validator([ "name|required:string", "skill_category_id|required:int", ])