input: Write a python function to create a Tkinter window with a label and two buttons: one button to change the label's text to 'Hello World!' and another button to show a message box with a specified message.
  assert isinstance(window, tk.Tk)
  assert text_box.cget('text') == ''
  btn_1.invoke()
  assert text_box.cget('text') == 'Hello World!'
  btn_2.invoke()
  # Note: Since message boxes are modal and block the main loop, they can't be easily asserted in this context.
output: import tkinter as tk
  from tkinter import messagebox
  
  def create_window():
      def change_text():
          text_box.config(text="Hello World!")
      
      def show_message():
          messagebox.showinfo("Message", "This is a message box")
  
      window = tk.Tk()
      text_box = tk.Label(window, text="")
      text_box.pack()
  
      btn_1 = tk.Button(window, text="Change Text", command=change_text)
      btn_1.pack()
  
      btn_2 = tk.Button(window, text="Show Message", command=show_message)
      btn_2.pack()
  
      return window, text_box, btn_1, btn_2