Example #1
0
 def testSubscribe(self):
     "testing iq/pubsub/subscribe stanzas"
     iq = self.Iq()
     iq['pubsub']['subscribe']['options']
     iq['pubsub']['subscribe']['node'] = 'cheese'
     iq['pubsub']['subscribe']['jid'] = '[email protected]/slixmpp'
     iq['pubsub']['subscribe']['options']['node'] = 'cheese'
     iq['pubsub']['subscribe']['options'][
         'jid'] = '[email protected]/slixmpp'
     form = xep_0004.Form()
     form['type'] = 'submit'
     form.add_field('pubsub#title',
                    ftype='text-single',
                    value='this thing is awesome')
     iq['pubsub']['subscribe']['options']['options'] = form
     self.check(iq,
                """
     <iq id="0">
       <pubsub xmlns="http://jabber.org/protocol/pubsub">
         <subscribe node="cheese" jid="[email protected]/slixmpp">
           <options node="cheese" jid="[email protected]/slixmpp">
             <x xmlns="jabber:x:data" type="submit">
               <field var="pubsub#title">
                 <value>this thing is awesome</value>
               </field>
             </x>
           </options>
         </subscribe>
       </pubsub>
     </iq>""",
                use_values=False)
Example #2
0
    def testPublish(self):
        "Testing iq/pubsub/publish stanzas"
        iq = self.Iq()
        iq['pubsub']['publish']['node'] = 'thingers'
        payload = ET.fromstring("""
          <thinger xmlns="http://andyet.net/protocol/thinger" x="1" y='2'>
             <child1 />
             <child2 normandy='cheese' foo='bar' />
           </thinger>""")
        payload2 = ET.fromstring("""
          <thinger2 xmlns="http://andyet.net/protocol/thinger2" x="12" y='22'>
            <child12 />
            <child22 normandy='cheese2' foo='bar2' />
           </thinger2>""")
        item = pubsub.Item()
        item['id'] = 'asdf'
        item['payload'] = payload
        item2 = pubsub.Item()
        item2['id'] = 'asdf2'
        item2['payload'] = payload2
        iq['pubsub']['publish'].append(item)
        iq['pubsub']['publish'].append(item2)
        form = xep_0004.Form()
        form['type'] = 'submit'
        form.addField('pubsub#description',
                      ftype='text-single',
                      value='this thing is awesome')
        iq['pubsub']['publish_options'] = form

        self.check(
            iq, """
          <iq id="0">
            <pubsub xmlns="http://jabber.org/protocol/pubsub">
              <publish node="thingers">
                <item id="asdf">
                  <thinger xmlns="http://andyet.net/protocol/thinger" y="2" x="1">
                    <child1 />
                    <child2 foo="bar" normandy="cheese" />
                  </thinger>
                </item>
                <item id="asdf2">
                  <thinger2 xmlns="http://andyet.net/protocol/thinger2" y="22" x="12">
                    <child12 />
                    <child22 foo="bar2" normandy="cheese2" />
                  </thinger2>
                </item>
              </publish>
              <publish-options>
                <x xmlns="jabber:x:data" type="submit">
                  <field var="pubsub#description">
                    <value>this thing is awesome</value>
                  </field>
                </x>
              </publish-options>
            </pubsub>
          </iq>""")
Example #3
0
 def get_publish_options(self):
     config = self.xml.find('{jabber:x:data}x')
     if config is None:
         return None
     form = xep_0004.Form(xml=config)
     return form
Example #4
0
 def get_options(self):
     config = self.xml.find('{jabber:x:data}x')
     form = xep_0004.Form(xml=config)
     return form