devtools/cwtwill.py
changeset 11057 0b59724cb3f2
parent 11052 058bb3dc685f
child 11058 23eb30449fe5
--- a/devtools/cwtwill.py	Mon Jan 04 18:40:30 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-# copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
-# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
-#
-# This file is part of CubicWeb.
-#
-# CubicWeb is free software: you can redistribute it and/or modify it under the
-# terms of the GNU Lesser General Public License as published by the Free
-# Software Foundation, either version 2.1 of the License, or (at your option)
-# any later version.
-#
-# CubicWeb 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 Lesser General Public License for more
-# details.
-#
-# You should have received a copy of the GNU Lesser General Public License along
-# with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
-"""cubicweb extensions for twill
-
-"""
-
-import re
-from urllib import quote
-
-from twill import commands as twc
-
-# convenience / consistency renaming
-has_text = twc.find
-hasnt_text = twc.notfind
-
-
-# specific commands
-_LINK = re.compile('<a.*?href="(.*?)".*?>(.*?)</a>', re.I | re.S)
-
-def has_link(text, url=''):
-    browser = twc.get_browser()
-    html = browser.get_html()
-    if html:
-        for match in _LINK.finditer(html):
-            linkurl = match.group(1)
-            linktext = match.group(2)
-            if linktext == text:
-                # if url is specified linkurl must match
-                if url and linkurl != url:
-                    continue
-                return
-    raise AssertionError('link %s (%s) not found' % (text, url))
-
-
-def view(rql, vid=''):
-    """
-    >> view 'Project P'
-
-    apply <vid> to <rql>'s rset
-    """
-    if vid:
-        twc.go('view?rql=%s&vid=%s' % (quote(rql), vid))
-    else:
-        twc.go('view?rql=%s' % quote(rql))
-
-def create(etype):
-    """
-    >> create Project
-
-    go to <etype>'s creation page
-    """
-    twc.go('view?etype=%s&vid=creation' % etype)
-
-def edit(rql):
-    """
-    >> edit "Project P WHERE P eid 123"
-
-    calls edition view for <rql>
-    """
-    twc.go('view?rql=%s&vid=edition' % quote(rql))
-
-
-
-
-def setvalue(formname, fieldname, value):
-    """
-    >> setvalue entityForm name pylint
-
-    sets the field's value in the form
-    <forname> should either be the form's index, the form's name
-    or the form's id
-    """
-    browser = twc.get_browser()
-    form = browser.get_form(formname)
-    if form is None:
-        # try to find if one of the forms has <formname> as id
-        for index, form in enumerate(browser._browser.forms()):
-            # forms in cubicweb don't always have a name
-            if form.attrs.get('id') == formname:
-                # browser.get_form_field knows how to deal with form index
-                formname = str(index+1)
-                break
-        else:
-            raise ValueError('could not find form named <%s>' % formname)
-    eid = browser.get_form_field(form, 'eid').value
-    twc.formvalue(formname, '%s:%s' % (fieldname, eid), value)
-
-
-def submitform(formname, submit_button=None):
-    """
-    >> submitform entityForm
-
-    Submit the form named entityForm. This is useful when the form is pre-filed
-    and we only want to click on submit.
-    (The original submit command chooses the form to submit according to the last
-    formvalue instruction)
-    """
-    browser = twc.get_browser()
-    form = browser.get_form(formname)
-    if form is None:
-        # try to find if one of the forms has <formname> as id
-        for form in browser._browser.forms():
-            # forms in cubicweb don't always have a name
-            if form.attrs.get('id') == formname:
-                break
-        else:
-            raise ValueError('could not find form named <%s>' % formname)
-    browser._browser.form = form
-    browser.submit(submit_button)
-
-
-# missing actions: delete, copy, changeview