def buttons_must_be_readable_to_be_present(self): self.readable = Allowed(False) self.writable = Allowed(True) self.input_widget = ButtonInput(self.form, self.event) self.expected_html = ''
def empty_rendering(self): self.readable = Allowed(False) self.writable = Allowed(False) self.input_widget = TextInput(self.form, self.field) self.expected_html = ''
def greyed_button_rendering(self): self.readable = Allowed(True) self.writable = Allowed(False) self.input_widget = ButtonInput(self.form, self.event) self.expected_html = '<input name="event.some_form-event_name?" id="id-event-46-some_form-event_name-63-" disabled="disabled" form="some_form" type="submit" value="event_name" class="reahl-primitiveinput">'
class InputRenderingScenarios(Fixture): def new_form(self): return Form(self.web_fixture.view, 'some_form') def new_field(self): field = Field(default=3, readable=self.readable, writable=self.writable) field.bind('field_name', EmptyStub()) return field def new_event(self): event = Event(readable=self.readable, writable=self.writable) event.bind('event_name', EmptyStub()) self.form.define_event_handler(event) return event @scenario def normal_rendering(self): self.readable = Allowed(True) self.writable = Allowed(True) self.input_widget = TextInput(self.form, self.field) self.expected_html = '<input name="some_form-field_name" id="id-some_form-field_name" form="some_form" type="text" value="3" class="reahl-primitiveinput reahl-textinput">' @scenario def disabled_rendering(self): self.readable = Allowed(True) self.writable = Allowed(False) self.input_widget = TextInput(self.form, self.field) self.expected_html = '<input name="some_form-field_name" id="id-some_form-field_name" disabled="disabled" form="some_form" type="text" value="3" class="reahl-primitiveinput reahl-textinput">' @scenario def valueless_rendering(self): self.readable = Allowed(False) self.writable = Allowed(True) self.input_widget = TextInput(self.form, self.field) self.expected_html = '<input name="some_form-field_name" id="id-some_form-field_name" form="some_form" type="text" value="" class="reahl-primitiveinput reahl-textinput">' @scenario def empty_rendering(self): self.readable = Allowed(False) self.writable = Allowed(False) self.input_widget = TextInput(self.form, self.field) self.expected_html = '' @scenario def normal_button_rendering(self): self.readable = Allowed(True) self.writable = Allowed(True) self.input_widget = ButtonInput(self.form, self.event) self.expected_html = '<input name="event.some_form-event_name?" id="id-event-46-some_form-event_name-63-" form="some_form" type="submit" value="event_name" class="reahl-primitiveinput">' @scenario def greyed_button_rendering(self): self.readable = Allowed(True) self.writable = Allowed(False) self.input_widget = ButtonInput(self.form, self.event) self.expected_html = '<input name="event.some_form-event_name?" id="id-event-46-some_form-event_name-63-" disabled="disabled" form="some_form" type="submit" value="event_name" class="reahl-primitiveinput">' @scenario def buttons_must_be_readable_to_be_present(self): self.readable = Allowed(False) self.writable = Allowed(True) self.input_widget = ButtonInput(self.form, self.event) self.expected_html = '' @scenario def nothing_allowed_on_button(self): self.readable = Allowed(False) self.writable = Allowed(False) self.input_widget = ButtonInput(self.form, self.event) self.expected_html = '' def allowed(self): return True def disallowed(self): return False @scenario def not_readable_widget(self): self.input_widget = Widget(self.web_fixture.view, read_check=self.disallowed) self.input_widget.add_child(P(self.web_fixture.view, text='some text in a p')) self.expected_html = '' @scenario def readable_but_not_writable_widget(self): self.input_widget = Widget(self.web_fixture.view, read_check=self.allowed, write_check=self.disallowed) self.input_widget.add_child(P(self.web_fixture.view, text='some text in a p')) self.expected_html = '<p>some text in a p</p>' @scenario def readable_and_writable_widget(self): self.input_widget = Widget(self.web_fixture.view, read_check=self.allowed, write_check=self.allowed) self.input_widget.add_child(P(self.web_fixture.view, text='some text in a p')) self.expected_html = '<p>some text in a p</p>' @scenario def not_readable_but_writable_widget(self): # Think of password field, where the input's value is not readable by a human self.input_widget = Widget(self.web_fixture.view, read_check=self.disallowed, write_check=self.allowed) self.input_widget.add_child(P(self.web_fixture.view, text='some text in a p')) self.expected_html = ''
def valueless_rendering(self): self.readable = Allowed(False) self.writable = Allowed(True) self.input_widget = TextInput(self.form, self.field) self.expected_html = '<input name="some_form-field_name" id="id-some_form-field_name" form="some_form" type="text" value="" class="reahl-primitiveinput reahl-textinput">'
def normal_non_input_widget(self): """Normal Widgets do not participate by default""" self.widget = Widget(self.view) self.expects_participation = False
def test_widget_construct_error(): """Passing anything other than a View as a Widget's view argument on construction results in an error.""" with expected(IsInstance): Widget(EmptyStub())
def __init__(self, view): super(TestPanel, self).__init__(view) widget = self.add_child(Widget(view)) if fixture.security_sensitive: widget.set_as_security_sensitive()
def dynamic_column(self): self.total_column = DynamicColumn('Heading', lambda view, item: Widget(view), make_footer_widget=lambda view, item: TextNode(view, str(item.total))) self.expected_total = '123'
def not_readable_widget(self): self.input_widget = Widget(self.view, read_check=self.disallowed) self.input_widget.add_child(P(self.view, text='some text in a p')) self.expected_html = ''
def nothing_allowed_on_button(self): self.readable = Allowed(False) self.writable = Allowed(False) self.input_widget = ButtonInput(self.form, self.event) self.expected_html = ''
def greyed_button_rendering(self): self.readable = Allowed(True) self.writable = Allowed(False) self.input_widget = ButtonInput(self.form, self.event) self.expected_html = '<input name="event.event_name?" disabled="disabled" form="some_form" type="submit" value="event_name">'
def disabled_rendering(self): self.readable = Allowed(True) self.writable = Allowed(False) self.input_widget = TextInput(self.form, self.field) self.expected_html = '<input name="field_name" disabled="disabled" form="some_form" type="text" value="3" class="reahl-textinput">'
def assemble(self): self.define_view('/a_page', page=Widget.factory(), view_class=BrokenView)