# HG changeset patch # User sylvain.thenault@logilab.fr # Date 1241444976 -7200 # Node ID 57b9fd2462b89f55678f3a95b47e3ac09156e416 # Parent 8b82227719f05e9b46342a5b17b7f863c71d6715 test updates diff -r 8b82227719f0 -r 57b9fd2462b8 web/test/unittest_controller.py --- a/web/test/unittest_controller.py Mon May 04 15:49:20 2009 +0200 +++ b/web/test/unittest_controller.py Mon May 04 15:49:36 2009 +0200 @@ -9,13 +9,22 @@ from cubicweb.devtools import apptest class BaseControllerTC(apptest.ControllerTC): - def test_parse_datetime(self): - self.assertIsInstance(self.ctrl.parse_datetime('2006/06/24 12:18'), datetime) - self.assertIsInstance(self.ctrl.parse_datetime('2006/06/24'), datetime) - self.assertIsInstance(self.ctrl.parse_datetime('2006/06/24 12:18', 'Datetime'), datetime) - self.assertIsInstance(self.ctrl.parse_datetime('2006/06/24', 'Datetime'), datetime) - self.assertIsInstance(self.ctrl.parse_datetime('2006/06/24', 'Date'), date) - self.assertIsInstance(self.ctrl.parse_datetime('12:18', 'Time'), time) + + def test_parse_datetime_ok(self): + self.assertIsInstance(self.ctrl.parse_datetime('2006/06/24 12:18'), + datetime) + self.assertIsInstance(self.ctrl.parse_datetime('2006/06/24'), + date) + self.assertIsInstance(self.ctrl.parse_datetime('2006/06/24 12:18', 'Datetime'), + datetime) + self.assertIsInstance(self.ctrl.parse_datetime('2006/06/24', 'Datetime'), + datetime) + self.assertIsInstance(self.ctrl.parse_datetime('2006/06/24', 'Date'), + date) + self.assertIsInstance(self.ctrl.parse_datetime('12:18', 'Time'), + time) + + def test_parse_datetime_ko(self): self.assertRaises(ValueError, self.ctrl.parse_datetime, '2006/06/24 12:188', 'Datetime') self.assertRaises(ValueError, @@ -28,6 +37,6 @@ self.ctrl.parse_datetime, '2006/06/240', 'Date') self.assertRaises(ValueError, self.ctrl.parse_datetime, '12:188', 'Time') - + if __name__ == '__main__': unittest_main() diff -r 8b82227719f0 -r 57b9fd2462b8 web/test/unittest_form.py --- a/web/test/unittest_form.py Mon May 04 15:49:20 2009 +0200 +++ b/web/test/unittest_form.py Mon May 04 15:49:36 2009 +0200 @@ -108,35 +108,35 @@ def test_richtextfield_1(self): self.req.use_fckeditor = lambda: False - self._test_richtextfield(''' -''' % {'eid': file.eid}) +''' % {'eid': file.eid}) def test_passwordfield(self): @@ -171,9 +171,9 @@ upassword = StringField(widget=PasswordInput) form = PFForm(self.req, redirect_path='perdu.com', entity=self.entity) self.assertTextEquals(self._render_entity_field('upassword', form), - ''' + '''
- +   confirm password''' % {'eid': self.entity.eid}) diff -r 8b82227719f0 -r 57b9fd2462b8 web/test/unittest_formfields.py --- a/web/test/unittest_formfields.py Mon May 04 15:49:20 2009 +0200 +++ b/web/test/unittest_formfields.py Mon May 04 15:49:36 2009 +0200 @@ -13,7 +13,7 @@ schema = config.load_schema() state_schema = schema['State'] cwuser_schema = schema['CWUser'] -file_schema.schema = schema['File'] +file_schema = schema['File'] class GuessFieldTC(TestCase): diff -r 8b82227719f0 -r 57b9fd2462b8 web/test/unittest_magicsearch.py --- a/web/test/unittest_magicsearch.py Mon May 04 15:49:20 2009 +0200 +++ b/web/test/unittest_magicsearch.py Mon May 04 15:49:36 2009 +0200 @@ -33,7 +33,7 @@ class QueryTranslatorTC(EnvBasedTC): """test suite for QueryTranslatorTC""" - + def setUp(self): super(QueryTranslatorTC, self).setUp() self.req = self.env.create_request() @@ -83,7 +83,7 @@ self.assertEquals(translate(u'prénom', eschema), "firstname") self.assertEquals(translate(u'nom', eschema), 'surname') #self.assert_(translate(u'nom') in ('name', 'surname')) - eschema = self.schema.eschema('EmailAddress') + eschema = self.schema.eschema('EmailAddress') self.assertEquals(translate(u'adresse', eschema), "address") self.assertEquals(translate(u'nom', eschema), 'alias') # should fail if the name is not an attribute for the given entity schema @@ -96,9 +96,9 @@ self.assertEquals(transform('123'), ('Any X WHERE X eid %(x)s', {'x': 123}, 'x')) self.assertEquals(transform('CWUser'), - ('CWUser E',)) + ('CWUser C',)) self.assertEquals(transform('Utilisateur'), - ('CWUser E',)) + ('CWUser C',)) self.assertEquals(transform('Adresse'), ('EmailAddress E',)) self.assertEquals(transform('adresse'), @@ -111,9 +111,9 @@ self.assertEquals(transform('CWUser', 'E'), ("CWUser E",)) self.assertEquals(transform('CWUser', 'Smith'), - ('CWUser E WHERE E has_text %(text)s', {'text': 'Smith'})) + ('CWUser C WHERE C has_text %(text)s', {'text': 'Smith'})) self.assertEquals(transform('utilisateur', 'Smith'), - ('CWUser E WHERE E has_text %(text)s', {'text': 'Smith'})) + ('CWUser C WHERE C has_text %(text)s', {'text': 'Smith'})) self.assertEquals(transform(u'adresse', 'Logilab'), ('EmailAddress E WHERE E has_text %(text)s', {'text': 'Logilab'})) self.assertEquals(transform(u'adresse', 'Logi%'), @@ -125,22 +125,22 @@ """tests the 'three words shortcut queries'""" transform = self.proc._three_words_query self.assertEquals(transform('utilisateur', u'prénom', 'cubicweb'), - ('CWUser E WHERE E firstname %(text)s', {'text': 'cubicweb'})) + ('CWUser C WHERE C firstname %(text)s', {'text': 'cubicweb'})) self.assertEquals(transform('utilisateur', 'nom', 'cubicweb'), - ('CWUser E WHERE E surname %(text)s', {'text': 'cubicweb'})) + ('CWUser C WHERE C surname %(text)s', {'text': 'cubicweb'})) self.assertEquals(transform(u'adresse', 'nom', 'cubicweb'), ('EmailAddress E WHERE E alias %(text)s', {'text': 'cubicweb'})) self.assertEquals(transform('EmailAddress', 'nom', 'cubicweb'), - ('EmailAddress E WHERE E alias %(text)s', {'text': 'cubicweb'})) + ('EmailAddress E WHERE E alias %(text)s', {'text': 'cubicweb'})) self.assertEquals(transform('utilisateur', u'prénom', 'cubicweb%'), - ('CWUser E WHERE E firstname LIKE %(text)s', {'text': 'cubicweb%'})) + ('CWUser C WHERE C firstname LIKE %(text)s', {'text': 'cubicweb%'})) # expanded shortcuts self.assertEquals(transform('CWUser', 'use_email', 'Logilab'), - ('CWUser E WHERE E use_email E1, E1 has_text %(text)s', {'text': 'Logilab'})) + ('CWUser C WHERE C use_email C1, C1 has_text %(text)s', {'text': 'Logilab'})) self.assertEquals(transform('CWUser', 'use_email', '%Logilab'), - ('CWUser E WHERE E use_email E1, E1 alias LIKE %(text)s', {'text': '%Logilab'})) + ('CWUser C WHERE C use_email C1, C1 alias LIKE %(text)s', {'text': '%Logilab'})) self.assertRaises(BadRQLQuery, transform, 'word1', 'word2', 'word3') - + def test_multiple_words_query(self): """tests multiple_words_query()""" self.assertEquals(self.proc._multiple_words_query(['a', 'b', 'c', 'd', 'e']), @@ -150,9 +150,9 @@ """tests how quoted queries are handled""" queries = [ (u'Adresse "My own EmailAddress"', ('EmailAddress E WHERE E has_text %(text)s', {'text': u'My own EmailAddress'})), - (u'Utilisateur prénom "Jean Paul"', ('CWUser E WHERE E firstname %(text)s', {'text': 'Jean Paul'})), - (u'Utilisateur firstname "Jean Paul"', ('CWUser E WHERE E firstname %(text)s', {'text': 'Jean Paul'})), - (u'CWUser firstname "Jean Paul"', ('CWUser E WHERE E firstname %(text)s', {'text': 'Jean Paul'})), + (u'Utilisateur prénom "Jean Paul"', ('CWUser C WHERE C firstname %(text)s', {'text': 'Jean Paul'})), + (u'Utilisateur firstname "Jean Paul"', ('CWUser C WHERE C firstname %(text)s', {'text': 'Jean Paul'})), + (u'CWUser firstname "Jean Paul"', ('CWUser C WHERE C firstname %(text)s', {'text': 'Jean Paul'})), ] transform = self.proc._quoted_words_query for query, expected in queries: @@ -160,23 +160,23 @@ self.assertRaises(BadRQLQuery, transform, "unquoted rql") self.assertRaises(BadRQLQuery, transform, 'pers "Jean Paul"') self.assertRaises(BadRQLQuery, transform, 'CWUser firstname other "Jean Paul"') - + def test_process_query(self): """tests how queries are processed""" queries = [ - (u'Utilisateur', (u"CWUser E",)), + (u'Utilisateur', (u"CWUser C",)), (u'Utilisateur P', (u"CWUser P",)), - (u'Utilisateur cubicweb', (u'CWUser E WHERE E has_text %(text)s', {'text': u'cubicweb'})), - (u'CWUser prénom cubicweb', (u'CWUser E WHERE E firstname %(text)s', {'text': 'cubicweb'},)), + (u'Utilisateur cubicweb', (u'CWUser C WHERE C has_text %(text)s', {'text': u'cubicweb'})), + (u'CWUser prénom cubicweb', (u'CWUser C WHERE C firstname %(text)s', {'text': 'cubicweb'},)), (u'Any X WHERE X is Something', (u"Any X WHERE X is Something",)), ] for query, expected in queries: self.assertEquals(self.proc.preprocess_query(query, self.req), expected) - + ## Processor Chains tests ############################################ - + class ProcessorChainTC(EnvBasedTC): """test suite for magic_search's processor chains""" @@ -195,9 +195,9 @@ # XXX this sounds like a language translator test... # and it fail (u'Utilisateur Smith', - ('CWUser E WHERE E has_text %(text)s', {'text': u'Smith'})), + ('CWUser C WHERE C has_text %(text)s', {'text': u'Smith'})), (u'utilisateur nom Smith', - ('CWUser E WHERE E surname %(text)s', {'text': u'Smith'})), + ('CWUser C WHERE C surname %(text)s', {'text': u'Smith'})), (u'Any P WHERE P is Utilisateur, P nom "Smith"', ('Any P WHERE P is CWUser, P surname "Smith"', None)), ] @@ -219,6 +219,6 @@ rset = self.proc.process_query(u'text: utilisateur Smith', self.req) self.assertEquals(rset.rql, 'Any X WHERE X has_text %(text)s') self.assertEquals(rset.args, {'text': u'utilisateur Smith'}) - + if __name__ == '__main__': unittest_main() diff -r 8b82227719f0 -r 57b9fd2462b8 web/test/unittest_urlpublisher.py --- a/web/test/unittest_urlpublisher.py Mon May 04 15:49:20 2009 +0200 +++ b/web/test/unittest_urlpublisher.py Mon May 04 15:49:36 2009 +0200 @@ -21,11 +21,11 @@ b = self.add_entity('BlogEntry', title=u'hell\'o', content=u'blabla') c = self.add_entity('Tag', name=u'yo') # take care: Tag's name normalized to lower case self.execute('SET C tags B WHERE C eid %(c)s, B eid %(b)s', {'c':c.eid, 'b':b.eid}, 'b') - + def process(self, url): req = self.req = self.request() return self.env.app.url_resolver.process(req, url) - + def test_raw_path(self): """tests raw path resolution'""" self.assertEquals(self.process('view'), ('view', None)) @@ -51,12 +51,12 @@ self.assertEquals(len(rset), 1) self.assertEquals(rset.description[0][0], 'CWUser') self.assertEquals(rset.printable_rql(), 'Any X WHERE X is CWUser, X login "admin"') - ctrl, rset = self.process('euser/admin') + ctrl, rset = self.process('cwuser/admin') self.assertEquals(ctrl, 'view') self.assertEquals(len(rset), 1) self.assertEquals(rset.description[0][0], 'CWUser') self.assertEquals(rset.printable_rql(), 'Any X WHERE X is CWUser, X login "admin"') - ctrl, rset = self.process('euser/eid/%s'%rset[0][0]) + ctrl, rset = self.process('cwuser/eid/%s'%rset[0][0]) self.assertEquals(ctrl, 'view') self.assertEquals(len(rset), 1) self.assertEquals(rset.description[0][0], 'CWUser') @@ -77,7 +77,7 @@ self.assertRaises(NotFound, self.process, 'CWUser/eid/30000') self.assertRaises(NotFound, self.process, 'Workcases') self.assertRaises(NotFound, self.process, 'CWUser/inexistant_attribute/joe') - + def test_action_path(self): """tests the action path resolution""" self.assertRaises(Redirect, self.process, '1/edit') @@ -92,7 +92,7 @@ """tests the regexp path resolution""" ctrl, rset = self.process('add/Task') self.assertEquals(ctrl, 'view') - self.assertEquals(rset, None) + self.assertEquals(rset, None) self.assertEquals(self.req.form, {'etype' : "Task", 'vid' : "creation"}) self.assertRaises(NotFound, self.process, 'add/foo/bar') @@ -103,11 +103,11 @@ try: path = str(FakeRequest().url_quote(u'été')) ctrl, rset = self.process(path) - self.assertEquals(rset, None) + self.assertEquals(rset, None) self.assertEquals(self.req.form, {'vid' : "foo"}) finally: SimpleReqRewriter.rules = oldrules - + if __name__ == '__main__': unittest_main() diff -r 8b82227719f0 -r 57b9fd2462b8 web/test/unittest_views_basecontrollers.py --- a/web/test/unittest_views_basecontrollers.py Mon May 04 15:49:20 2009 +0200 +++ b/web/test/unittest_views_basecontrollers.py Mon May 04 15:49:36 2009 +0200 @@ -89,7 +89,7 @@ } path, params = self.expect_redirect_publish(req) cnx.commit() # commit to check we don't get late validation error for instance - self.assertEquals(path, 'euser/user') + self.assertEquals(path, 'cwuser/user') self.failIf('vid' in params) def testr_user_editing_itself_no_relation(self): @@ -137,7 +137,7 @@ } path, params = self.expect_redirect_publish() # should be redirected on the created person - self.assertEquals(path, 'euser/adim') + self.assertEquals(path, 'cwuser/adim') e = self.execute('Any P WHERE P surname "Di Mascio"').get_entity(0, 0) self.assertEquals(e.surname, 'Di Mascio') email = e.use_email[0] @@ -329,7 +329,7 @@ self.req.form = {'eid': str(eid), '__type:%s'%eid: 'EmailAddress', '__action_delete': ''} path, params = self.expect_redirect_publish() - self.assertEquals(path, 'euser/admin') + self.assertEquals(path, 'cwuser/admin') self.assertEquals(params, {u'__message': u'entity deleted'}) eid1 = self.add_entity('BlogEntry', title=u'hop', content=u'hop').eid eid2 = self.add_entity('EmailAddress', address=u'hop@logilab.fr').eid @@ -448,7 +448,7 @@ 'upassword:X': u'toto', 'upassword-confirm:X': u'toto', 'edits-upassword:X': u'', } path, params = self.expect_redirect_publish() - self.assertEquals(path, 'euser/toto') + self.assertEquals(path, 'cwuser/toto') e = self.execute('Any X WHERE X is CWUser, X login "toto"').get_entity(0, 0) self.assertEquals(e.login, 'toto') self.assertEquals(e.in_group[0].name, 'managers') @@ -527,16 +527,18 @@ ## tests ################################################################## def test_simple_exec(self): - ctrl = self.ctrl(self.request(rql='CWUser P WHERE P login "John"', - pageid='123')) + req = self.request(rql='CWUser P WHERE P login "John"', + pageid='123', fname='view') + ctrl = self.ctrl(req) + rset = self.john.as_rset() self.assertTextEquals(ctrl.publish(), - xhtml_wrap(self.john.view('primary'))) + xhtml_wrap(ctrl.view('primary', rset))) - def test_json_exec(self): - rql = 'Any T,N WHERE T is Tag, T name N' - ctrl = self.ctrl(self.request(mode='json', rql=rql, pageid='123')) - self.assertEquals(ctrl.publish(), - simplejson.dumps(self.execute(rql).rows)) +# def test_json_exec(self): +# rql = 'Any T,N WHERE T is Tag, T name N' +# ctrl = self.ctrl(self.request(mode='json', rql=rql, pageid='123')) +# self.assertEquals(ctrl.publish(), +# simplejson.dumps(self.execute(rql).rows)) def test_remote_add_existing_tag(self): self.remote_call('tag_entity', self.john.eid, ['python']) @@ -562,7 +564,7 @@ eid) self.commit() rset = self.execute('CWUser P') - # make sure we did not insert a new euser here + # make sure we did not insert a new cwuser here self.assertEquals(len(rset), nbusers) john = self.execute('Any X WHERE X eid %(x)s', {'x': self.john.eid}, 'x').get_entity(0, 0) self.assertEquals(john.eid, self.john.eid) @@ -570,12 +572,12 @@ def test_pending_insertion(self): - res, req = self.remote_call('add_pending_insert', ['12', 'tags', '13']) + res, req = self.remote_call('add_pending_inserts', [['12', 'tags', '13']]) deletes = req.get_pending_deletes() self.assertEquals(deletes, []) inserts = req.get_pending_inserts() self.assertEquals(inserts, ['12:tags:13']) - res, req = self.remote_call('add_pending_insert', ['12', 'tags', '14']) + res, req = self.remote_call('add_pending_inserts', [['12', 'tags', '14']]) deletes = req.get_pending_deletes() self.assertEquals(deletes, []) inserts = req.get_pending_inserts() @@ -609,7 +611,7 @@ def test_remove_pending_operations(self): self.remote_call('add_pending_delete', ['12', 'tags', '13']) - _, req = self.remote_call('add_pending_insert', ['12', 'tags', '14']) + _, req = self.remote_call('add_pending_inserts', [['12', 'tags', '14']]) inserts = req.get_pending_inserts() self.assertEquals(inserts, ['12:tags:14']) deletes = req.get_pending_deletes() @@ -636,7 +638,7 @@ simplejson.dumps(['bimboom'])) def test_format_date(self): - self.assertEquals(self.remote_call('format_date', '"2007-01-01 12:00:00"')[0], + self.assertEquals(self.remote_call('format_date', '2007-01-01 12:00:00')[0], simplejson.dumps('2007/01/01')) diff -r 8b82227719f0 -r 57b9fd2462b8 web/test/unittest_views_baseviews.py --- a/web/test/unittest_views_baseviews.py Mon May 04 15:49:20 2009 +0200 +++ b/web/test/unittest_views_baseviews.py Mon May 04 15:49:36 2009 +0200 @@ -6,17 +6,17 @@ from cubicweb.devtools.apptest import EnvBasedTC from cubicweb.web.htmlwidgets import TableWidget -from cubicweb.web.views.baseviews import vid_from_rset +from cubicweb.web.views import vid_from_rset def loadjson(value): return loads(html_unescape(value)) class VidFromRsetTC(EnvBasedTC): - + def test_no_rset(self): req = self.request() self.assertEquals(vid_from_rset(req, None, self.schema), 'index') - + def test_no_entity(self): req = self.request() rset = self.execute('Any X WHERE X login "blabla"') @@ -36,24 +36,24 @@ req = self.request() rset = self.execute('Any X WHERE X eid 1') self.assertEquals(vid_from_rset(req, rset, self.schema), 'primary') - + def test_more_than_one_entity(self): req = self.request() rset = self.execute('Any X WHERE X is CWUser') self.assertEquals(vid_from_rset(req, rset, self.schema), 'list') rset = self.execute('Any X, L WHERE X login L') self.assertEquals(vid_from_rset(req, rset, self.schema), 'list') - + def test_more_than_one_entity_by_row(self): req = self.request() rset = self.execute('Any X, G WHERE X in_group G') self.assertEquals(vid_from_rset(req, rset, self.schema), 'table') - + def test_more_than_one_entity_by_row_2(self): req = self.request() rset = self.execute('Any X, GN WHERE X in_group G, G name GN') self.assertEquals(vid_from_rset(req, rset, self.schema), 'table') - + def test_aggregat(self): req = self.request() rset = self.execute('Any X, COUNT(T) GROUPBY X WHERE X is T') @@ -81,7 +81,7 @@ req = self.request() view = self.vreg.select_view('table', req, rset) return e, rset, view - + def test_headers(self): self.skip('implement me') diff -r 8b82227719f0 -r 57b9fd2462b8 web/test/unittest_views_editforms.py --- a/web/test/unittest_views_editforms.py Mon May 04 15:49:20 2009 +0200 +++ b/web/test/unittest_views_editforms.py Mon May 04 15:49:36 2009 +0200 @@ -1,7 +1,7 @@ from logilab.common.testlib import unittest_main from cubicweb.devtools.apptest import EnvBasedTC from cubicweb.devtools.testlib import WebTest -from cubicweb.web.views.editforms import AutomaticEntityForm as AEF +from cubicweb.web.views.autoform import AutomaticEntityForm as AEF from cubicweb.web.formwidgets import AutoCompletionWidget def rbc(entity, category): return [(rschema.type, x) for rschema, tschemas, x in AEF.erelations_by_category(entity, category)] @@ -15,7 +15,7 @@ entity=self.user()) field = form.field_by_name('login') self.assertIsInstance(field.widget, AutoCompletionWidget) - AEF.rwidgets.del_rtag('login', 'subject', 'CWUser') + AEF.rwidgets.del_rtag(('CWUser', 'login', '*'),'subject') def test_euser_relations_by_category(self): @@ -44,14 +44,14 @@ ('bookmarked_by', 'object'), ]) self.assertListEquals(rbc(e, 'generic'), - [('primary_email', 'subject'), - ('use_email', 'subject'), - ('connait', 'subject'), + [('connait', 'subject'), ('checked_by', 'object'), ]) # owned_by is defined both as subject and object relations on CWUser self.assertListEquals(rbc(e, 'generated'), - [('has_text', 'subject'), + [('primary_email', 'subject'), + ('use_email', 'subject'), + ('has_text', 'subject'), ('identity', 'subject'), ('is', 'subject'), ('is_instance_of', 'subject'), diff -r 8b82227719f0 -r 57b9fd2462b8 web/test/unittest_viewselector.py --- a/web/test/unittest_viewselector.py Mon May 04 15:49:20 2009 +0200 +++ b/web/test/unittest_viewselector.py Mon May 04 15:49:36 2009 +0200 @@ -12,17 +12,18 @@ traced_selection) from cubicweb.web import NoSelectableObject from cubicweb.web.action import Action -from cubicweb.web.views import (baseviews, tableview, baseforms, calendar, - management, embedding, actions, startup, - euser, schemaentities, xbel, vcard, owl, - treeview, idownloadable, wdoc, debug, eproperties) +from cubicweb.web.views import (primary, baseviews, tableview, editforms, + calendar, management, embedding, actions, + startup, cwuser, schema, xbel, vcard, owl, + treeview, idownloadable, wdoc, debug, + cwproperties, workflow, xmlrss, csvexport) USERACTIONS = [('myprefs', actions.UserPreferencesAction), ('myinfos', actions.UserInfoAction), ('logout', actions.LogoutAction)] SITEACTIONS = [('siteconfig', actions.SiteConfigurationAction), ('manage', actions.ManageAction), - ('schema', actions.ViewSchemaAction)] + ('schema', schema.ViewSchemaAction)] class ViewSelectorTC(EnvBasedTC): @@ -65,13 +66,13 @@ self.assertListEqual(self.pviews(req, None), [('changelog', wdoc.ChangeLogView), ('debug', debug.DebugView), - ('epropertiesform', eproperties.EPropertiesForm), + ('epropertiesform', cwproperties.EPropertiesForm), ('index', startup.IndexView), ('info', management.ProcessInformationView), ('manage', startup.ManageView), ('owl', owl.OWLView), ('schema', startup.SchemaView), - ('systemepropertiesform', eproperties.SystemEPropertiesForm)]) + ('systemepropertiesform', cwproperties.SystemEPropertiesForm)]) def test_possible_views_noresult(self): rset, req = self.env.get_rset_and_req('Any X WHERE X eid 999999') @@ -81,92 +82,92 @@ def test_possible_views_one_egroup(self): rset, req = self.env.get_rset_and_req('CWGroup X WHERE X name "managers"') self.assertListEqual(self.pviews(req, rset), - [('csvexport', baseviews.CSVRsetView), - ('ecsvexport', baseviews.CSVEntityView), + [('csvexport', csvexport.CSVRsetView), + ('ecsvexport', csvexport.CSVEntityView), ('editable-table', tableview.EditableTableView), ('filetree', treeview.FileTreeView), ('list', baseviews.ListView), ('oneline', baseviews.OneLineView), ('owlabox', owl.OWLABOXView), - ('primary', baseviews.PrimaryView), - ('rsetxml', baseviews.XMLRsetView), - ('rss', baseviews.RssView), + ('primary', primary.PrimaryView), + ('rsetxml', xmlrss.XMLRsetView), + ('rss', xmlrss.RSSView), ('secondary', baseviews.SecondaryView), ('security', management.SecurityManagementView), ('table', tableview.TableView), ('text', baseviews.TextView), ('treeview', treeview.TreeView), ('xbel', xbel.XbelView), - ('xml', baseviews.XmlView), + ('xml', xmlrss.XMLView), ]) def test_possible_views_multiple_egroups(self): rset, req = self.env.get_rset_and_req('CWGroup X') self.assertListEqual(self.pviews(req, rset), - [('csvexport', baseviews.CSVRsetView), - ('ecsvexport', baseviews.CSVEntityView), + [('csvexport', csvexport.CSVRsetView), + ('ecsvexport', csvexport.CSVEntityView), ('editable-table', tableview.EditableTableView), ('filetree', treeview.FileTreeView), ('list', baseviews.ListView), ('oneline', baseviews.OneLineView), ('owlabox', owl.OWLABOXView), - ('primary', baseviews.PrimaryView), - ('rsetxml', baseviews.XMLRsetView), - ('rss', baseviews.RssView), + ('primary', primary.PrimaryView), + ('rsetxml', xmlrss.XMLRsetView), + ('rss', xmlrss.RSSView), ('secondary', baseviews.SecondaryView), ('security', management.SecurityManagementView), ('table', tableview.TableView), ('text', baseviews.TextView), ('treeview', treeview.TreeView), ('xbel', xbel.XbelView), - ('xml', baseviews.XmlView), + ('xml', xmlrss.XMLView), ]) def test_possible_views_multiple_different_types(self): rset, req = self.env.get_rset_and_req('Any X') self.assertListEqual(self.pviews(req, rset), - [('csvexport', baseviews.CSVRsetView), - ('ecsvexport', baseviews.CSVEntityView), + [('csvexport', csvexport.CSVRsetView), + ('ecsvexport', csvexport.CSVEntityView), ('editable-table', tableview.EditableTableView), ('filetree', treeview.FileTreeView), ('list', baseviews.ListView), ('oneline', baseviews.OneLineView), ('owlabox', owl.OWLABOXView), - ('primary', baseviews.PrimaryView), - ('rsetxml', baseviews.XMLRsetView), - ('rss', baseviews.RssView), + ('primary', primary.PrimaryView), + ('rsetxml', xmlrss.XMLRsetView), + ('rss', xmlrss.RSSView), ('secondary', baseviews.SecondaryView), ('security', management.SecurityManagementView), ('table', tableview.TableView), ('text', baseviews.TextView), ('treeview', treeview.TreeView), ('xbel', xbel.XbelView), - ('xml', baseviews.XmlView), + ('xml', xmlrss.XMLView), ]) def test_possible_views_any_rset(self): rset, req = self.env.get_rset_and_req('Any N, X WHERE X in_group Y, Y name N') self.assertListEqual(self.pviews(req, rset), - [('csvexport', baseviews.CSVRsetView), + [('csvexport', csvexport.CSVRsetView), ('editable-table', tableview.EditableTableView), - ('rsetxml', baseviews.XMLRsetView), + ('rsetxml', xmlrss.XMLRsetView), ('table', tableview.TableView), ]) def test_possible_views_multiple_eusers(self): rset, req = self.env.get_rset_and_req('CWUser X') self.assertListEqual(self.pviews(req, rset), - [('csvexport', baseviews.CSVRsetView), - ('ecsvexport', baseviews.CSVEntityView), + [('csvexport', csvexport.CSVRsetView), + ('ecsvexport', csvexport.CSVEntityView), ('editable-table', tableview.EditableTableView), ('filetree', treeview.FileTreeView), - ('foaf', euser.FoafView), + ('foaf', cwuser.FoafView), ('list', baseviews.ListView), ('oneline', baseviews.OneLineView), ('owlabox', owl.OWLABOXView), - ('primary', euser.CWUserPrimaryView), - ('rsetxml', baseviews.XMLRsetView), - ('rss', baseviews.RssView), + ('primary', cwuser.CWUserPrimaryView), + ('rsetxml', xmlrss.XMLRsetView), + ('rss', xmlrss.RSSView), ('secondary', baseviews.SecondaryView), ('security', management.SecurityManagementView), ('table', tableview.TableView), @@ -174,7 +175,7 @@ ('treeview', treeview.TreeView), ('vcard', vcard.VCardCWUserView), ('xbel', xbel.XbelView), - ('xml', baseviews.XmlView), + ('xml', xmlrss.XMLView), ]) def test_possible_actions_none_rset(self): @@ -215,16 +216,17 @@ {'useractions': USERACTIONS, 'siteactions': SITEACTIONS}) - def test_possible_actions_eetype_euser_entity(self): + def test_possible_actions_eetype_cwuser_entity(self): rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWUser"') self.assertDictEqual(self.pactions(req, rset), {'useractions': USERACTIONS, 'siteactions': SITEACTIONS, 'mainactions': [('edit', actions.ModifyAction), - ('workflow', schemaentities.ViewWorkflowAction),], - 'moreactions': [('delete', actions.DeleteAction), + ('workflow', workflow.ViewWorkflowAction),], + 'moreactions': [('managepermission', actions.ManagePermissionsAction), + ('delete', actions.DeleteAction), ('copy', actions.CopyAction), - ('managepermission', actions.ManagePermissionsAction)], + ], }) @@ -234,11 +236,12 @@ # creation form req.form['etype'] = 'CWGroup' self.assertIsInstance(self.vreg.select_view('creation', req, rset), - baseforms.CreationForm) + editforms.CreationFormView) del req.form['etype'] # custom creation form - class CWUserCreationForm(baseforms.CreationForm): + class CWUserCreationForm(editforms.CreationFormView): __select__ = specified_etype_implements('CWUser') + self.vreg._loadedmods[__name__] = {} self.vreg.register_vobject_class(CWUserCreationForm) req.form['etype'] = 'CWUser' self.assertIsInstance(self.vreg.select_view('creation', req, rset), @@ -268,11 +271,11 @@ # one entity rset, req = self.env.get_rset_and_req('CWGroup X WHERE X name "managers"') self.assertIsInstance(self.vreg.select_view('primary', req, rset), - baseviews.PrimaryView) + primary.PrimaryView) self.assertIsInstance(self.vreg.select_view('list', req, rset), baseviews.ListView) self.assertIsInstance(self.vreg.select_view('edition', req, rset), - baseforms.EditionForm) + editforms.EditionFormView) self.assertIsInstance(self.vreg.select_view('table', req, rset), tableview.TableView) self.failUnlessRaises(NoSelectableObject, @@ -282,7 +285,7 @@ # list of entities of the same type rset, req = self.env.get_rset_and_req('CWGroup X') self.assertIsInstance(self.vreg.select_view('primary', req, rset), - baseviews.PrimaryView) + primary.PrimaryView) self.assertIsInstance(self.vreg.select_view('list', req, rset), baseviews.ListView) self.assertIsInstance(self.vreg.select_view('table', req, rset), @@ -292,7 +295,7 @@ # list of entities of different types rset, req = self.env.get_rset_and_req('Any X') self.assertIsInstance(self.vreg.select_view('primary', req, rset), - baseviews.PrimaryView) + primary.PrimaryView) self.assertIsInstance(self.vreg.select_view('list', req, rset), baseviews.ListView) self.assertIsInstance(self.vreg.select_view('table', req, rset), @@ -323,10 +326,10 @@ self.vreg.select_view, 'creation', req, rset) self.assertIsInstance(self.vreg.select_view('table', req, rset), tableview.TableView) - # euser primary view priority + # cwuser primary view priority rset, req = self.env.get_rset_and_req('CWUser X WHERE X login "admin"') self.assertIsInstance(self.vreg.select_view('primary', req, rset), - euser.CWUserPrimaryView) + cwuser.CWUserPrimaryView) self.assertIsInstance(self.vreg.select_view('text', req, rset), baseviews.TextView) @@ -401,6 +404,7 @@ def setUp(self): super(RQLActionTC, self).setUp() + self.vreg._loadedmods[__name__] = {} self.vreg.register_vobject_class(CWETypeRQLAction) def tearDown(self): @@ -413,19 +417,21 @@ {'useractions': USERACTIONS, 'siteactions': SITEACTIONS, 'mainactions': [('edit', actions.ModifyAction)], - 'moreactions': [('delete', actions.DeleteAction), + 'moreactions': [('managepermission', actions.ManagePermissionsAction), + ('delete', actions.DeleteAction), ('copy', actions.CopyAction), ('testaction', CWETypeRQLAction), - ('managepermission', actions.ManagePermissionsAction)], + ], }) rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWRType"') self.assertDictEqual(self.pactions(req, rset), {'useractions': USERACTIONS, 'siteactions': SITEACTIONS, 'mainactions': [('edit', actions.ModifyAction)], - 'moreactions': [('delete', actions.DeleteAction), + 'moreactions': [('managepermission', actions.ManagePermissionsAction), + ('delete', actions.DeleteAction), ('copy', actions.CopyAction), - ('managepermission', actions.ManagePermissionsAction)], + ], })