¿Cómo ejecuto unittest en una aplicación Tkinter?

Acabo de empezar a aprender sobreTDD, y estoy desarrollando un programa usando una GUI de Tkinter. El único problema es que una vez que el.mainloop() Se llama al método, el conjunto de pruebas se cuelga hasta que se cierra la ventana.

Aquí hay un ejemplo de mi código:

# server.py
import Tkinter as tk

class Server(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.mainloop()

# test.py
import unittest
import server

class ServerTestCase(unittest.TestCase):
    def testClassSetup(self):
       server.Server()
       # and of course I can't call any server.whatever functions here

if __name__ == '__main__':
    unittest.main()

¿Cuál es la forma adecuada de probar las aplicaciones de Tkinter? ¿O es simplemente 'no'?

Respuestas a la pregunta(3)

Su respuesta a la pregunta