"""automatic tests"""frommx.DateTimeimportnowfromcubicweb.devtools.testlibimportWebTest,AutomaticWebTestfromcubicweb.common.viewimportAnyRsetViewAutomaticWebTest.application_rql=['Any L,F WHERE E is EUser, E login L, E firstname F','Any L,F,E WHERE E is EUser, E login L, E firstname F','Any COUNT(X) WHERE X is EUser',]classComposityCopy(WebTest):deftest_regr_copy_view(self):"""regression test: make sure we can ask a copy of a composite entity """rset=self.execute('EUser X WHERE X login "admin"')self.view('copy',rset)classSomeView(AnyRsetView):id='someview'defcall(self):self.req.add_js('spam.js')self.req.add_js('spam.js')classManualWebTests(WebTest):defsetup_database(self):self.auto_populate(10)deftest_manual_tests(self):rset=self.execute('Any P,F,S WHERE P is EUser, P firstname F, P surname S')self.view('table',rset,template=None,displayfilter=True,displaycols=[0,2])rset=self.execute('Any P,F,S WHERE P is EUser, P firstname F, P surname S LIMIT 1')rset.req.form['rtype']='firstname'self.view('editrelation',rset,template=None,htmlcheck=False)rset.req.form['rtype']='use_email'self.view('editrelation',rset,template=None,htmlcheck=False)deftest_sortable_js_added(self):rset=self.execute('EUser X')# sortable.js should not be included by defaultself.failIf('jquery.tablesorter.js'inself.view('oneline',rset))# but should be included by the tableviewrset=self.execute('Any P,F,S WHERE P is EUser, P firstname F, P surname S LIMIT 1')self.failUnless('jquery.tablesorter.js'inself.view('table',rset))deftest_js_added_only_once(self):self.vreg.register_vobject_class(SomeView)rset=self.execute('EUser X')source=self.view('someview',rset).sourceself.assertEquals(source.count('spam.js'),1)classExplicitViewsTest(WebTest):deftest_unrelateddivs(self):rset=self.execute('Any X WHERE X is EUser, X login "admin"')group=self.add_entity('EGroup',name=u'R&D')req=self.request(relation='in_group_subject')self.view('unrelateddivs',rset,req)if__name__=='__main__':fromlogilab.common.testlibimportunittest_mainunittest_main()