input: Write a function to format a given piece of text with different options for font-style, size, and color. 
  
  assert format_text('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ut lectus vel nisi consequat bibendum ac a erat. Aliquam non velit sit amet arcu placerat vulputate a ut nibh.', font="Arial", size='16px', color='#ff0000') == "<span style='font-family: Arial' font-size: 16px' color: #ff0000'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ut lectus vel nisi consequat bibendum ac a erat. Aliquam non velit sit amet arcu placerat vulputate a ut nibh.</span>" 
  
  assert format_text('This is a test', font="Courier New", size='20px', color='#00ff00') == "<span style='font-family: Courier New' font-size: 20px' color: #00ff00'>This is a test</span>" 
  
  assert format_text('Hello World', color='#0000ff') == "<span style='font-family: Times New Roman' font-size: 14px' color: #0000ff'>Hello World</span>"
output: def format_text(text, font="Times New Roman", size="14px", color="#000000"):
      return f"<span style='font-family: {font}' font-size: {size}' color: {color}'>{text}</span>"