def test_simpletest_strings_submsg(self):
        """Test we can/encode the address submsg bit
        of simpletest"""
        address = [u'123 Fake Street', u'Some City',
                  u'P0S T4L', u'Country']

        message = Message()
        for line, ordinal in zip(address, range(len(address))):
            message.add(line, ordinal=ordinal)

        writer = cStringIO.StringIO()
        message.encode(writer)
        bytes = writer.getvalue()
        m = Message.decode(bytes)
    def test_simple_message(self):
        """A Very simple message - a single indicator field"""
        message = Message()
        message.encode(self._output)
        self.assertOutput('')

        self._output.reset()
        message.add(INDICATOR)
        message.encode(self._output)
        self.assertOutput('\x80\x00')

        m = Message.decode('\x80\x00')
        self.assertEquals(1, len(m.fields))
        f = m.fields[0]
        self.assertEquals(INDICATOR, f.value)
    def test_message_with_multi_fields(self):
        """Check the encoding of a message with a few fields as
        a message .

        """
        encoded_mess = '\x80\x00\x90\x00\x00\x02\x80\x01\x01'
        encoded_env =  '\x00\x00\x00\x00\x00\x00\x00\x11' + encoded_mess

        message = Message()
        message.add(INDICATOR)
        message.add(INDICATOR, ordinal=2)
        message.add(True, classname='bool')
        message.encode(self._output)
        self.assertOutput(encoded_mess)

        m = Message.decode(encoded_mess)
        self.assertEquals(3, len(m.fields))