Skip to content

Commit

Permalink
Merge pull request #47 from FND/skinny_render
Browse files Browse the repository at this point in the history
skinny render
  • Loading branch information
cdent committed Mar 9, 2012
2 parents f656853 + ef800d2 commit d614d63
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 12 deletions.
21 changes: 18 additions & 3 deletions test/test_serialize_tiddler.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
""" """


import simplejson import simplejson
import py.test import pytest


from base64 import b64encode from base64 import b64encode


Expand Down Expand Up @@ -59,7 +59,7 @@ def test_bad_string_raises():
foobar = Tiddler('foobar') foobar = Tiddler('foobar')
serializer.object = foobar serializer.object = foobar


py.test.raises(TiddlerFormatError, 'serializer.from_string(bad_string)') pytest.raises(TiddlerFormatError, 'serializer.from_string(bad_string)')


def test_generated_json_string(): def test_generated_json_string():
serializer = Serializer('json', environ={'tiddlyweb.config': config}) serializer = Serializer('json', environ={'tiddlyweb.config': config})
Expand Down Expand Up @@ -128,7 +128,7 @@ def test_tiddler_json_base64():


info['text'] = '..badbinary..' info['text'] = '..badbinary..'
string = simplejson.dumps(info) string = simplejson.dumps(info)
py.test.raises(TiddlerFormatError, 'serializer.from_string(string)') pytest.raises(TiddlerFormatError, 'serializer.from_string(string)')


def test_tiddler_json_render(): def test_tiddler_json_render():
serializer = Serializer('json', environ={'tiddlyweb.query': { serializer = Serializer('json', environ={'tiddlyweb.query': {
Expand All @@ -142,6 +142,21 @@ def test_tiddler_json_render():
output = serializer.to_string() output = serializer.to_string()
info = simplejson.loads(output) info = simplejson.loads(output)
assert info['render'] == '<pre>\n!Hi\n//you//</pre>\n' assert info['render'] == '<pre>\n!Hi\n//you//</pre>\n'
assert info['text'] == '!Hi\n//you//'

def test_tiddler_json_render_skinny():
serializer = Serializer('json', environ={'tiddlyweb.query': {
'render': [1], 'fat': [0]}, 'tiddlyweb.config': config})
tiddler = Tiddler('htmltest')
tiddler.bag = 'snoop'
tiddler.text = '!Hi\n//you//'

serializer.object = tiddler

output = serializer.to_string()
info = simplejson.loads(output)
assert info['render'] == '<pre>\n!Hi\n//you//</pre>\n'
pytest.raises(KeyError, "info['text']")


def test_tiddler_no_text(): def test_tiddler_no_text():
serializer = Serializer('text') serializer = Serializer('text')
Expand Down
22 changes: 13 additions & 9 deletions tiddlyweb/serializations/json.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -42,9 +42,11 @@ def list_tiddlers(self, tiddlers):
The format is a list of dicts in The format is a list of dicts in
the form described by self._tiddler_dict. the form described by self._tiddler_dict.
""" """
fat = self.environ.get('tiddlyweb.query', {}).get('fat', [False])[0] query = self.environ.get('tiddlyweb.query', {})
render = self.environ.get('tiddlyweb.query', {}).get('render',
[False])[0] fat = query.get('fat', [False])[0]
render = query.get('render', [False])[0]

return simplejson.dumps([self._tiddler_dict(tiddler, fat, render) for return simplejson.dumps([self._tiddler_dict(tiddler, fat, render) for
tiddler in tiddlers]) tiddler in tiddlers])


Expand Down Expand Up @@ -111,9 +113,12 @@ def tiddler_as(self, tiddler):
a tiddler, as described by _tiddler_dict a tiddler, as described by _tiddler_dict
plus the text of the tiddler. plus the text of the tiddler.
""" """
render = self.environ.get('tiddlyweb.query', {}).get('render', query = self.environ.get('tiddlyweb.query', {})
[False])[0]
tiddler_dict = self._tiddler_dict(tiddler, fat=True, render=render) fat = query.get('fat', [True])[0]
render = query.get('render', [False])[0]

tiddler_dict = self._tiddler_dict(tiddler, fat=fat, render=render)
return simplejson.dumps(tiddler_dict) return simplejson.dumps(tiddler_dict)


def as_tiddler(self, tiddler, input_string): def as_tiddler(self, tiddler, input_string):
Expand Down Expand Up @@ -158,9 +163,8 @@ def _tiddler_dict(self, tiddler, fat=False, render=False):
wanted_info['text'] = b64encode(tiddler.text) wanted_info['text'] = b64encode(tiddler.text)
else: else:
wanted_info['text'] = tiddler.text wanted_info['text'] = tiddler.text
if render and renderable(tiddler, self.environ): if render and renderable(tiddler, self.environ):
wanted_info['render'] = render_wikitext(tiddler, wanted_info['render'] = render_wikitext(tiddler, self.environ)
self.environ)
return wanted_info return wanted_info


def _tiddler_permissions(self, tiddler): def _tiddler_permissions(self, tiddler):
Expand Down

0 comments on commit d614d63

Please sign in to comment.