def test_fetchByUrl(self): b1 = WikiData(url='blog1', content='This is blog1') self.storage.save(b1) b2 = WikiData(url='blog2', content='This is blog2') self.storage.save(b2) b3 = WikiData(url='blog1', content='This is blog2') self.storage.save(b3) actual = list(self.storage.fetchByUrl('blog1')) self.assertTrue(len(actual) == 2)
def test_create_json(self): url = 'Test Subject' content = 'Test Content' wiki = WikiData(url=url,content=content) wiki.put() wiki_id = wiki.key().id() # wiki_data = self.service.fetch(wiki_id) json_string = self.service.create_json(wiki_id) self.assertTrue(('"url": "%s"' % url) in json_string, "Actual json string: " + str(json_string)) self.assertTrue(('"content": "%s"' % content) in json_string, "Actual json string: " + str(json_string))
def test_fetchAll(self): b1 = WikiData(url='blog1', content='This is blog1') self.storage.save(b1) b2 = WikiData(url='blog2', content='This is blog2') self.storage.save(b2) expected = 2 actual = list(self.storage.fetchAll()) actual_count = len(actual) self.assertEquals( expected, actual_count, "Wiki count of " + str(expected) + ' size was not found. Actual count: ' + str(actual_count)) print repr(actual)
def test_create_json_with_double_quotes(self): url = 'Test"s Subject' content = 'Test"s Content' wiki = WikiData(url=url,content=content) wiki.put() wiki_id = wiki.key().id() # wiki_data = self.service.fetch(wiki_id) json_string = self.service.create_json(wiki_id) quote = url.find('"') json_url = url[0:quote] + '\\' + url[quote:] quote = content.find('"') json_content = content[0:quote] + '\\' + content[quote:] self.assertTrue(('"url": "%s"' % json_url) in json_string, "Actual json string: " + str(json_string)) self.assertTrue(('"content": "%s"' % json_content) in json_string, "Actual json string: " + str(json_string))
def fetch(self, entry_id): cache_key = str(entry_id) + DATA_CACHE_KEY_SUFFIX last_queried_key = str(entry_id) + LAST_QUERY_CACHE_KEY_SUFFIX wiki_entry = memcache.get(cache_key) if not wiki_entry: wiki_entry = WikiData.get_by_id(entry_id) memcache.set(cache_key, wiki_entry) self.setLastQueried(last_queried_key) return wiki_entry
def test_fetch(self): b = WikiData(url='blog1', content='This is blog1') expected = b.url self.storage.save(b) b1 = self.storage.fetch(1) self.assertEquals(expected, b1.url, "Wiki with id " + str(expected) + ' was not found.') #check not found b1a = self.storage.fetch(100) self.assertTrue(b1a == None) pass
def test_fetch_cacheTest(self): b1 = WikiData(url='blog1',content='This is blog1') self.storage.save(b1) b2 = WikiData(url='blog2',content='This is blog2') self.storage.save(b2) b3 = WikiData(url='blog1',content='This is blog2') self.storage.save(b3) b4 = WikiData(url='blog1',content='This is blog1') self.storage.save(b4) b5 = WikiData(url='blog1',content='This is blog1') self.storage.save(b5) b6 = WikiData(url='blog1',content='This is blog1') self.storage.save(b6) b5_id = b5.key().id() actual1 = self.storage.fetch(b5_id) cache_key = str(b5_id) + DATA_CACHE_KEY_SUFFIX actual2 = memcache.get(cache_key) self.assertEquals(actual1.content, actual2.content)
def test_save_insert(self): b1 = WikiData(url='blog1', content='This is blog1') b1a = self.storage.fetch(1) #assert not found self.assertTrue(b1a == None) self.storage.save(b1) b1a = self.storage.fetch(1) self.assertEquals( b1.url, b1a.url, "Wiki " + str(b1) + ' was not saved. This was saved instead: ' + str(b1a)) self.assertEquals( b1.content, b1a.content, "Wiki " + str(b1) + ' was not saved. This was saved instead: ' + str(b1a))
def test_fetch_cacheTest(self): b1 = WikiData(url='blog1', content='This is blog1') self.storage.save(b1) b2 = WikiData(url='blog2', content='This is blog2') self.storage.save(b2) b3 = WikiData(url='blog1', content='This is blog2') self.storage.save(b3) b4 = WikiData(url='blog1', content='This is blog1') self.storage.save(b4) b5 = WikiData(url='blog1', content='This is blog1') self.storage.save(b5) b6 = WikiData(url='blog1', content='This is blog1') self.storage.save(b6) b5_id = b5.key().id() actual1 = self.storage.fetch(b5_id) cache_key = str(b5_id) + DATA_CACHE_KEY_SUFFIX actual2 = memcache.get(cache_key) self.assertEquals(actual1.content, actual2.content)
def post(self, param=None): ''' Handles wiki entry creation ''' logging.info("Running EditWikiEntry.post()") logging.info('Parameter=%s' % param) self.response.headers['Content-Type'] = 'text/html' check_cookie(self) isValid = True values = {} # url = self.request.get('url') url = WebappUtils.getLastPathElement(self.request) if not url: url = param[1:] if not url: values['url_error'] = 'Wiki url is required' isValid = False else: logging.info("Creating wiki entry with url: %s" % str(url)) content = self.request.get('content') if not content: values['content_error'] = 'Wiki content is required' isValid = False else: logging.info("Creating wiki entry with content: %s" % str(content)) path = None if not isValid: values['url'] = url values['content'] = content path = os.path.join(os.path.dirname(__file__), '../templates/edit_wiki_entry.html') self.response.out.write(template.render(path, values)) else: wiki = WikiData(url=url, content=content) service = WikiService(WikiDataStoreFactory()) logging.info("Saving WikiData: %s" % str_WikiData(wiki)) service.save(wiki) logging.info( "Successfully posted wiki entry. Redirecting to '/final/%s" % url) self.redirect('/final/%s' % url)
def test_save_update(self): b3 = WikiData(url='blog1', content='This is blog1') #insert self.storage.save(b3) b3a = self.storage.fetch(1) self.assertEquals( b3.url, b3a.url, "Wiki " + str(b3) + ' was not saved. This was saved instead: ' + str(b3a)) self.assertEquals( b3.content, b3a.content, "Wiki " + str(b3) + ' was not saved. This was saved instead: ' + str(b3a)) #update b3a.content = 'This is blog1 #2' self.storage.save(b3a) b3a2 = self.storage.fetch(1) self.assertEquals( b3.url, b3a2.url, "Wiki " + str(b3) + ' was not saved. This was saved instead: ' + str(b3a)) self.assertNotEquals( b3.content, b3a2.content, "Wiki " + str(b3) + ' was not saved. This was saved instead: ' + str(b3a))
def test_fetchAll_cacheTest(self): b1 = WikiData(url='blog1', content='This is blog1') self.storage.save(b1) b2 = WikiData(url='blog2', content='This is blog2') self.storage.save(b2) b3 = WikiData(url='blog1', content='This is blog2') self.storage.save(b3) b4 = WikiData(url='blog1', content='This is blog1') self.storage.save(b4) b5 = WikiData(url='blog1', content='This is blog1') self.storage.save(b5) b6 = WikiData(url='blog1', content='This is blog1') self.storage.save(b6) actual_1 = list(self.storage.fetchAll()) cache_key = FETCH_ALL_CACHE_KEY actual_2 = memcache.get(cache_key) self.assertEquals(actual_1[0].content, actual_2[0].content)
def test_fetchByUrl_cacheTest(self): b1 = WikiData(url='blog1', content='This is blog1') self.storage.save(b1) b2 = WikiData(url='blog2', content='This is blog2') self.storage.save(b2) b3 = WikiData(url='blog1', content='This is blog2') self.storage.save(b3) b4 = WikiData(url='blog1', content='This is blog1') self.storage.save(b4) b5 = WikiData(url='blog1', content='This is blog1') self.storage.save(b5) b6 = WikiData(url='blog1', content='This is blog1') self.storage.save(b6) actual1 = list(self.storage.fetchByUrl('blog1')) cache_key = 'blog1' + DATA_CACHE_KEY_SUFFIX actual2 = memcache.get(cache_key) self.assertEquals(len(actual1), len(actual2)) self.assertEquals(actual1[0].url, actual2[0].url) self.assertEquals(actual1[1].content, actual2[1].content)
def testPut(self): data = WikiData(url='Foo', content='Foo blog') data.put() pass
def testPut(self): data = WikiData(url='Foo',content='Foo blog') data.put() pass