[forms] edited_entity must be set before calling session_key()
EntityFieldsForm.__init__ calls FieldsForm.__init__ which in turn
calls self.session_key().
self.session_key() uses self.edited_key to compute the correct session
key. We thus need edited_entity to be set **before** calling super's __init__.
The bug only occured when EntityFieldsForm was selected because of its
one_line_rset() selector instead of match_kwargs('entity').
"""
:organization: Logilab
:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2.
:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
:license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
"""
from logilab.common.testlib import TestCase, unittest_main
from cubicweb.web.views.embedding import prefix_links
class UILIBTC(TestCase):
def test_prefix_links(self):
"""suppose we are embedding http://embedded.com/page1.html"""
orig = ['<a href="http://www.perdu.com">perdu ?</a>',
'<a href="http://embedded.com/page1.html">perdu ?</a>',
'<a href="/page2.html">perdu ?</a>',
'<a href="page3.html">perdu ?</a>',
'<img src="http://www.perdu.com/img.png"/>',
'<img src="/img.png"/>',
'<img src="img.png"/>',
]
expected = ['<a href="PREFIXhttp%3A%2F%2Fwww.perdu.com">perdu ?</a>',
'<a href="PREFIXhttp%3A%2F%2Fembedded.com%2Fpage1.html">perdu ?</a>',
'<a href="PREFIXhttp%3A%2F%2Fembedded.com%2Fpage2.html">perdu ?</a>',
'<a href="PREFIXhttp%3A%2F%2Fembedded.com%2Fpage3.html">perdu ?</a>',
'<img src="http://www.perdu.com/img.png"/>',
'<img src="http://embedded.com/img.png"/>',
'<img src="http://embedded.com/img.png"/>',
]
for orig_a, expected_a in zip(orig, expected):
got = prefix_links(orig_a, 'PREFIX', 'http://embedded.com/page1.html')
self.assertEquals(got, expected_a)
if __name__ == '__main__':
unittest_main()