def test_get_skills(self):
     result = database_controller.get_skills("Valdemar-Forsberg")
     self.assertEqual(result, [{
         "skillname":
         "Programming",
         "skillpath":
         "Programming",
         "level":
         1,
         "subcategories": [{
             "skillname": "Java",
             "skillpath": "Programming/Java",
             "level": 3,
             "subcategories": [],
             "root": False,
             "milestones": []
         }, {
             "skillname": "Python",
             "skillpath": "Programming/Python",
             "level": 4,
             "subcategories": [],
             "root": False,
             "milestones": []
         }, {
             "skillname": "JavaScript",
             "skillpath": "Programming/JavaScript",
             "level": 2,
             "subcategories": [],
             "root": False,
             "milestones": []
         }],
         "root":
         True,
         "milestones": []
     }])
Esempio n. 2
0
    def login(username, password):
        """Authenticates user with AD.
            Args:
                username(`str`): name of the user
                password(`str`): password of the user
            Returns:
                `dict`: profile of the logged in user as `ProfileModel` transformed into dict
        """

        name = authentication_controller.login(username, password)
        if not database_controller.exists(username):
            database_controller.create_user(username, name)
        user_skills = database_controller.get_skills(username)
        return dict(user=ProfileModel(username, name, user_skills).jsonable())
Esempio n. 3
0
 def set_skills(username, skills):
     """Adds Skills to user or changes the level.
         Args:
             username(`str`): name of the user
             skills(`dict(str=int)`): skillname:level pairs
         Returns:
             `dict`: updated ProfileModel of the user transformed into dict
         Raises:
             PermissionError if user is not logged in
     """
     if not controller.is_connected(username):
         raise PermissionError
     database_controller.set_skills(username, skills)
     user_skills = database_controller.get_skills(username)
     name = authentication_controller.get_name(username)
     return ProfileModel(username, name, user_skills).jsonable()
Esempio n. 4
0
 def remove_skill(username, skillpath, from_db):
     """Remove a skill either from the user's profile or the whole database.
        Args:
            username (`str`): the username of the current user
            skillpath(`str`): the full path of the skill
            from_db(`boolean`): deletes skill from database, if True, else only from user's profile
        Raises:
            PermissionError if user is not logged in
     """
     if not controller.is_connected(username):
         raise PermissionError
     if from_db:
         database_controller.remove_skill_from_database(skillpath)
     else:
         database_controller.remove_skill(username, skillpath)
     user_skills = database_controller.get_skills(username)
     name = authentication_controller.get_name(username)
     return ProfileModel(username, name, user_skills).jsonable()
Esempio n. 5
0
 def remove_milestone(username, skillpath, level, date, comment):
     """Removes a milestone from user.
         Args:
               username(`str`): name of the user
               skillpath(`str`): full path of the skill
               level(`int`): level of skill at milestone date
               date(`str`): date of milestone in format "YYYY-MM-DD"
               comment(`str`): comment for milestone
         Returns:
             `ProfileModel`: updated ProfileModel of the user.
         Raises:
             `PermissionError` if user ist not logged in.
     """
     if not controller.is_connected(username):
         raise PermissionError
     database_controller.remove_milestone(username, skillpath, level, date, comment)
     user_skills = database_controller.get_skills(username)
     name = authentication_controller.get_name(username)
     return ProfileModel(username, name, user_skills).jsonable()
Esempio n. 6
0
 def add_milestone(username, skillpath, date, comment, level):
     """Adds a milestone to skill of a user
         Args:
             username(`str`): name of the user
             skillpath(`str`): full path of the skill
             date(`str`): date in "YYYY-MM-DD" format
             comment(`str`): comment/text for the milestone
             level(`int`): level of skill for user
         Returns:
             `dict`: updated ProfileModel of the user transformed into dict
         Raises:
             PermissionError if user is not logged in
     """
     if not controller.is_connected(username):
         raise PermissionError
     date = datetime.datetime.strptime(date, "%Y-%m-%d").date()
     database_controller.add_milestone(username, skillpath, date, comment, level)
     user_skills = database_controller.get_skills(username)
     name = authentication_controller.get_name(username)
     return ProfileModel(username, name, user_skills).jsonable()
 def test_get_skills_inexistent(self):
     result = database_controller.get_skills("emptyUser")
     self.assertEquals(result, [])