Esempio n. 1
0
    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"
Esempio n. 2
0
    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"
Esempio n. 3
0
    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"
            )
Esempio n. 4
0
    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"
Esempio n. 5
0
    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"
Esempio n. 6
0
    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")
Esempio n. 7
0
    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"
Esempio n. 8
0
    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"
Esempio n. 9
0
    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"
Esempio n. 10
0
    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")
Esempio n. 11
0
    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"
Esempio n. 12
0
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",
])