Skip to content

Commit

Permalink
Merge pull request #70 from mshriver/support-versionpick-cls-attrs
Browse files Browse the repository at this point in the history
[RFR] Update Widget.cls_widget_names, check values
  • Loading branch information
Milan Falešník committed Jan 5, 2018
2 parents 5fe9ddd + 403125e commit 73a8495
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/widgetastic/widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,9 @@ def cls_widget_names(cls):
for key in dir(cls):
value = getattr(cls, key)
if isinstance(value, Widgetable):
result.append((key, value))
# check the values of a VersionPick object are widgetable themselves
if all([isinstance(item, Widgetable) for item in value.child_items]):
result.append((key, value))
for includer in cls._included_widgets:
result.append((None, includer))
presorted_widgets = sorted(result, key=lambda pair: pair[1]._seq_id)
Expand Down
8 changes: 8 additions & 0 deletions testing/test_version_pick.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from six import string_types

import pytest

Expand Down Expand Up @@ -73,10 +74,17 @@ class MyView(View):
Version.lowest(): Checkbox(id='nonexisting'),
'1.0.0': TextInput(name='input1')
})
view_attr = VersionPick({
Version.lowest(): 'lowest_attr',
'1.0.0': 'version_1_attr'
})

view = MyView(browser)
assert 'widget' in view.widget_names
assert 'view_attr' not in view.widget_names
assert isinstance(view.widget, TextInput)
assert isinstance(view.view_attr, string_types)
assert view.view_attr == 'version_1_attr'
assert view.widget.fill('test text')
assert view.widget.read() == 'test text'

Expand Down

0 comments on commit 73a8495

Please sign in to comment.