def METHOD_NAME(self):
    buf = StringIO.StringIO()
    # Toplevel headers
    toplevel = MimeWriter(buf)
    toplevel.addheader("From", "bwarsaw@cnri.reston.va.us")
    toplevel.addheader("Date", "Mon Feb 12 17:21:48 EST 1996")
    toplevel.addheader("To", "kss-submit@cnri.reston.va.us")
    toplevel.addheader("MIME-Version", "1.0")
    # Toplevel body parts
    f = toplevel.startmultipartbody("knowbot", "801spam999",
                                    [("version", "0.1")], prefix=0)
    f.write("This is a multi-part message in MIME format.\n")
    # First toplevel body part: metadata
    md = toplevel.nextpart()
    md.startmultipartbody("knowbot-metadata", "802spam999")
    # Metadata part 1
    md1 = md.nextpart()
    md1.addheader("KP-Metadata-Type", "simple")
    md1.addheader("KP-Access", "read-only")
    m = MimeWriter(md1.startbody("message/rfc822"))
    for key, value in SIMPLE_METADATA:
        m.addheader("KPMD-" + key, value)
    m.flushheaders()
    del md1
    # Metadata part 2
    md2 = md.nextpart()
    for key, value in COMPLEX_METADATA:
        md2.addheader("KP-" + key, value)
    f = md2.startbody("text/isl")
    f.write(SELLER)
    del md2
    # Metadata part 3
    md3 = md.nextpart()
    f = md3.startbody("message/external-body",
                      [("access-type", "URL"),
                       ("URL", "hdl://cnri.kss/generic-knowbot")])
    m = MimeWriter(f)
    for key, value in EXTERNAL_METADATA:
        md3.addheader("KP-" + key, value)
    md3.startbody("text/isl")
    # Phantom body doesn't need to be written
    md.lastpart()
    # Second toplevel body part: code
    code = toplevel.nextpart()
    code.startmultipartbody("knowbot-code", "803spam999")
    # Code: buyer program source
    buyer = code.nextpart()
    buyer.addheader("KP-Module-Name", "BuyerKP")
    f = buyer.startbody("text/plain")
    f.write(BUYER)
    code.lastpart()
    # Third toplevel body part: state
    state = toplevel.nextpart()
    state.addheader("KP-Main-Module", "main")
    state.startmultipartbody("knowbot-state", "804spam999")
    # State: a bunch of assignments
    st = state.nextpart()
    st.addheader("KP-Module-Name", "main")
    f = st.startbody("text/plain")
    f.write(STATE)
    state.lastpart()
    # End toplevel body parts
    toplevel.lastpart()
    self.assertEqual(buf.getvalue(), OUTPUT)