input: Write a function to create a web scraper in Python that can extract hotel reviews from TripAdvisor. The function should take a URL as input, make a request to the URL, parse the HTML content, and extract the title and text of each review. If the URL is invalid or the request fails, the function should raise an exception.
  
  assert scrape_reviews('https://www.tripadvisor.com/Hotel_Review-g60763-d114360-Reviews-The_Peninsula_New_York-New_York_City_New_York.html')==[('Great stay', 'The hotel was amazing with excellent service.'), ('Disappointing', 'The room was not clean and the staff was unhelpful.')]
  assert scrape_reviews('https://www.tripadvisor.com/Hotel_Review-g60763-d114360-Reviews-The_Peninsula_New_York-New_York_City_New_York.html')==[('Excellent location', 'The hotel is perfectly located close to major attractions.'), ('Poor experience', 'The hotel needs better management.')]
  
output: 
  import requests
  from bs4 import BeautifulSoup
  
  def scrape_reviews(url):
      try:
          response = requests.get(url)
          response.raise_for_status()
      except requests.RequestException:
          raise Exception("Invalid URL or request failed")
      
      soup = BeautifulSoup(response.text, 'html.parser')
      reviews = []
      
      for review in soup.find_all('div', class_='review-container'):
          title = review.find('span', class_='noQuotes').text
          text = review.find('p', class_='partial_entry').text
          reviews.append((title, text))
      
      return reviews
  