Exemplo n.º 1
0
class TestWiki():
    def setup(self):
        print('setup 方法执行于本类中每条用例之前')
        self.uu = MWiki()
        self.raw_count = self.uu.get_counts()
        self.wiki_title = 'lkablkjcdefg'

    def test_insert(self):
        raw_count = self.uu.get_counts()
        post_data = {
            'title': [self.wiki_title],
            'cnt_md': '## adslkfjasdf\n lasdfkjsadf',
            'user_name': 'Tome',
        }
        self.uu.insert_data(post_data)
        new_count = self.uu.get_counts()

        tt = self.uu.get_by_wiki(self.wiki_title)

        assert tt.title == post_data['title'][0]
        assert tt.cnt_md == tornado.escape.xhtml_unescape(
            post_data['cnt_md'][0])
        assert raw_count + 1 == new_count

    def test_insert_2(self):
        '''Wiki insert: Test invalid title'''
        post_data = {
            'title': [''],
            'cnt_md': ['## adslkfjasdf\n lasdfkjsadf'],
            'user_name': 'Tome',
        }
        uu = self.uu.insert_data(post_data)
        assert uu == False

        post_data = {
            'title': ['1'],
            'cnt_md': ['## adslkfjasdf\n lasdfkjsadf'],
            'user_name': 'Tome',
        }
        uu = self.uu.insert_data(post_data)
        assert uu == False

        post_data = {
            'title': ['天'],
            'cnt_md': ['## adslkfjasdf\n lasdfkjsadf'],
            'user_name': 'Tome',
        }
        uu = self.uu.insert_data(post_data)
        assert uu == False

    def test_get_by_title(self):
        post_data = {
            'title': [self.wiki_title],
            'cnt_md': ['## adslkfjasdf\n lasdfkjsadf'],
            'user_name': 'Tome',
        }
        uid = self.uu.insert_data(post_data)

        ss = self.uu.get_by_uid(uid)
        assert ss.title == post_data['title'][0]

        tt = self.uu.get_by_title(self.wiki_title)
        assert tt.title == post_data['title'][0]

    def test_get_by_title2(self):
        '''Test Wiki title with SPACE'''
        post_data = {
            'title': ['  ' + self.wiki_title + '  '],
            'cnt_md': ['## adslkfjasdf\n lasdfkjsadf'],
            'user_name': 'Tome',
        }
        uid = self.uu.insert_data(post_data)

        ss = self.uu.get_by_uid(uid)
        assert ss.title == self.wiki_title

        tt = self.uu.get_by_title(self.wiki_title)
        assert tt.title == post_data['title'][0].strip()

    def test_upate_by_view_count(self):

        post_data = {
            'title': [self.wiki_title],
            'cnt_md': ['## adslkfjasdf\n lasdfkjsadf'],
            'user_name': 'Tome',
        }
        self.uu.insert_data(post_data)

        rec = self.uu.get_by_wiki(self.wiki_title)

        viewcount0 = rec.view_count
        assert viewcount0 == 2
        for x in range(100):
            self.uu.update_view_count_by_uid(rec.uid)

        viewcount1 = self.uu.get_by_wiki(self.wiki_title).view_count
        assert viewcount1 == 103

    def test_upate(self):
        assert True

    def tearDown(self):
        print("function teardown")
        tt = self.uu.get_by_wiki(self.wiki_title)
        if tt:
            self.uu.delete(tt.uid)
Exemplo n.º 2
0
 def setup(self):
     print('setup 方法执行于本类中每条用例之前')
     self.uu = MWiki()
     self.raw_count = self.uu.get_counts()
     self.wiki_title = 'lkablkjcdefg'
Exemplo n.º 3
0
 def initialize(self):
     self.init()
     self.mwiki = MWiki()
     self.mwiki_hist = MWikiHist()
Exemplo n.º 4
0
class WikiHandler(BaseHandler):
    def initialize(self):
        self.init()
        self.mwiki = MWiki()
        self.mwiki_hist = MWikiHist()

    def get(self, url_str=''):
        url_arr = self.parse_url(url_str)

        if url_str == 'recent':
            self.recent()
        elif url_arr[0] == 'ajax_count_plus':
            self.ajax_count_plus(url_arr[1])
        elif url_str == 'refresh':
            self.refresh()
        elif url_arr[0] == 'edit':
            self.to_modify(url_arr[1])
        elif len(url_arr) == 1:
            self.wiki(url_str)
        else:
            kwd = {
                'info': '页面未找到',
            }
            self.render('html/404.html', kwd=kwd)

    def post(self, url_str=''):
        url_arr = self.parse_url(url_str)
        if url_arr[0] == 'edit':
            self.update(url_arr[1])
        elif url_arr[0] == 'add':
            self.wikinsert()
        else:
            self.redirect('html/404.html')

    def recent(self):
        kwd = {
            'pager': '',
            'unescape': tornado.escape.xhtml_unescape,
            'title': '最近文档',
        }
        self.render(
            'doc/wiki/wiki_list.html',
            view=self.mwiki.query_recent(),
            format_date=tools.format_date,
            cfg=config.cfg,
            kwd=kwd,
            userinfo=self.userinfo,
        )

    def refresh(self):
        kwd = {
            'pager': '',
            'unescape': tornado.escape.xhtml_unescape,
            'title': '最近文档',
        }
        self.render(
            'doc/wiki/wiki_list.html',
            view=self.mwiki.query_dated(16),
            format_date=tools.format_date,
            kwd=kwd,
            cfg=config.cfg,
            userinfo=self.userinfo,
        )

    def wiki(self, title):
        dbdate = self.mwiki.get_by_wiki(title)
        if dbdate:
            self.viewit(dbdate)
        else:
            self.to_add(title)

    @tornado.web.authenticated
    def to_add(self, title):
        if self.check_doc_priv(self.userinfo)['ADD']:
            pass
        else:
            return False

        kwd = {
            'title': title,
            'pager': '',
        }
        self.render(
            'doc/wiki/wiki_add.html',
            kwd=kwd,
            cfg=config.cfg,
            userinfo=self.userinfo,
        )

    @tornado.web.authenticated
    def update(self, uid):

        raw_data = self.mwiki.get_by_id(uid)
        if self.check_doc_priv(
                self.userinfo
        )['EDIT'] or raw_data.user_name == self.get_current_user():
            pass
        else:
            return False
        post_data = {}
        for key in self.request.arguments:
            post_data[key] = self.get_arguments(key)
        post_data['user_name'] = self.get_current_user()
        self.mwiki.update(uid, post_data)
        self.mwiki_hist.insert_data(raw_data)
        self.redirect('/wiki/{0}'.format(
            tornado.escape.url_escape(post_data['title'][0])))

    @tornado.web.authenticated
    def to_modify(self, id_rec):
        wiki_rec = self.mwiki.get_by_id(id_rec)
        # 用户具有管理权限,或文章是用户自己发布的。
        if self.check_doc_priv(
                self.userinfo
        )['EDIT'] or wiki_rec.user_name == self.get_current_user():
            pass
        else:
            return False

        kwd = {
            'pager': '',
        }
        self.render(
            'doc/wiki/wiki_edit.html',
            kwd=kwd,
            unescape=tornado.escape.xhtml_unescape,
            # tag_infos=self.mcat.query_all(),
            dbrec=wiki_rec,
            cfg=config.cfg,
            userinfo=self.userinfo,
        )

    def viewit(self, view):
        kwd = {
            'pager': '',
            'editable': self.editable(),
        }

        self.render(
            'doc/wiki/wiki_view.html',
            view=view,
            unescape=tornado.escape.xhtml_unescape,
            kwd=kwd,
            userinfo=self.userinfo,
            cfg=config.cfg,
        )

    def ajax_count_plus(self, slug):
        output = {
            'status': 1 if self.mwiki.update_view_count(slug) else 0,
        }

        return json.dump(output, self)

    @tornado.web.authenticated
    def wikinsert(self):
        if self.check_doc_priv(self.userinfo)['ADD']:
            pass
        else:
            return False
        post_data = {}
        for key in self.request.arguments:
            post_data[key] = self.get_arguments(key)

        post_data['user_name'] = self.get_current_user()
        tt = self.mwiki.get_by_wiki(post_data['title'][0])
        if tt is None:
            self.mwiki.insert_data(post_data)

        self.redirect('/wiki/{0}'.format(
            tornado.escape.url_escape(post_data['title'][0])))
Exemplo n.º 5
0
 def initialize(self):
     self.init()
     self.mwiki = MWiki()
     # self.mcat = MCatalog()
     # self.cats = self.mcat.query_all()
     self.mwiki_hist = MWikiHist()
Exemplo n.º 6
0
class WikiHandler(BaseHandler):
    def initialize(self):
        self.init()
        self.mwiki = MWiki()
        # self.mcat = MCatalog()
        # self.cats = self.mcat.query_all()
        self.mwiki_hist = MWikiHist()


    def get(self, url_str=''):
        url_arr = self.parse_url(url_str)

        if url_str == 'recent':
            self.recent()
        elif url_arr[0] == 'ajax_count_plus':
            self.ajax_count_plus(url_arr[1])
        elif url_str == 'refresh':
            self.refresh()
        elif (url_arr[0] == 'edit'):
            self.to_modify(url_arr[1])
        elif len(url_arr) == 1:
            self.wiki(url_str)
        else:
            kwd = {
                'info': '页面未找到',
            }
            self.render('html/404.html', kwd=kwd)

    def post(self, url_str=''):
        url_arr = self.parse_url(url_str)

        if url_arr[0] == 'edit':
            self.update(url_arr[1])
        elif url_arr[0] == 'add':
            self.wikinsert()
        else:
            self.redirect('html/404.html')

    def recent(self):
        kwd = {
            'pager': '',
            'unescape': tornado.escape.xhtml_unescape,
            'title': '最近文档',
        }
        self.render('{0}/wiki/wiki_list.html'.format(self.tmpl_name),
                    view=self.mwiki.query_recent(),
                    format_date=tools.format_date,
                    cfg = config.cfg,
                    kwd=kwd,
                    userinfo = self.userinfo,
                    )

    def refresh(self):
        kwd = {
            'pager': '',
            'unescape': tornado.escape.xhtml_unescape,
            'title': '最近文档',
        }
        self.render('{0}/wiki/wiki_list.html'.format(self.tmpl_name),
                    view=self.mwiki.query_dated(16),
                    format_date=tools.format_date,
                    kwd=kwd,
                    cfg = config.cfg,
                    userinfo = self.userinfo,
                    )

    def wiki(self, title):
        dbdate = self.mwiki.get_by_wiki(title)
        if dbdate:
            self.viewit(dbdate)
        else:
            self.to_add(title)

    @tornado.web.authenticated
    def to_add(self, title):
        kwd = {
            # 'cats': self.cats,
            'title': title,
            'pager': '',
        }
        self.render('{0}/wiki/wiki_add.html'.format(self.tmpl_name),
                    kwd=kwd,
                    cfg  = config.cfg,
                    userinfo = self.userinfo,
                    )

    @tornado.web.authenticated
    def update(self, uid):
        raw_data = self.mwiki.get_by_id(uid)
        if self.userinfo.privilege[2] == '1' or raw_data.user_name == self.get_current_user():
            pass
        else:
            return False
        post_data = {}
        for key in self.request.arguments:
            post_data[key] = self.get_arguments(key)
        post_data['user_name'] = self.get_current_user()
        self.mwiki.update(uid, post_data)
        self.mwiki_hist.insert_data(raw_data)
        self.redirect('/wiki/{0}'.format(tornado.escape.url_escape(post_data['title'][0])))

    @tornado.web.authenticated
    def to_modify(self, id_rec):
        wiki_rec = self.mwiki.get_by_id(id_rec)
        # 用户具有管理权限,或文章是用户自己发布的。
        if self.userinfo.privilege[2] == '1' or wiki_rec.user_name == self.get_current_user():
            pass
        else:
            return False

        kwd = {
            'pager': '',
            'cats': self.cats,
        }
        self.render('{0}/wiki/wiki_edit.html'.format(self.tmpl_name),
                    kwd=kwd,
                    unescape=tornado.escape.xhtml_unescape,
                    tag_infos=self.mcat.query_all(),
                    dbrec=wiki_rec,
                    cfg  = config.cfg,
                    userinfo = self.userinfo,
                    )

    def viewit(self, view):
        kwd = {
            'pager': '',
            'editable': self.editable(),
        }

        self.render('{0}/wiki/wiki_view.html'.format(self.tmpl_name),
                    view=view,
                    unescape=tornado.escape.xhtml_unescape,
                    kwd=kwd,
                    userinfo=self.userinfo,
                    cfg  = config.cfg,
                    )

    def ajax_count_plus(self, slug):
        output = {
            'status': 1 if self.mwiki.update_view_count(slug) else 0,
        }

        return json.dump(output, self)

    @tornado.web.authenticated
    def wikinsert(self):
        if self.userinfo.privilege[1] == '1':
            pass
        else:
            return False
        post_data = {}
        for key in self.request.arguments:
            post_data[key] = self.get_arguments(key)

        post_data['user_name'] = self.get_current_user()
        tt = self.mwiki.get_by_wiki(post_data['title'][0])
        if tt is None:
            self.mwiki.insert_data(post_data)

        self.redirect('/wiki/{0}'.format(tornado.escape.url_escape(post_data['title'][0])))
Exemplo n.º 7
0
 def initialize(self):
     self.init()
     self.mwiki = MWiki()
     self.mwiki_hist = MWikiHist()