def test_etag_generation(): from tiddlyweb.web.handler.tiddler import _tiddler_etag from tiddlyweb.model.bag import Bag from tiddlyweb.model.tiddler import Tiddler tiddler = Tiddler('monkey', 'bar') etag = _tiddler_etag(tiddler) assert etag == 'bar/monkey/0' bag = Bag('bar') store.put(bag) store.put(tiddler) etag = _tiddler_etag(tiddler) assert etag == 'bar/monkey/1'
def test_etag_generation(): from tiddlyweb.web.handler.tiddler import _tiddler_etag from tiddlyweb.model.bag import Bag from tiddlyweb.model.tiddler import Tiddler tiddler = Tiddler("monkey", "bar") etag = _tiddler_etag(tiddler) assert etag == "bar/monkey/0" bag = Bag("bar") store.put(bag) store.put(tiddler) etag = _tiddler_etag(tiddler) assert etag == "bar/monkey/1"
def test_etag_generation(): from tiddlyweb.web.handler.tiddler import _tiddler_etag from tiddlyweb.model.bag import Bag from tiddlyweb.model.tiddler import Tiddler from tiddlyweb.config import config tiddler = Tiddler('monkey', 'bar') etag = _tiddler_etag({'tiddlyweb.config': config}, tiddler) etag_hash = sha(':').hexdigest() assert etag == '"bar/monkey/0;%s"' % etag_hash bag = Bag('bar') store.put(bag) store.put(tiddler) etag = _tiddler_etag({'tiddlyweb.config': config}, tiddler) assert etag == '"bar/monkey/1;%s"' % etag_hash
def _tiddler_as_div(self, tiddler): """ Read in the tiddler from a div. """ recipe_name = '' if tiddler.recipe: recipe_name = tiddler.recipe try: host = server_base_url(self.environ) except KeyError: host = '' host = '%s/' % host if binary_tiddler(tiddler): tiddler_output = self._binary_tiddler(tiddler) else: tiddler_output = tiddler.text if tiddler.type == 'None' or not tiddler.type: tiddler.type = '' return ('<div title="%s" server.title="%s" server.page.revision="%s" ' 'server.etag="%s" ' 'modifier="%s" creator="%s" server.workspace="bags/%s" ' 'server.type="tiddlyweb" server.host="%s" ' 'server.recipe="%s" server.bag="%s" server.permissions="%s" ' 'server.content-type="%s" ' 'modified="%s" created="%s" tags="%s" %s>\n' '<pre>%s</pre>\n</div>\n' % (escape_attribute_value(tiddler.title), escape_attribute_value(tiddler.title), tiddler.revision, escape_attribute_value(_tiddler_etag( self.environ, tiddler)), escape_attribute_value(tiddler.modifier), escape_attribute_value(tiddler.creator), escape_attribute_value(tiddler.bag), host, escape_attribute_value(recipe_name), escape_attribute_value(tiddler.bag), self._tiddler_permissions(tiddler), tiddler.type, tiddler.modified, tiddler.created, escape_attribute_value(self.tags_as(tiddler.tags)), self._tiddler_fields(tiddler.fields), html_encode(tiddler_output)))
def _tiddler_as_div(self, tiddler): """ Read in the tiddler from a div. """ recipe_name = '' if tiddler.recipe: recipe_name = tiddler.recipe try: host = server_base_url(self.environ) except KeyError: host = '' host = '%s/' % host if binary_tiddler(tiddler): tiddler_output = self._binary_tiddler(tiddler) else: tiddler_output = tiddler.text if tiddler.type == 'None' or not tiddler.type: tiddler.type = '' return ('<div title="%s" server.title="%s" server.page.revision="%s" ' 'server.etag="%s" ' 'modifier="%s" creator="%s" server.workspace="bags/%s" ' 'server.type="tiddlyweb" server.host="%s" ' 'server.recipe="%s" server.bag="%s" server.permissions="%s" ' 'server.content-type="%s" ' 'modified="%s" created="%s" tags="%s" %s>\n' '<pre>%s</pre>\n</div>\n' % (escape_attribute_value(tiddler.title), escape_attribute_value(tiddler.title), tiddler.revision, escape_attribute_value(_tiddler_etag(self.environ, tiddler)), escape_attribute_value( tiddler.modifier), escape_attribute_value( tiddler.creator), escape_attribute_value(tiddler.bag), host, escape_attribute_value(recipe_name), escape_attribute_value( tiddler.bag), self._tiddler_permissions(tiddler), tiddler.type, tiddler.modified, tiddler.created, escape_attribute_value(self.tags_as( tiddler.tags)), self._tiddler_fields( tiddler.fields), html_encode(tiddler_output)))
if not user == 'GUEST': tiddler.modifier = user try: _check_bag_constraint(environ, bag, 'accept') except (PermissionsError), exc: _validate_tiddler_content(environ, tiddler) store.put(tiddler) except NoBagError, exc: raise HTTP409("Unable to put tiddler, %s. There is no bag named: " \ "%s (%s). Create the bag." % (tiddler.title, tiddler.bag, exc)) except NoTiddlerError, exc: raise HTTP404('Unable to put tiddler, %s. %s' % (tiddler.title, exc)) etag = ('Etag', _tiddler_etag(environ, tiddler)) if etag: response = [etag] if redirect: response.append(('Location', str(redirect[0]))) start_response('303 See Other', response) else: response.append(('Location', web.tiddler_url(environ, tiddler))) start_response("204 No Content", response) return [] class Serialization(SerializationInterface): def as_tiddler(self, tiddler, form): """