def test_cached_node(self): with self.assertRaises(NodeDoesNotExist): storage.get(self.uri) content = cache.get(self.uri) self.assertIsNone(content) node, _ = storage.set(self.uri + '#draft', u'e-post') storage.publish(node['uri']) with self.assertCache(calls=2, misses=1, sets=1): node = cio.get('i18n://label/email', lazy=False) cached_node = cache.get('i18n://sv-se@label/email') self.assertIsInstance(cached_node, dict) self.assertKeys(cached_node, 'uri', 'content') _uri, content = cached_node['uri'], cached_node['content'] self.assertEqual(_uri, 'i18n://sv-se@label/email.txt#1') self.assertTrue(content == node.content == u'e-post') with self.assertCache(calls=1, misses=0, hits=1): node = cio.get('i18n://label/email', lazy=False) self.assertEqual(node.uri, 'i18n://sv-se@label/email.txt#1') cio.delete(self.uri) content = cache.get(self.uri) self.assertIsNone(content)
def test_delete(self): with self.assertRaises(URI.Invalid): cio.delete('foo/bar') node = cio.set('i18n://sv-se@label/email.txt', u'e-post') uri = node.uri self.assertEqual(cache.get(uri)['content'], u'e-post') uris = cio.delete('sv-se@label/email#1', 'sv-se@foo/bar') self.assertListEqual(uris, ['sv-se@label/email#1']) with self.assertRaises(NodeDoesNotExist): storage.get(uri) self.assertIsNone(cache.get(uri))
def delete(self, request, uri): """ Delete versioned uri and return empty text response on success. """ uri = self.decode_uri(uri) uris = cio.delete(uri) if uri not in uris: raise Http404 return self.render_to_response()