예제 #1
0
파일: user.py 프로젝트: jmpews/torweb
    def on_close(self):
        user = self.current_user

        if user.username in WebsocketChatHandler.clients.keys():
            WebsocketChatHandler.clients.pop(user.username)
        else:
            logger.debug("[{0}] not in Websocket.clients, but close.".format(user.username))
예제 #2
0
    def on_close(self):
        user = self.current_user

        if user.username in WebsocketChatHandler.clients.keys():
            WebsocketChatHandler.clients.pop(user.username)
        else:
            logger.debug("[{0}] not in Websocket.clients, but close.".format(
                user.username))
예제 #3
0
def mysql_db_init(db_mysql):
    if not mysqldb.execute_sql("select * from information_schema.schemata where schema_name = '{0}';".format(config.BACKEND_MYSQL['database'])).fetchone():
        mysqldb.execute_sql("create database {0} default character set utf8 default collate utf8_general_ci;".format(config.BACKEND_MYSQL['database']))
    else:
        mysqldb.execute_sql("drop database torweb")
        mysqldb.execute_sql("create database {0} default character set utf8 default collate utf8_general_ci;".format(config.BACKEND_MYSQL['database']))

    # create_test_data(db_mysql)
    logger.debug('load db from db/torweb.sql.')
    import os
    os.system(' mysql -u{0} -p{1} {2} <'.format(config.BACKEND_MYSQL['user'], config.BACKEND_MYSQL['password'], config.BACKEND_MYSQL['database'])+os.getcwd()+'/db/torweb.sql')
    mysqldb.close()
예제 #4
0
파일: test_mysql.py 프로젝트: jmpews/torweb
def mysql_db_init(db_mysql, db_name):
    if not mysqldb.execute_sql("select * from information_schema.schemata where schema_name = '{0}';".format(config.BACKEND_MYSQL['database'])).fetchone():
        mysqldb.execute_sql("create database {0} default character set utf8 default collate utf8_general_ci;".format(config.BACKEND_MYSQL['database']))
    else:
        mysqldb.execute_sql("drop database torweb")
        mysqldb.execute_sql("create database {0} default character set utf8 default collate utf8_general_ci;".format(config.BACKEND_MYSQL['database']))
        pass

    create_table(db_mysql)
    # create_test_data(db_mysql)
    logger.debug('load db from {0}.'.format(db_name))
    import os
    os.system('mysql -u{0} -p{1} {2} <'.format(config.BACKEND_MYSQL['user'], config.BACKEND_MYSQL['password'], config.BACKEND_MYSQL['database'])+os.getcwd()+db_name)
    mysqldb.close()
예제 #5
0
파일: app.py 프로젝트: niuzehai/torweb
def runserver():
    # define("port", default=8888, help="run on the given port", type=int)
    define("config", default='', help="config", type=str)
    parse_command_line()

    # maybe we can log with file
    # parse_config_file()

    import settings.config
    config = settings.config.load_config(options.config)
    settings.config.config = config

    from app.cache import update_cache
    update_cache()

    from custor.handlers.basehandler import ErrorHandler
    from app import urls
    handlers = ()
    handlers += urls.urlpattern
    handlers += tuple((x[0], tornado.web.StaticFileHandler, x[1])
                      for x in config.STATIC_PATH)

    from custor import uimethods
    ui_build_methods = {
        'datetime_delta': uimethods.datetime_delta,
        'is_default_avatar': uimethods.is_default_avatar
    }

    application = tornado.web.Application(
        handlers=handlers,
        ui_methods=ui_build_methods,
        default_handler_class=ErrorHandler,
        debug=config.DEBUG,
        static_path=config.static_path,
        template_path=config.TEMPLATE_PATH,
        login_url=config.LOGIN_URL,
        cookie_secret=config.COOKIE_SECRET,
    )

    # added signal callback to interrupt app
    signal.signal(signal.SIGINT, server_shutdown_handler)
    signal.signal(signal.SIGTERM, server_shutdown_handler)

    application.listen(config.PORT)
    from custor.logger import logger
    logger.debug('Server started at port %s' % config.PORT)
    tornado.ioloop.IOLoop.instance().start()
예제 #6
0
파일: app.py 프로젝트: jmpews/torweb
def runserver():
    # define("port", default=8888, help="run on the given port", type=int)
    define("config", default='', help="config", type=str)
    parse_command_line()

    # maybe we can log with file
    # parse_config_file()

    import settings.config
    config = settings.config.load_config(options.config)
    settings.config.config = config

    from app.cache import update_cache
    update_cache()

    from custor.handlers.basehandler import ErrorHandler
    from app import urls
    handlers = ()
    handlers += urls.urlpattern
    handlers += tuple((x[0], tornado.web.StaticFileHandler, x[1]) for x in config.STATIC_PATH)

    from custor import uimethods
    ui_build_methods = {
        'datetime_delta': uimethods.datetime_delta,
        'is_default_avatar': uimethods.is_default_avatar
    }

    application = tornado.web.Application(
        handlers=handlers,
        ui_methods=ui_build_methods,
        default_handler_class=ErrorHandler,
        debug=config.DEBUG,
        template_path=config.TEMPLATE_PATH,
        login_url=config.LOGIN_URL,
        cookie_secret=config.COOKIE_SECRET,
    )

    # added signal callback to interrupt app
    signal.signal(signal.SIGINT, server_shutdown_handler)
    signal.signal(signal.SIGTERM, server_shutdown_handler)

    application.listen(config.PORT)
    from custor.logger import logger
    logger.debug('Server started at port %s' % config.PORT)
    tornado.ioloop.IOLoop.instance().start()
예제 #7
0
파일: cache.py 프로젝트: jmpews/torweb
 def run(self):
     logger.debug("start monitor system status...")
     while True:
         try:
             s1 = psutil.cpu_percent()
             s2 = psutil.virtual_memory()[2]
             try:
                 s3 = len(psutil.net_connections())
             except:
                 s3 = 'unkown'
             s4 = datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d")
             self.systatus[0] = s1
             self.systatus[1] = s2
             self.systatus[2] = s3
             self.systatus[3] = s4
             from app.api.api import SystemStatusWebsocketHandler
             SystemStatusWebsocketHandler.write2all(self.systatus)
             time.sleep(30)
         except KeyboardInterrupt:
             break
예제 #8
0
파일: user.py 프로젝트: jmpews/torweb
    def on_message(self, message):
        json_data = get_cleaned_json_data_websocket(message, ['opt', 'data'])
        data = json_data['data']
        opt = json_data['opt']

        if opt == 'update_recent_user_list':
            logger.debug('update_recent_user_list...')
            recent_user_list = ChatMessage.get_recent_user_list(self.current_user)
            self.write_message(json_result(0,{'code': 'recent_user_list', 'data': recent_user_list}))

        elif opt == 'update_recent_user_list_and_open':
            recent_user_list = ChatMessage.get_recent_user_list(self.current_user)
            self.write_message(json_result(0,recent_user_list))

        elif opt == 'send_message':
            other_id = data['user_id']
            other = User.get(User.id == other_id)
            content = data['content']
            cl = ChatMessage.create(sender=self.current_user, receiver=other, content=content)
            self.write_message(json_result(0, {'code': 'receive_a_message',
                                               'data': {
                                                    'id': other.id,
                                                    'name': other.username,
                                                    'avatar': other.avatar,
                                                    'msg': ['>', cl.content, TimeUtil.datetime_delta(cl.time)]}}))

            # send to other user
            other_websocket = WebsocketChatHandler.is_online(other.username)
            if other_websocket:
                other_websocket.write_message(json_result(0, {'code': 'receive_a_message',
                                                              'data': {
                                                                'id': self.current_user.id,
                                                                'avatar': self.current_user.avatar,
                                                                'name': self.current_user.username,
                                                                'msg': ['<', cl.content, TimeUtil.datetime_delta(cl.time)]}}))
        elif opt == 'update_recent_message_list':
            other_id = data['user_id']
            other = User.get(User.id == other_id)
            recent_message = ChatMessage.get_recent_chat_message(self.current_user, other)
            logger.debug(recent_message)
            self.write_message(json_result(0,{'code': 'recent_message_list', 'data':recent_message}))
예제 #9
0
 def run(self):
     logger.debug("start monitor system status...")
     import psutil, datetime, time
     while True:
         try:
             s1 = psutil.cpu_percent()
             s2 = psutil.virtual_memory()[2]
             try:
                 s3 = len(psutil.net_connections())
             except:
                 s3 = 'unkown'
             s4 = datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d")
             self.systatus[0] = s1
             self.systatus[1] = s2
             self.systatus[2] = s3
             self.systatus[3] = s4
             from app.api.api import SystemStatusWebsocketHandler
             SystemStatusWebsocketHandler.write2all(self.systatus)
             time.sleep(30)
         except KeyboardInterrupt:
             break
예제 #10
0
    def on_message(self, message):
        json_data = get_cleaned_json_data_websocket(message, ['opt', 'data'])
        data = json_data['data']
        opt = json_data['opt']

        if opt == 'update_recent_user_list':
            logger.debug('update_recent_user_list...')
            recent_user_list = ChatMessage.get_recent_user_list(
                self.current_user)
            self.write_message(
                json_result(0, {
                    'code': 'recent_user_list',
                    'data': recent_user_list
                }))

        elif opt == 'update_recent_user_list_and_open':
            recent_user_list = ChatMessage.get_recent_user_list(
                self.current_user)
            self.write_message(json_result(0, recent_user_list))

        elif opt == 'send_message':
            other_id = data['user_id']
            other = User.get(User.id == other_id)
            content = data['content']
            cl = ChatMessage.create(sender=self.current_user,
                                    receiver=other,
                                    content=content)
            self.write_message(
                json_result(
                    0, {
                        'code': 'receive_a_message',
                        'data': {
                            'id':
                            other.id,
                            'name':
                            other.username,
                            'avatar':
                            other.avatar,
                            'msg': [
                                '>', cl.content,
                                TimeUtil.datetime_delta(cl.time)
                            ]
                        }
                    }))

            # send to other user
            other_websocket = WebsocketChatHandler.is_online(other.username)
            if other_websocket:
                other_websocket.write_message(
                    json_result(
                        0, {
                            'code': 'receive_a_message',
                            'data': {
                                'id':
                                self.current_user.id,
                                'avatar':
                                self.current_user.avatar,
                                'name':
                                self.current_user.username,
                                'msg': [
                                    '<', cl.content,
                                    TimeUtil.datetime_delta(cl.time)
                                ]
                            }
                        }))
        elif opt == 'update_recent_message_list':
            other_id = data['user_id']
            other = User.get(User.id == other_id)
            recent_message = ChatMessage.get_recent_chat_message(
                self.current_user, other)
            logger.debug(recent_message)
            self.write_message(
                json_result(0, {
                    'code': 'recent_message_list',
                    'data': recent_message
                }))
예제 #11
0
파일: test_mysql.py 프로젝트: jmpews/torweb
def create_test_data(db_mysql):
    from db.mysql_model.user import User, Profile, Follower, ChatMessage
    from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost
    from db.mysql_model.common import Notification
    from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory

    logger.debug("DataBase is not exist, so create test data.")


    # -------------------- 测试用户功能 ---------------
    user_admin = User.new(username='******', email='*****@*****.**', password='******')
    user_test = User.new(username='******', email='*****@*****.**', password='******')

    # -------------------- 测试关注功能 ---------------
    Follower.create(user=user_admin, follower=user_test)

    # -------------------- 测试分类功能 --------------
    logger.debug("""
    版块分类
    专业:
        计算机
    学习:
        学习资料、考研资料、家教、竞赛

    生活:
        共享账号、电影资源、常用软件、电脑故障

    爱好:
        摄影、健身

    未分类:
        校园通知、讨论
    """)

    postcategory0 = PostCategory.create(name='学习', str='study')
    postcategory1 = PostCategory.create(name='专业', str='major')
    postcategory2 = PostCategory.create(name='生活', str='live')
    postcategory3 = PostCategory.create(name='爱好', str='hobby')

    posttopic0 = PostTopic.create(category=postcategory0, name='学习资料', str='study-material')
    posttopic1 = PostTopic.create(category=postcategory0, name='考研资料', str='study-advance-material')
    posttopic2 = PostTopic.create(category=postcategory0, name='竞赛', str='study-competition')
    posttopic3 = PostTopic.create(category=postcategory0, name='请教', str='study-advice')

    posttopic4 = PostTopic.create(category=postcategory1, name='计算机', str='major-computer')

    posttopic5 = PostTopic.create(category=postcategory2, name='电影资源', str='live-movie')
    posttopic6 = PostTopic.create(category=postcategory2, name='共享账号', str='live-account')
    posttopic7 = PostTopic.create(category=postcategory2, name='电脑故障', str='live-computer-repair')

    posttopic8 = PostTopic.create(category=postcategory3, name='摄影', str='hobby-photography')
    posttopic9 = PostTopic.create(category=postcategory3, name='健身', str='hobby-fitness')

    posttopic10 = PostTopic.create(name='通知', str='notice')
    posttopic11 = PostTopic.create(name='讨论', str='discussion')


    # ---------------- 测试新文章 --------------
    post = Post.create(
        topic=posttopic0,
        title='test',
        content=tmp_post,
        user=user_admin
    )

    # ---------------- 测试通知 --------------
    Notification.new_post(post)

    # ------------测试新回复--------------
    postreply = PostReply.create(
            post=post,
            user=user_test,
            content='test'
    )
    post.update_latest_reply(postreply)


    # ---------------- 测试Blog --------------
    bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado')
    bp0 = BlogPost.create(title='Tornado', category=bpc0, content='Tornado content')
    BlogPostLabel.add_post_label('python,tornado', bp0)

    # ---------------- 测试chat --------------
    chat_log_0 = ChatMessage.create(sender=user_admin, receiver=user_test, content='self>other')
    chat_log_0 = ChatMessage.create(sender=user_test, receiver=user_admin, content='other>self')
예제 #12
0
def update_cache():
    logger.debug('start update cache...')
    update_topic_category_cache()
    update_hot_post_cache()
    update_system_status_cache()
예제 #13
0
파일: __init__.py 프로젝트: jmpews/torweb
# coding:utf-8

from .image import ImageCaptcha
from custor.logger import logger
logger.debug('load ImageCaptcha finished...')
image_captcha = ImageCaptcha()
예제 #14
0
def create_test_data(db_mysql):
    from db.mysql_model.user import User, Profile, Follower, ChatMessage
    from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost
    from db.mysql_model.common import Notification
    from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory

    logger.debug("DataBase is not exist, so create test data.")

    # -------------------- 测试用户功能 ---------------
    user_admin = User.new(username='******',
                          email='*****@*****.**',
                          password='******')
    user_test = User.new(username='******',
                         email='*****@*****.**',
                         password='******')

    # -------------------- 测试关注功能 ---------------
    Follower.create(user=user_admin, follower=user_test)

    # -------------------- 测试分类功能 --------------
    logger.debug("""
    版块分类
    专业:
        计算机
    学习:
        学习资料、考研资料、家教、竞赛

    生活:
        共享账号、电影资源、常用软件、电脑故障

    爱好:
        摄影、健身

    未分类:
        校园通知、讨论
    """)

    postcategory0 = PostCategory.create(name='学习', str='study')
    postcategory1 = PostCategory.create(name='专业', str='major')
    postcategory2 = PostCategory.create(name='生活', str='live')
    postcategory3 = PostCategory.create(name='爱好', str='hobby')

    posttopic0 = PostTopic.create(category=postcategory0,
                                  name='学习资料',
                                  str='study-material')
    posttopic1 = PostTopic.create(category=postcategory0,
                                  name='考研资料',
                                  str='study-advance-material')
    posttopic2 = PostTopic.create(category=postcategory0,
                                  name='竞赛',
                                  str='study-competition')
    posttopic3 = PostTopic.create(category=postcategory0,
                                  name='请教',
                                  str='study-advice')

    posttopic4 = PostTopic.create(category=postcategory1,
                                  name='计算机',
                                  str='major-computer')

    posttopic5 = PostTopic.create(category=postcategory2,
                                  name='电影资源',
                                  str='live-movie')
    posttopic6 = PostTopic.create(category=postcategory2,
                                  name='共享账号',
                                  str='live-account')
    posttopic7 = PostTopic.create(category=postcategory2,
                                  name='电脑故障',
                                  str='live-computer-repair')

    posttopic8 = PostTopic.create(category=postcategory3,
                                  name='摄影',
                                  str='hobby-photography')
    posttopic9 = PostTopic.create(category=postcategory3,
                                  name='健身',
                                  str='hobby-fitness')

    posttopic10 = PostTopic.create(name='通知', str='notice')
    posttopic11 = PostTopic.create(name='讨论', str='discussion')

    # ---------------- 测试新文章 --------------
    post = Post.create(topic=posttopic0,
                       title='test',
                       content=tmp_post,
                       user=user_admin)

    # ---------------- 测试通知 --------------
    Notification.new_post(post)

    # ------------测试新回复--------------
    postreply = PostReply.create(post=post, user=user_test, content='test')
    post.update_latest_reply(postreply)

    # ---------------- 测试Blog --------------
    bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado')
    bp0 = BlogPost.create(title='Tornado',
                          category=bpc0,
                          content='Tornado content')
    BlogPostLabel.add_post_label('python,tornado', bp0)

    # ---------------- 测试chat --------------
    chat_log_0 = ChatMessage.create(sender=user_admin,
                                    receiver=user_test,
                                    content='self>other')
    chat_log_0 = ChatMessage.create(sender=user_test,
                                    receiver=user_admin,
                                    content='other>self')
예제 #15
0
def create_test_data(db_mysql):
    from db.mysql_model.user import User, Profile, Follower, ChatLog
    from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost
    from db.mysql_model.common import Notification
    from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory

    logger.debug("DataBase is not exist, so create test data.")

    # -------------------- 建表 ---------------
    db_mysql.create_tables([User, ChatLog, PostCategory, PostTopic, Post, PostReply, CollectPost, Profile, Follower, Notification, BlogPostCategory, BlogPost, BlogPostLabel], safe=True)
    user_admin = User.new(username='******', email='*****@*****.**', password='******')
    user_test = User.new(username='******', email='*****@*****.**', password='******')

    # -------------------- 测试关注功能 ---------------
    Follower.create(user=user_admin, follower=user_test)

    # -------------------- 测试分类功能 --------------
    logger.debug("""
    版块分类
    docker:
        docker文章
    registry:
        registry文章、私有hub、images分享, dockerfile分享

    docker集群:
        docker集群文章
    """)

    postcategory0 = PostCategory.create(name='docker', str='docker')
    postcategory1 = PostCategory.create(name='registry', str='registry')
    postcategory2 = PostCategory.create(name='docker集群', str='docker-cluster')

    posttopic0 = PostTopic.create(category=postcategory0, name='docker文章', str='docker-article')

    posttopic1 = PostTopic.create(category=postcategory1, name='registry文章', str='registry-article')
    posttopic2 = PostTopic.create(category=postcategory1, name='私有hub', str='private-hub')
    posttopic3 = PostTopic.create(category=postcategory1, name='image分享', str='image-share')
    posttopic4 = PostTopic.create(category=postcategory1, name='dockerfile分享', str='dockerfile-share')

    posttopic5 = PostTopic.create(category=postcategory2, name='docker集群文章', str='docker-cluster-article')

    posttopic10 = PostTopic.create(name='通知', str='notice')
    posttopic11 = PostTopic.create(name='讨论', str='discussion')


    # ---------------- 测试新文章 --------------
    post = Post.create(
        topic=posttopic0,
        title='test',
        content=tmp_post,
        user=user_admin
    )

    # ---------------- 测试通知 --------------
    Notification.new_post(post)

    # ------------测试新回复--------------
    postreply = PostReply.create(
            post=post,
            user=user_test,
            content='test'
    )
    post.update_latest_reply(postreply)


    # ---------------- 测试Blog --------------
    bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado')
    bp0 = BlogPost.create(title='Tornado', category=bpc0, content='Tornado content')
    BlogPostLabel.add_post_label('python,tornado', bp0)

    # ---------------- 测试chat --------------
    chat_log_0 = ChatLog.create(me=user_admin, other=user_test, content='self>other')
    chat_log_0 = ChatLog.create(me=user_test, other=user_admin, content='other>self')
예제 #16
0
파일: cache.py 프로젝트: jmpews/torweb
def update_cache():
    logger.debug('start update cache...')
    update_topic_category_cache()
    update_hot_post_cache()
    update_system_status_cache()
예제 #17
0
#encoding:utf-8

from .image import ImageCaptcha
from custor.logger import logger
logger.debug('load ImageCaptcha finished...')
image_captcha = ImageCaptcha()
예제 #18
0
def create_test_data(db_mysql):
    from db.mysql_model.user import User, Profile, Follower
    from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost
    from db.mysql_model.common import Notification
    from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory
    logger.debug("DataBase is not exist, so create test data.")

    # -------------------- 建表 ---------------
    db_mysql.create_tables([User, PostCategory, PostTopic, Post, PostReply, CollectPost, Profile, Follower, Notification, BlogPostCategory, BlogPost, BlogPostLabel], safe=True)

    logger.debug('add user: [admin:admin], [test:test]')
    user_admin = User.new(username='******', email='*****@*****.**', password='******')
    user_test = User.new(username='******', email='*****@*****.**', password='******')

    # -------------------- 测试关注功能 ---------------
    logger.debug('add follower: [test]->[admin]')
    Follower.create(user=user_admin, follower=user_test)

    # -------------------- 测试分类功能 --------------
    logger.debug('add postcategory and posttopic:')
    logger.debug('''
    版块分类
    专业:
        计算机
    学习:
        学习资料、考研资料、家教、竞赛

    生活:
        共享账号、电影资源、常用软件、电脑故障

    爱好:
        摄影、健身

    未分类:
        校园通知、讨论
    ''')

    postcategory0 = PostCategory.create(name='学习', str='study')
    postcategory1 = PostCategory.create(name='专业', str='major')
    postcategory2 = PostCategory.create(name='生活', str='live')
    postcategory3 = PostCategory.create(name='爱好', str='hobby')

    posttopic0 = PostTopic.create(category=postcategory0, name='学习资料', str='study-material')
    posttopic1 = PostTopic.create(category=postcategory0, name='考研资料', str='study-advance-material')
    posttopic2 = PostTopic.create(category=postcategory0, name='竞赛', str='study-competition')
    posttopic3 = PostTopic.create(category=postcategory0, name='请教', str='study-advice')

    posttopic4 = PostTopic.create(category=postcategory1, name='计算机', str='major-computer')

    posttopic5 = PostTopic.create(category=postcategory2, name='电影资源', str='live-movie')
    posttopic6 = PostTopic.create(category=postcategory2, name='共享账号', str='live-account')
    posttopic7 = PostTopic.create(category=postcategory2, name='电脑故障', str='live-computer-repair')

    posttopic8 = PostTopic.create(category=postcategory3, name='摄影', str='hobby-photography')
    posttopic9 = PostTopic.create(category=postcategory3, name='健身', str='hobby-fitness')

    posttopic10 = PostTopic.create(name='通知', str='notice')
    posttopic11 = PostTopic.create(name='讨论', str='discussion')


    # ---------------- 测试新文章 --------------
    logger.debug('add post: [SICP换零钱(递归转尾递归)]')
    post = Post.create(
        topic=posttopic0,
        title='SICP换零钱(递归转尾递归)',
        content=tmp_post,
        user=user_admin
    )

    # ---------------- 测试通知 --------------
    logger.debug('add notice: [admin]->[admin\'s followers]')
    Notification.new_post(post)

    # ------------测试新回复--------------
    logger.debug('add postreply: [test]->[admin]')
    postreply = PostReply.create(
            post=post,
            user=user_test,
            content='迭代需要重复利用递归产生的冗余数据'
    )
    post.update_latest_reply(postreply)


    # ---------------- 测试Blog --------------
    logger.debug('add blogpost: [tornado]')
    bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado')
    bp0 = BlogPost.create(title='Tornado', category=bpc0, content='Tornado content')
    BlogPostLabel.add_post_label('python,tornado', bp0)
예제 #19
0
def create_test_data(db_mysql):
    from db.mysql_model.user import User, Profile, Follower, ChatLog
    from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost
    from db.mysql_model.common import Notification
    from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory

    logger.debug("DataBase is not exist, so create test data.")

    # -------------------- 建表 ---------------
    db_mysql.create_tables([User, ChatLog, PostCategory, PostTopic, Post, PostReply, CollectPost, Profile, Follower, Notification, BlogPostCategory, BlogPost, BlogPostLabel], safe=True)
    user_admin = User.new(username='******', email='*****@*****.**', password='******')
    user_test = User.new(username='******', email='*****@*****.**', password='******')

    # -------------------- 测试关注功能 ---------------
    Follower.create(user=user_admin, follower=user_test)

    # -------------------- 测试分类功能 --------------
    logger.debug('''
    版块分类
    docker:
        docker文章
    registry:
        registry文章、私有hub、images分享, dockerfile分享

    docker集群:
        docker集群文章
    ''')

    postcategory0 = PostCategory.create(name='docker', str='docker')
    postcategory1 = PostCategory.create(name='registry', str='registry')
    postcategory2 = PostCategory.create(name='docker集群', str='docker-cluster')

    posttopic0 = PostTopic.create(category=postcategory0, name='docker文章', str='docker-article')

    posttopic1 = PostTopic.create(category=postcategory1, name='registry文章', str='registry-article')
    posttopic2 = PostTopic.create(category=postcategory1, name='私有hub', str='private-hub')
    posttopic3 = PostTopic.create(category=postcategory1, name='image分享', str='image-share')
    posttopic4 = PostTopic.create(category=postcategory1, name='dockerfile分享', str='dockerfile-share')

    posttopic5 = PostTopic.create(category=postcategory2, name='docker集群文章', str='docker-cluster-article')

    posttopic10 = PostTopic.create(name='通知', str='notice')
    posttopic11 = PostTopic.create(name='讨论', str='discussion')


    # ---------------- 测试新文章 --------------
    post = Post.create(
        topic=posttopic0,
        title='test',
        content=tmp_post,
        user=user_admin
    )

    # ---------------- 测试通知 --------------
    Notification.new_post(post)

    # ------------测试新回复--------------
    postreply = PostReply.create(
            post=post,
            user=user_test,
            content='test'
    )
    post.update_latest_reply(postreply)


    # ---------------- 测试Blog --------------
    bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado')
    bp0 = BlogPost.create(title='Tornado', category=bpc0, content='Tornado content')
    BlogPostLabel.add_post_label('python,tornado', bp0)

    # ---------------- 测试chat --------------
    chat_log_0 = ChatLog.create(me=user_admin, other=user_test, content='self>other')
    chat_log_0 = ChatLog.create(me=user_test, other=user_admin, content='other>self')
def create_test_data(db_mysql):
    from db.mysql_model.user import User, Profile, Follower, ChatMessage
    from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost
    from db.mysql_model.common import Notification
    from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory

    logger.debug("DataBase is not exist, so create test data.")


    # -------------------- 测试用户功能 ---------------
    user_admin = User.new(username='******', email='*****@*****.**', password='******')
    user_test = User.new(username='******', email='*****@*****.**', password='******')

    # -------------------- 测试关注功能 ---------------
    Follower.create(user=user_admin, follower=user_test)

    # -------------------- 测试分类功能 --------------
    logger.debug('''
    版块分类
    专业:
        计算机
    学习:
        学习资料、考研资料、家教、竞赛

    生活:
        共享账号、电影资源、常用软件、电脑故障

    爱好:
        摄影、健身

    未分类:
        校园通知、讨论
    ''')

    postcategory0 = PostCategory.create(name='分类', str='live')
    posttopic0 = PostTopic.create(category=postcategory0, name='爱学习', str='live-study')
    posttopic1 = PostTopic.create(category=postcategory0, name='爱生活', str='live-life')
    posttopic2 = PostTopic.create(category=postcategory0, name='爱管“闲事”', str='live-thing')

    posttopic10 = PostTopic.create(name='通知', str='notice')
    posttopic11 = PostTopic.create(name='讨论', str='discussion')

    # ---------------- 测试新文章 --------------
    post = Post.create(
        topic=posttopic0,
        title='test',
        content=tmp_post,
        user=user_admin
    )

    # ---------------- 测试通知 --------------
    Notification.new_post(post)

    # ------------测试新回复--------------
    postreply = PostReply.create(
            post=post,
            user=user_test,
            content='test'
    )
    post.update_latest_reply(postreply)


    # ---------------- 测试Blog --------------
    bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado')
    bp0 = BlogPost.create(title='Tornado', category=bpc0, content='Tornado content')
    BlogPostLabel.add_post_label('python,tornado', bp0)

    # ---------------- 测试chat --------------
    chat_log_0 = ChatMessage.create(sender=user_admin, receiver=user_test, content='self>other')
    chat_log_0 = ChatMessage.create(sender=user_test, receiver=user_admin, content='other>self')