Esempio n. 1
0
 def post(self, username, level):
     """
     Allows PMs to set a users mapping level
     ---
     tags:
       - user
     produces:
       - application/json
     parameters:
         - in: header
           name: Authorization
           description: Base64 encoded session token
           required: true
           type: string
           default: Token sessionTokenHere==
         - name: username
           in: path
           description: The users username
           required: true
           type: string
           default: Thinkwhere
         - name: level
           in: path
           description: The mapping level that should be set
           required: true
           type: string
           default: ADVANCED
     responses:
         200:
             description: Level set
         400:
             description: Bad Request - Client Error
         401:
             description: Unauthorized - Invalid credentials
         404:
             description: User not found
         500:
             description: Internal Server Error
     """
     try:
         UserService.set_user_mapping_level(username, level)
         return {"Success": "Level set"}, 200
     except UserServiceError:
         return {"Error": "Not allowed"}, 400
     except NotFound:
         return {"Error": "User or mapping not found"}, 404
     except Exception as e:
         error_msg = f'User GET - unhandled error: {str(e)}'
         current_app.logger.critical(error_msg)
         return {"error": error_msg}, 500
    def test_set_level_adds_level_to_user(self):
        if self.skip_tests:
            return

        # Act
        user = UserService.set_user_mapping_level(self.test_user.username, MappingLevel.ADVANCED.name)

        # Assert
        self.assertEqual(MappingLevel(user.mapping_level), MappingLevel.ADVANCED)
Esempio n. 3
0
 def test_unknown_level_raise_error_when_setting_level(self):
     # Act / Assert
     with self.assertRaises(UserServiceError):
         UserService.set_user_mapping_level('test', 'TEST')