def testParseMessage(self):
        SRU_MESSAGE=parse(StringIO(SUCCES_RESPONSE))

        eventLogger = CallTrace('eventlogger')
        uploader = SruUpdateUploader(self.target, eventLogger)
        version, operationStatus, diagnostics = uploader._parseMessage(SRU_MESSAGE)
        self.assertEquals("1.0", version)
        self.assertEquals("success", operationStatus)
        self.assertEquals(None, diagnostics)
    def testParseMessage(self):
        SRU_MESSAGE = _parse(SUCCES_RESPONSE)

        eventLogger = CallTrace('eventlogger')
        uploader = SruUpdateUploader(self.target, eventLogger)
        version, operationStatus, diagnostics = uploader._parseMessage(
            SRU_MESSAGE)
        self.assertEqual("1.0", version)
        self.assertEqual("success", operationStatus)
        self.assertEqual(None, diagnostics)
    def testParseMessageWithDiagnostic(self):
        SRU_MESSAGE=parse(StringIO("""<?xml version="1.0" encoding="UTF-8"?>
<srw:updateResponse xmlns:srw="http://www.loc.gov/zing/srw/" xmlns:ucp="info:lc/xmlns/update-v1">
    <srw:version>1.0</srw:version>
    <ucp:operationStatus>fail</ucp:operationStatus>
    <srw:diagnostics>
        <diag:diagnostic xmlns:diag="http://www.loc.gov/zing/srw/diagnostic/">
            <diag:uri>info:srw/diagnostic/12/12</diag:uri>
            <diag:details>Xsd Validation error</diag:details>
            <diag:message>Invalid component: record rejected</diag:message>
        </diag:diagnostic>
    </srw:diagnostics>
</srw:updateResponse>"""))

        eventLogger = CallTrace('eventlogger')
        uploader = SruUpdateUploader(self.target, eventLogger)
        version, operationStatus, diagnostics = uploader._parseMessage(SRU_MESSAGE)
        self.assertEquals("1.0", version)
        self.assertEquals("fail", operationStatus)
        self.assertEquals(("info:srw/diagnostic/12/12", "Xsd Validation error", "Invalid component: record rejected"), diagnostics)
    def testParseMessageWithDiagnostic(self):
        SRU_MESSAGE = _parse("""<?xml version="1.0" encoding="UTF-8"?>
<srw:updateResponse xmlns:srw="http://www.loc.gov/zing/srw/" xmlns:ucp="info:lc/xmlns/update-v1">
    <srw:version>1.0</srw:version>
    <ucp:operationStatus>fail</ucp:operationStatus>
    <srw:diagnostics>
        <diag:diagnostic xmlns:diag="http://www.loc.gov/zing/srw/diagnostic/">
            <diag:uri>info:srw/diagnostic/12/12</diag:uri>
            <diag:details>Xsd Validation error</diag:details>
            <diag:message>Invalid component: record rejected</diag:message>
        </diag:diagnostic>
    </srw:diagnostics>
</srw:updateResponse>""")

        eventLogger = CallTrace('eventlogger')
        uploader = SruUpdateUploader(self.target, eventLogger)
        version, operationStatus, diagnostics = uploader._parseMessage(
            SRU_MESSAGE)
        self.assertEqual("1.0", version)
        self.assertEqual("fail", operationStatus)
        self.assertEqual(("info:srw/diagnostic/12/12", "Xsd Validation error",
                          "Invalid component: record rejected"), diagnostics)