def test_upsert_inserts_project_if_not_exists(self):
        self.test_project, self.test_user = create_canned_project()
        # Arrange
        UserService.upsert_mapped_projects(self.test_user.id, self.test_project.id)

        # Act
        projects = UserService.get_mapped_projects(self.test_user.username, "en")

        # Assert
        mapped_project = projects.mapped_projects[0]
        self.assertEqual(
            mapped_project.project_id, self.test_project.id
        )  # We should find we've mapped the test project
Example #2
0
 def get(self, username):
     """
     Gets projects user has mapped
     ---
     tags:
       - projects
     produces:
       - application/json
     parameters:
         - in: header
           name: Accept-Language
           description: Language user is requesting
           type: string
           required: true
           default: en
         - name: username
           in: path
           description: The users username
           required: true
           type: string
           default: Thinkwhere
     responses:
         200:
             description: Mapped projects found
         404:
             description: User not found
         500:
             description: Internal Server Error
     """
     try:
         locale = (
             request.environ.get("HTTP_ACCEPT_LANGUAGE")
             if request.environ.get("HTTP_ACCEPT_LANGUAGE")
             else "en"
         )
         user_dto = UserService.get_mapped_projects(username, locale)
         return user_dto.to_primitive(), 200
     except NotFound:
         return {"Error": "User 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 fetch projects"}, 500