def test_interests(self): if self.skip_tests: return interests = ["interest_number_{0}".format(i) for i in range(1, 9)] [InterestService.create(interest_name=i) for i in interests] interests = InterestService.get_all_interests().to_primitive( )["interests"] self.assertEqual(len(interests), 8) # Create new interest. new_interest = InterestService.create( interest_name="test_new_interest") interests = InterestService.get_all_interests().to_primitive( )["interests"] self.assertEqual(len(interests), 9) # Update interest new_interest.name = "new_interest_name" updated_interest = InterestService.update(new_interest.id, new_interest) self.assertEqual(new_interest.name, updated_interest.name) # Associate users with interest. iids, uids = TestInterestService.relationship_user( interests, self.test_user.id, [1, 4, 5]) self.assertEqual(uids, iids) # Try again. iids, uids = TestInterestService.relationship_user( interests, self.test_user.id, [1, 2]) self.assertEqual(uids, iids) # Validate unexistent interest. with self.assertRaises(NotFound): InterestService.create_or_update_user_interests( self.test_user.id, [0]) # Associate projects with interest. iids, pids = TestInterestService.relationship_project( interests, self.test_project.id, [1, 2]) self.assertEqual(pids, iids) # Validate unexistent interest. with self.assertRaises(NotFound): InterestService.create_or_update_project_interests( self.test_project.id, [0]) # Delete one by one. for interest in interests: InterestService.delete(interest["id"]) interests = InterestService.get_all_interests().to_primitive( )["interests"] self.assertEqual(len(interests), 0)
def delete(self, interest_id): """ Delete a specified interest --- tags: - interests produces: - application/json parameters: - in: header name: Authorization description: Base64 encoded session token required: true type: string default: Token sessionTokenHere== - name: interest_id in: path description: Unique interest ID required: true type: integer default: 1 responses: 200: description: Interest deleted 401: description: Unauthorized - Invalid credentials 403: description: Forbidden 404: description: Interest not found 500: description: Internal Server Error """ try: orgs_dto = OrganisationService.get_organisations_managed_by_user_as_dto( tm.authenticated_user_id ) if len(orgs_dto.organisations) < 1: raise ValueError("User not a Org Manager") except ValueError as e: error_msg = f"InterestsAllAPI DELETE: {str(e)}" return {"Error": error_msg}, 403 try: InterestService.delete(interest_id) return {"Success": "Interest deleted"}, 200 except NotFound: return {"Error": "Interest Not Found"}, 404 except Exception as e: error_msg = f"License DELETE - unhandled error: {str(e)}" current_app.logger.critical(error_msg) return {"Error": error_msg}, 500