input: Write a python function to generate a random string of length 12 containing letters, digits, and special characters.
  assert len(generate_random_string()) == 12
  assert isinstance(generate_random_string(), str)
  assert any(c.isdigit() for c in generate_random_string())
  assert any(c.isalpha() for c in generate_random_string())
  assert any(c in '!@#$%^&*()' for c in generate_random_string())
output: import random
  import string
  
  def generate_random_string():
      characters = string.ascii_letters + string.digits + '!@#$%^&*()'
      random_string = ''.join(random.choice(characters) for _ in range(12))
      return random_string