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)
def test_unknown_level_raise_error_when_setting_level(self): # Act / Assert with self.assertRaises(UserServiceError): UserService.set_user_mapping_level('test', 'TEST')