Skip to content
Permalink
Browse files

Get rid of WebElement.debug_text

  • Loading branch information
The-Compiler committed Sep 7, 2016
1 parent 6635c71 commit 60c86a08c44efc39b4891e77c4b89cf4a3d99bad
@@ -75,8 +75,7 @@ def _find_prevnext(prev, elems):
if e.tag_name() != 'link' or 'rel' not in e:
continue
if e['rel'] in rel_values:
log.hints.debug("Found '{}' with rel={}".format(
e.debug_text(), e['rel']))
log.hints.debug("Found {!r} with rel={}".format(e, e['rel']))
return e

# Then check for regular links/buttons.
@@ -106,7 +106,7 @@ def __len__(self):

def __repr__(self):
try:
html = self.debug_text()
html = utils.compact_text(self.outer_xml(), 500)
except Error:
html = None
return utils.get_repr(self, html=html)
@@ -310,10 +310,6 @@ def remove_blank_target(self):
break
elem = elem.parent()

def debug_text(self):
"""Get a text based on an element suitable for debug output."""
return utils.compact_text(self.outer_xml(), 500)

def resolve_url(self, baseurl):
"""Resolve the URL in the element's src/href attribute.
@@ -365,9 +361,8 @@ def click(self, click_target):

pos = self._mouse_pos()

log.hints.debug("Sending fake click to '{}' at position {} with "
"target {}".format(self.debug_text(), pos,
click_target))
log.hints.debug("Sending fake click to {!r} at position {} with "
"target {}".format(self, pos, click_target))

if click_target in [usertypes.ClickTarget.tab,
usertypes.ClickTarget.tab_bg,
@@ -126,12 +126,10 @@ def text(self, *, use_js=False):
def set_text(self, text, *, use_js=False):
self._check_vanished()
if self.is_content_editable() or not use_js:
log.misc.debug("Filling element {} via set_text.".format(
self.debug_text()))
log.misc.debug("Filling {!r} via set_text.".format(self))
self._elem.setPlainText(text)
else:
log.misc.debug("Filling element {} via javascript.".format(
self.debug_text()))
log.misc.debug("Filling {!r} via javascript.".format(self))
text = javascript.string_escape(text)
self._elem.evaluateJavaScript("this.value='{}'".format(text))

@@ -266,16 +266,15 @@ def test_double_wrap(self, elem):
lambda e: e.is_editable(),
lambda e: e.is_text_input(),
lambda e: e.remove_blank_target(),
lambda e: e.debug_text(),
lambda e: e.outer_xml(),
lambda e: e.tag_name(),
lambda e: e.rect_on_view(),
lambda e: e.is_visible(None),
], ids=['str', 'getitem', 'setitem', 'delitem', 'contains', 'iter', 'len',
'frame', 'geometry', 'style_property', 'text', 'set_text',
'insert_text', 'is_writable', 'is_content_editable', 'is_editable',
'is_text_input', 'remove_blank_target', 'debug_text', 'outer_xml',
'tag_name', 'rect_on_view', 'is_visible'])
'is_text_input', 'remove_blank_target', 'outer_xml', 'tag_name',
'rect_on_view', 'is_visible'])
def test_vanished(self, elem, code):
"""Make sure methods check if the element is vanished."""
elem._elem.isNull.return_value = True
@@ -286,14 +285,19 @@ def test_vanished(self, elem, code):
def test_str(self, elem):
assert str(elem) == 'text'

@pytest.mark.parametrize('is_null, expected', [
(False, "<qutebrowser.browser.webkit.webkitelem.WebKitElement "
"html='<fakeelem/>'>"),
(True, '<qutebrowser.browser.webkit.webkitelem.WebKitElement '
'html=None>'),
wke_qualname = 'qutebrowser.browser.webkit.webkitelem.WebKitElement'

@pytest.mark.parametrize('is_null, xml, expected', [
(False, '<fakeelem/>', "<{} html='<fakeelem/>'>".format(wke_qualname)),
(False, '<foo>\n<bar/>\n</foo>',
"<{} html='<foo><bar/></foo>'>".format(wke_qualname)),
(False, '<foo>{}</foo>'.format('x' * 500),
"<{} html='<foo>{}…'>".format(wke_qualname, 'x' * 494)),
(True, None, '<{} html=None>'.format(wke_qualname)),
])
def test_repr(self, elem, is_null, expected):
def test_repr(self, elem, is_null, xml, expected):
elem._elem.isNull.return_value = is_null
elem._elem.toOuterXml.return_value = xml
assert repr(elem) == expected

def test_getitem(self):
@@ -384,15 +388,6 @@ def test_is_text_input(self, tagname, attributes, expected):
elem = get_webelem(tagname=tagname, attributes=attributes)
assert elem.is_text_input() == expected

@pytest.mark.parametrize('xml, expected', [
('<fakeelem/>', '<fakeelem/>'),
('<foo>\n<bar/>\n</foo>', '<foo><bar/></foo>'),
('<foo>{}</foo>'.format('x' * 500), '<foo>{}…'.format('x' * 494)),
], ids=['fakeelem', 'newlines', 'long'])
def test_debug_text(self, elem, xml, expected):
elem._elem.toOuterXml.return_value = xml
assert elem.debug_text() == expected

@pytest.mark.parametrize('attribute, code', [
('geometry', lambda e: e.geometry()),
('toOuterXml', lambda e: e.outer_xml()),

0 comments on commit 60c86a0

Please sign in to comment.