def test_get(self): model = KMBlogArticle.get(None) # id = Noneの場合は新規モデルが取得できること eq_(model.id, None) model = KMBlogArticle.get(1) # id = 1の場合は登録済みのモデルが取得できること eq_(model.id, 1)
def blog_admin_delete_info(self): id = self.data.get_request_parameter('id', default=None) KMBlogInfo.delete_by_id(id) KMBlogCategory.delete_by_condition(info_id=id) KMBlogArticle.delete_by_condition(info_id=id) self.result['type'] = 'result' self.result['message'] = '削除できました。'
def test_set_data(self): data = self.mocker.CreateMock(KMData) data.get_request_parameter('info_id').AndReturn(self.test_info_id) data.get_request_parameter('category_id').AndReturn(self.test_category_id) data.get_request_parameter('title', default='', decode=True).AndReturn(self.test_title) data.get_request_parameter('article', default='', decode=True).AndReturn(self.test_article) self.mocker.ReplayAll() model = KMBlogArticle() model.set_data(data); # KMDataで指定した値が設定されること eq_(model.info_id, self.test_info_id) eq_(model.category_id, self.test_category_id) eq_(model.title, self.test_title) eq_(model.error, None) self.mocker.UnsetStubs() self.mocker.VerifyAll()
def blog_page(self, blog_url): info = KMBlogInfo.find(url=blog_url)[0] info.articles = KMBlogArticle.find(info_id=info.id) for article in info.articles: article.comments = KMBlogComment.find(article_id=article.id) values = {'info': info} return self.render('kokemomo/plugins/blog/view/template/normal/normal', url=self.get_url, values=values, blog_url=blog_url)
def blog_page(self, blog_url, id): info = KMBlogInfo.find(url=blog_url)[0] article = KMBlogArticle.get(id) category = KMBlogCategory.get(article.category_id) article.comments = KMBlogComment.find(article_id=article.id) values = {'info': info, 'article': article, 'category': category} return self.render('kokemomo/plugins/blog/view/template/' + SETTINGS.BLOG_TEMPLATE + '/page', url=self.get_url, values=values, blog_url=blog_url)
def test_validate(self): model = KMBlogArticle() # 各フィールドに値が設定されていない場合はFalseが返され、エラーが取得できること eq_(model.validate(), False) eq_(model.error.get('title')['message'], '記事名は必須です。') # 各フィールドに値が設定されている場合はTrueが返されること model = KMBlogArticle() model.title = self.test_title eq_(model.validate(), True)
def blog_admin_article_list(self): ''' blog admin page :return: template ''' id = self.data.get_request_parameter('id', default=None) self.result['info'] = KMBlogInfo.all() for info in self.result['info']: info.articles = KMBlogArticle.find(info_id=info.id) self.result['type'] = 'article_list' self.result['menu_list'] = get_menu_list()
def test_save_data_error(self): data = self.mocker.CreateMock(KMData) data.get_request_parameter('info_id').AndReturn('') data.get_request_parameter('category_id').AndReturn('') data.get_request_parameter('title', default='', decode=True).AndReturn('') data.get_request_parameter('article', default='', decode=True).AndReturn('') self.mocker.ReplayAll() model = KMBlogArticle.save_data(None, data) # フィールドに値が設定されていない場合はエラーが返ること eq_(model.error.size(), 1) self.mocker.VerifyAll()
def blog_admin_article(self): ''' blog admin page :return: template ''' id = self.data.get_request_parameter('id', default=None) info_id = self.data.get_request_parameter('info_id') self.result['info'] = KMBlogInfo.get(id=info_id) self.result['category'] = KMBlogCategory.find(info_id=info_id) self.result['article'] = KMBlogArticle.get(id=id) self.result['type'] = 'article' self.result['menu_list'] = get_menu_list()
def blog_admin_create_article(self): ''' Create Blog Article. :return: ''' values = {} id = self.data.get_request_parameter('id', default=None) info_id = self.data.get_request_parameter('info_id') self.result['info'] = KMBlogInfo.get(info_id); self.result['article'] = KMBlogArticle.save_data(id, self.data); self.result['type'] = 'article' self.result['menu_list'] = get_menu_list()
def blog_admin_create_article(self): ''' Create Blog Article. :return: ''' values = {} id = self.data.get_request_parameter('id', default=None) info_id = self.data.get_request_parameter('info_id') self.result['info'] = KMBlogInfo.get(info_id) self.result['article'] = KMBlogArticle.save_data(id, self.data) self.result['type'] = 'article' self.result['menu_list'] = get_menu_list()
def test_save_data(self): model = KMBlogArticle.get(1) eq_(model.id, 1) eq_(model.info_id, None) eq_(model.category_id, None) eq_(model.title, '') eq_(model.article, '') data = self.mocker.CreateMock(KMData) data.get_request_parameter('info_id').AndReturn(self.test_info_id) data.get_request_parameter('category_id').AndReturn(self.test_category_id) data.get_request_parameter('title', default='', decode=True).AndReturn(self.test_title) data.get_request_parameter('article', default='', decode=True).AndReturn(self.test_article) self.mocker.ReplayAll() model = KMBlogArticle.save_data(1, data) # 既存データのidが指定された場合は値が上書きされること eq_(model.error.size(), 0) eq_(model.id, 1) eq_(model.info_id, self.test_info_id) eq_(model.category_id, self.test_category_id) eq_(model.title, self.test_title) eq_(model.article, self.test_article) self.mocker.VerifyAll()
def blog_top(self, blog_url): tab = self.data.get_request_parameter('tab', default=0) info = KMBlogInfo.find(url=blog_url)[0] categories = KMBlogCategory.find(info_id=info.id) info.articles = [] for category in categories: page = self.data.get_request_parameter('page_' + str(category.id), default=0) res = KMBlogArticle.find(info_id=info.id, category_id=category.id, order=KMBlogArticle.updated_at.desc()) category.page = page res = res[PAGE_SIZE*page:PAGE_SIZE*page+PAGE_SIZE] for article in res: article.comments = KMBlogComment.find(article_id=article.id) info.articles.extend(res) values = {'info': info, 'categories': categories, 'tab': tab} return self.render('kokemomo/plugins/blog/view/template/' + SETTINGS.BLOG_TEMPLATE + '/top', url=self.get_url, values=values, blog_url=blog_url)
def test_save_data_id_none(self): data = self.mocker.CreateMock(KMData) data.get_request_parameter('info_id').AndReturn(self.test_info_id) data.get_request_parameter('category_id').AndReturn(self.test_category_id) data.get_request_parameter('title', default='', decode=True).AndReturn(self.test_title) data.get_request_parameter('article', default='', decode=True).AndReturn(self.test_article) self.mocker.ReplayAll() model = KMBlogArticle.save_data(None, data) # idが指定されていない場合は新規で登録されること(id=2) eq_(model.error.size(), 0) eq_(model.id, 2) eq_(model.info_id, self.test_info_id) eq_(model.category_id, self.test_category_id) eq_(model.title, self.test_title) eq_(model.article, self.test_article) self.mocker.VerifyAll()
def blog_admin_delete_article(self): id = self.data.get_request_parameter('id', default=None) KMBlogArticle.delete_by_id(id)
def blog_admin_delete_article(self): id = self.data.get_request_parameter('id', default=None) KMBlogArticle.delete_by_id(id) self.result['type'] = 'result' self.result['message'] = '削除できました。'
def blog_admin_delete_category(self): id = self.data.get_request_parameter('id', default=None) KMBlogCategory.delete_by_id(id) KMBlogArticle.delete_by_condition(category_id=id)
def setUp(self): initialize(rdb_path='sqlite:///:memory:') self.mocker = Mox() model = KMBlogArticle() model.save() # id = 1のデータを登録