''

def recv_feature(self, data, method='mask', use_values=True, timeout=1):

    if ((method is None) and hasattr(self, 'match_method')):
        method = getattr(self, 'match_method')
    if self.xmpp.socket.is_live:
        recv_data = self.xmpp.socket.next_recv(timeout)
        xml = self.parse_xml(data)
        recv_xml = self.parse_xml(recv_data)
        if (recv_data is None):
            self.fail('No    stanza    was    received.')
        if (method == 'exact'):
            self.failUnless(self.compare(xml, recv_xml), ('Features    do    not    match.\nDesired:\n%s\nReceived:\n%s' % (tostring(xml), tostring(recv_xml))))
        elif (method == 'mask'):
            matcher = MatchXMLMask(xml)
            self.failUnless(matcher.match(recv_xml), ((('Stanza    did    not    match    using    %s    method:\n' % method) + ('Criteria:\n%s\n' % tostring(xml))) + ('Stanza:\n%s' % tostring(recv_xml))))
        else:
            raise ValueError(('Uknown    matching    method:    %s' % method))
    else:
        data = str(data)
        self.xmpp.socket.recv_data(data)
