Exemple #1
0
 def patch(self, username, level):
     """
     Allows PMs to set a user's mapping level
     ---
     tags:
       - users
     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: Mapper's OpenStreetMap 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": "Unable to update mapping level"}, 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_set_level_adds_level_to_user(self):

        self.test_user = get_canned_user("Thinkwhere TEST")
        if self.test_user is None:
            self.test_user = create_canned_user()

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

        # Assert
        self.assertEqual(MappingLevel(user.mapping_level), MappingLevel.ADVANCED)
Exemple #4
0
 def test_unknown_level_raise_error_when_setting_level(self):
     # Act / Assert
     with self.assertRaises(UserServiceError):
         UserService.set_user_mapping_level("test", "TEST")