Mercurial > libervia-backend
diff sat/test/test_plugin_xep_0277.py @ 2562:26edcf3a30eb
core, setup: huge cleaning:
- moved directories from src and frontends/src to sat and sat_frontends, which is the recommanded naming convention
- move twisted directory to root
- removed all hacks from setup.py, and added missing dependencies, it is now clean
- use https URL for website in setup.py
- removed "Environment :: X11 Applications :: GTK", as wix is deprecated and removed
- renamed sat.sh to sat and fixed its installation
- added python_requires to specify Python version needed
- replaced glib2reactor which use deprecated code by gtk3reactor
sat can now be installed directly from virtualenv without using --system-site-packages anymore \o/
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 02 Apr 2018 19:44:50 +0200 |
parents | src/test/test_plugin_xep_0277.py@0046283a285d |
children | 56f94936df1e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sat/test/test_plugin_xep_0277.py Mon Apr 02 19:44:50 2018 +0200 @@ -0,0 +1,110 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- + +# SAT: a jabber client +# Copyright (C) 2009-2018 Jérôme Poisson (goffi@goffi.org) + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +""" Plugin XEP-0277 tests """ + +from sat.test import helpers +from sat.plugins import plugin_xep_0277 +from sat.plugins import plugin_xep_0060 +from sat.plugins import plugin_misc_text_syntaxes +from sat.tools.xml_tools import ElementParser +from wokkel.pubsub import NS_PUBSUB + + +class XEP_0277Test(helpers.SatTestCase): + + PUBSUB_ENTRY_1 = u""" + <item id="c745a688-9b02-11e3-a1a3-c0143dd4fe51"> + <entry xmlns="%s"> + <title type="text"><span>titre</span></title> + <id>c745a688-9b02-11e3-a1a3-c0143dd4fe51</id> + <updated>2014-02-21T16:16:39+02:00</updated> + <published>2014-02-21T16:16:38+02:00</published> + <content type="text"><p>contenu</p>texte sans balise<p>autre contenu</p></content> + <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>contenu</p>texte sans balise<p>autre contenu</p></div></content> + <author> + <name>test1@souliane.org</name> + </author> + </entry> + </item> + """ % plugin_xep_0277.NS_ATOM + + PUBSUB_ENTRY_2 = u""" + <item id="c745a688-9b02-11e3-a1a3-c0143dd4fe51"> + <entry xmlns='%s'> + <title type="text"><div>titre</div></title> + <title type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div style="background-image: url('xxx');">titre</div></div></title> + <id>c745a688-9b02-11e3-a1a3-c0143dd4fe51</id> + <updated>2014-02-21T16:16:39+02:00</updated> + <published>2014-02-21T16:16:38+02:00</published> + <content type="text"><div><p>contenu</p>texte dans balise<p>autre contenu</p></div></content> + <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>contenu</p>texte dans balise<p>autre contenu</p></div></content> + <author> + <name>test1@souliane.org</name> + <nick>test1</nick> + </author> + </entry> + </item> + """ % plugin_xep_0277.NS_ATOM + + def setUp(self): + self.host = helpers.FakeSAT() + + class XEP_0163(object): + def __init__(self, host): + pass + + def addPEPEvent(self, *args): + pass + self.host.plugins["XEP-0060"] = plugin_xep_0060.XEP_0060(self.host) + self.host.plugins["XEP-0163"] = XEP_0163(self.host) + reload(plugin_misc_text_syntaxes) # reload the plugin to avoid conflict error + self.host.plugins["TEXT-SYNTAXES"] = plugin_misc_text_syntaxes.TextSyntaxes(self.host) + self.plugin = plugin_xep_0277.XEP_0277(self.host) + + def test_item2mbdata_1(self): + expected = {u'id': u'c745a688-9b02-11e3-a1a3-c0143dd4fe51', + u'atom_id': u'c745a688-9b02-11e3-a1a3-c0143dd4fe51', + u'title': u'<span>titre</span>', + u'updated': u'1392992199.0', + u'published': u'1392992198.0', + u'content': u'<p>contenu</p>texte sans balise<p>autre contenu</p>', + u'content_xhtml': u'<div><p>contenu</p>texte sans balise<p>autre contenu</p></div>', + u'author': u'test1@souliane.org' + } + item_elt = ElementParser()(self.PUBSUB_ENTRY_1, namespace=NS_PUBSUB).elements().next() + d = self.plugin.item2mbdata(item_elt) + d.addCallback(self.assertEqual, expected) + return d + + def test_item2mbdata_2(self): + expected = {u'id': u'c745a688-9b02-11e3-a1a3-c0143dd4fe51', + u'atom_id': u'c745a688-9b02-11e3-a1a3-c0143dd4fe51', + u'title': u'<div>titre</div>', + u'title_xhtml': u'<div><div style="">titre</div></div>', + u'updated': u'1392992199.0', + u'published': u'1392992198.0', + u'content': u'<div><p>contenu</p>texte dans balise<p>autre contenu</p></div>', + u'content_xhtml': u'<div><p>contenu</p>texte dans balise<p>autre contenu</p></div>', + u'author': u'test1@souliane.org' + } + item_elt = ElementParser()(self.PUBSUB_ENTRY_2, namespace=NS_PUBSUB).elements().next() + d = self.plugin.item2mbdata(item_elt) + d.addCallback(self.assertEqual, expected) + return d