[devtools] make PostgresTestDataBaseHandler start its own postgresql
Don't depend on postgresql already running on the system, or on a static
config.
To use this, set the configcls attribute of your CubicWebTC-derived test
class to PostgresApptestConfiguration.
Caveats:
- this won't work with several tests running concurrently from the
same directory, since each would start its own cluster with a shared
data directory and stomp on each other's toes
- you need initdb/pg_ctl in $PATH, e.g /usr/lib/postgresql/$version/bin
on Debian/Ubuntu systems.
Closes #3489631
from cubicweb.devtools.testlib import CubicWebTC
from cubicweb.web.views.xmlrss import SERIALIZERS
class EntityXMLViewTC(CubicWebTC):
"""see also cw.sobjects.test.unittest_parsers"""
def test(self):
req = self.request(relation=['tags-object', 'in_group-subject',
'in_state-subject', 'use_email-subject'])
self.assertMultiLineEqual(
req.user.view('xml'),
'''\
<CWUser eid="6" cwuri="None6" cwsource="system">
<login>admin</login>
<upassword/>
<firstname/>
<surname/>
<last_login_time/>
<creation_date>%(cdate)s</creation_date>
<modification_date>%(mdate)s</modification_date>
<tags role="object">
</tags>
<in_group role="subject">
<CWGroup eid="%(group_eid)s" cwuri="None%(group_eid)s"/>
</in_group>
<in_state role="subject">
<State eid="%(state_eid)s" cwuri="None%(state_eid)s" name="activated"/>
</in_state>
<use_email role="subject">
</use_email>
</CWUser>
''' % {'cdate': SERIALIZERS['Datetime'](req.user.creation_date),
'mdate': SERIALIZERS['Datetime'](req.user.modification_date),
'state_eid': req.user.in_state[0].eid,
'group_eid': req.user.in_group[0].eid})
if __name__ == '__main__':
from logilab.common.testlib import unittest_main
unittest_main()