# -*- coding: utf-8 -*-
from pytest import fixture
import colander
@fixture
[docs]def renderer():
from deform.tests.test_widget import DummyRenderer
return DummyRenderer()
@fixture
[docs]def schema():
from deform.tests.test_widget import DummySchema
return DummySchema()
@fixture
[docs]def field(schema, renderer):
from deform.tests.test_widget import DummyField
return DummyField(schema, renderer)
[docs]class TestMarkdownTextAreaWidget:
[docs] def make_one(self, **kw):
from . import MarkdownTextAreaWidget
return MarkdownTextAreaWidget(**kw)
[docs] def test_serialize_null(self, field):
inst = self.make_one()
inst.serialize(field, colander.null)
assert field.renderer.template == inst.template
assert field.renderer.kw['field'] == field
assert field.renderer.kw['cstruct'] == ''
[docs] def test_serialize_none(self, field):
inst = self.make_one()
inst.serialize(field, None)
assert field.renderer.template == inst.template
assert field.renderer.kw['field'] == field
assert field.renderer.kw['cstruct'] == ''
[docs] def test_serialize_not_null(self, field):
inst = self.make_one()
inst.serialize(field, 'abc')
assert field.renderer.kw['cstruct'] == 'abc'
[docs] def test_serialize_readonly(self, field):
inst = self.make_one()
field.schema = schema
inst.serialize(field, None, readonly=True)
assert field.renderer.template == inst.readonly_template
[docs] def test_serialize_default_and_custom_options(self, field):
import json
inst = self.make_one()
inst.serialize(field, 'abc', options={'custom': '1'})
result = field.renderer.kw['simplemde_options']
result_options = json.loads(result)
assert result_options['height'] == 240
assert result_options['custom'] == '1'
[docs] def test_serialize_autosave_default_option(self, field, monkeypatch):
import json
inst = self.make_one()
inst.serialize(field, 'abc')
result = field.renderer.kw['simplemde_options']
result_options = json.loads(result)
assert result_options['autosave']['enabled']
assert result_options['autosave']['uniqueid']
[docs] def test_deserialize_strip(self, field):
inst = self.make_one()
result = inst.deserialize(field, ' abc ')
assert result == 'abc'
[docs] def test_deserialize_no_strip(self, field):
inst = self.make_one(strip=False)
result = inst.deserialize(field, ' abc ')
assert result == ' abc '
[docs] def test_deserialize_null(self, field):
inst = self.make_one(strip=False)
result = inst.deserialize(field, colander.null)
assert result is colander.null
[docs] def test_deserialize_emptystring(self, field):
inst = self.make_one()
result = inst.deserialize(field, '')
assert result is colander.null
[docs]def test_add_default_resources():
from deform.widget import default_resource_registry
assert 'simplemde' in default_resource_registry.registry