Ejemplo n.º 1
0
    def test_article_get(self):
        r = self.client.get(self.url + '/article')
        self.assertEqual(r.status_code, 401)
        article = Article()
        article.title = 'title-test'
        article.slug = 'test'
        article.content = 'content ' * 20
        db.session.add(article)
        db.session.commit()
        r = self.client.get(self.url + '/article?slug=test')
        self.assertEqual(r.status_code, 401)

        tag = Tag()
        tag.name = 'tag'
        db.session.add(tag)
        category = Category()
        category.name = 'category'
        db.session.add(category)
        db.session.commit()
        article = Article()
        article.title = 'article'
        article.slug = 'slug'
        article.category = category
        article.content = 'content'
        article.tags = [tag]
        db.session.add(category)
        db.session.commit()
        r = self.client.get(self.url + '/article?slug=slug')
        self.assertEqual(r.status_code, 401)
Ejemplo n.º 2
0
    def test_validate_account(self):
        site = Site.objects.get_current().domain
        user = BlogUser.objects.create_superuser(email="*****@*****.**",
                                                 username="******", password="******")

        self.client.login(username='******', password='******')
        response = self.client.get('/admin/')
        self.assertEqual(response.status_code, 200)

        category = Category()
        category.name = "categoryaaa"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        article = Article()
        article.title = "nicetitleaaa"
        article.body = "nicecontentaaa"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'
        article.save()

        response = self.client.get(article.get_admin_url())
        self.assertEqual(response.status_code, 200)
Ejemplo n.º 3
0
    def test_validate_article(self):
        from accounts.models import BlogUser
        site = Site.objects.get_current().domain
        user = BlogUser()
        user.email = "*****@*****.**"
        user.username = "******"
        user.password = "******"
        user.set_password("liangliangyy")
        user.save()
        response = self.client.get(user.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        category = Category()
        category.name = "category"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        response = self.client.get(category.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        article = Article()
        article.title = "nicetitle"
        article.body = "nicecontent"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'
        article.save()
        response = self.client.get(article.get_absolute_url())
        self.assertEqual(response.status_code, 200)
Ejemplo n.º 4
0
    def test_validate_account(self):
        site = get_current_site().domain
        user = BlogUser.objects.create_superuser(
            email="*****@*****.**",
            username="******",
            password="******")
        testuser = BlogUser.objects.get(username='******')

        loginresult = self.client.login(username='******',
                                        password='******')
        self.assertEqual(loginresult, True)
        response = self.client.get('/admin/')
        self.assertEqual(response.status_code, 200)

        category = Category()
        category.name = "categoryaaa"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        article = Article()
        article.title = "nicetitleaaa"
        article.body = "nicecontentaaa"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'
        article.save()

        response = self.client.get(article.get_admin_url())
        self.assertEqual(response.status_code, 200)
Ejemplo n.º 5
0
    def test_validate_register(self):
        self.assertEquals(
            0, len(BlogUser.objects.filter(email='*****@*****.**')))
        response = self.client.post(
            reverse('account:register'), {
                'username': '******',
                'email': '*****@*****.**',
                'password1': 'password123!q@wE#R$T',
                'password2': 'password123!q@wE#R$T',
            })
        self.assertEquals(
            1, len(BlogUser.objects.filter(email='*****@*****.**')))
        user = BlogUser.objects.filter(email='*****@*****.**')[0]
        sign = get_md5(get_md5(settings.SECRET_KEY + str(user.id)))
        path = reverse('accounts:result')
        url = '{path}?type=validation&id={id}&sign={sign}'.format(path=path,
                                                                  id=user.id,
                                                                  sign=sign)
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)

        self.client.login(username='******', password='******')
        user = BlogUser.objects.filter(email='*****@*****.**')[0]
        user.is_superuser = True
        user.is_staff = True
        user.save()
        delete_sidebar_cache(user.username)
        category = Category()
        category.name = "categoryaaa"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        article = Article()
        article.category = category
        article.title = "nicetitle333"
        article.body = "nicecontentttt"
        article.author = user

        article.type = 'a'
        article.status = 'p'
        article.save()

        response = self.client.get(article.get_admin_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(reverse('account:logout'))
        self.assertIn(response.status_code, [301, 302, 200])

        response = self.client.get(article.get_admin_url())
        self.assertIn(response.status_code, [301, 302, 200])

        response = self.client.post(reverse('account:login'), {
            'username': '******',
            'password': '******'
        })
        self.assertIn(response.status_code, [301, 302, 200])

        response = self.client.get(article.get_admin_url())
        self.assertIn(response.status_code, [301, 302, 200])
Ejemplo n.º 6
0
    def post(self, request, format=None):
        try:
            ser = SubmitAricleSerializer(data=request.data)
            if ser._valid():
                title = ser.data.get('title')
                cover = request.FILES['cover']
                content = ser.data.get('content')
                category_id = ser.data.get('category_id')
                author_id = ser.data.get('author_id')
                promote = ser.data.get('promote')
            else:
                return Response({'status':'Bad request ...', status=status.HTTP_200_OK})
        
            user = User.objects.get(id=author_id)
            author = UserProfile.objects.get(user=user)
            category = Category.objects.get(id=category_id)
            
            article = Article()
            article.title = title
            article.cover = cover
            article.content = content
            article.category = category 
            article.author = author
            article.promote = promote
            article.save()

            return Response('status':'OK', status = status.HTTP_200_OK)

        except:
            return Response({'status': 'server error .....'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Ejemplo n.º 7
0
    def test_validate_comment(self):
        site = Site.objects.get_current().domain
        user = BlogUser.objects.create_superuser(email="*****@*****.**",
                                                 username="******",
                                                 password="******")

        self.client.login(username='******', password='******')

        c = Category()
        c.name = "categoryccc"
        c.created_time = datetime.datetime.now()
        c.last_mod_time = datetime.datetime.now()
        c.save()

        article = Article()
        article.title = "nicetitleccc"
        article.body = "nicecontentccc"
        article.author = user
        article.category = c
        article.type = 'a'
        article.status = 'p'
        article.save()
        s = TextMessage([])
        s.content = "nicetitleccc"
        rsp = search(s, None)
        self.assertTrue(rsp != '没有找到相关文章。')
        rsp = category(None, None)
        self.assertIsNotNone(rsp)
        rsp = recents(None, None)
        self.assertTrue(rsp != '暂时还没有文章')

        cmd = commands()
        cmd.title = "test"
        cmd.command = "ls"
        cmd.describe = "test"
        cmd.save()

        cmdhandler = CommandHandler()
        rsp = cmdhandler.run('test')
        self.assertIsNotNone(rsp)
        s.source = 'u'
        s.content = 'test'
        msghandler = MessageHandler(s, {})

        #msghandler.userinfo.isPasswordSet = True
        #msghandler.userinfo.isAdmin = True
        msghandler.handler()
        s.content = 'y'
        msghandler.handler()
        s.content = 'idcard:12321233'
        msghandler.handler()
        s.content = 'weather:上海'
        msghandler.handler()
        s.content = 'admin'
        msghandler.handler()
        s.content = '123'
        msghandler.handler()

        s.content = 'exit'
        msghandler.handler()
Ejemplo n.º 8
0
    def test_validate_account(self):
        site = Site.objects.get_current().domain
        user = BlogUser.objects.create_superuser(email="*****@*****.**",
                                                 username="******", password="******")

        self.client.login(username='******', password='******')
        response = self.client.get('/admin/')
        self.assertEqual(response.status_code, 200)

        category = Category()
        category.name = "categoryaaa"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        article = Article()
        article.title = "nicetitleaaa"
        article.body = "nicecontentaaa"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'
        article.save()

        response = self.client.get(article.get_admin_url())
        self.assertEqual(response.status_code, 200)
Ejemplo n.º 9
0
 def setUp(self):
     self.app = create_app('test')
     self.app_context = self.app.app_context()
     self.app_context.push()
     db.create_all()
     self.client = self.app.test_client()
     tag = Tag()
     tag.name = 'tagx'
     db.session.add(tag)
     category = Category()
     category.name = 'categoryx'
     db.session.add(category)
     db.session.commit()
     article = Article()
     article.title = 'articlex'
     article.slug = 'slugx'
     article.category = category
     article.content = 'contentx'
     article.tags = [tag]
     db.session.add(category)
     db.session.commit()
     user = User()
     user.name = 'admin'
     user.password = '******'
     db.session.add(user)
     db.session.commit()
Ejemplo n.º 10
0
    def test_validate_comment(self):
        site = Site.objects.get_current().domain
        user = BlogUser.objects.create_superuser(email="*****@*****.**",
                                                 username="******", password="******")

        self.client.login(username='******', password='******')

        c = Category()
        c.name = "categoryccc"
        c.created_time = datetime.datetime.now()
        c.last_mod_time = datetime.datetime.now()
        c.save()

        article = Article()
        article.title = "nicetitleccc"
        article.body = "nicecontentccc"
        article.author = user
        article.category = c
        article.type = 'a'
        article.status = 'p'
        article.save()
        s = TextMessage([])
        s.content = "nicetitleccc"
        rsp = search(s, None)
        self.assertTrue(rsp != '没有找到相关文章。')
        rsp = category(None, None)
        self.assertIsNotNone(rsp)
        rsp = recents(None, None)
        self.assertTrue(rsp != '暂时还没有文章')

        cmd = commands()
        cmd.title = "test"
        cmd.command = "ls"
        cmd.describe = "test"
        cmd.save()

        cmdhandler = CommandHandler()
        rsp = cmdhandler.run('test')
        self.assertIsNotNone(rsp)
        s.source = 'u'
        s.content = 'test'
        msghandler = MessageHandler(s, {})

        #msghandler.userinfo.isPasswordSet = True
        #msghandler.userinfo.isAdmin = True
        msghandler.handler()
        s.content = 'y'
        msghandler.handler()
        s.content='idcard:12321233'
        msghandler.handler()
        s.content='weather:上海'
        msghandler.handler()
        s.content='admin'
        msghandler.handler()
        s.content='123'
        msghandler.handler()

        s.content = 'exit'
        msghandler.handler()
Ejemplo n.º 11
0
def AddArticle(request):
    """
    Add a new blog.     
    """
    if not request.user.is_authenticated():
        return render_to_response("user/login.html", RequestContext(request))

    if request.method == 'POST':
        title = request.POST.get('title', '')
        body = request.POST.get('body', '')
        status = request.POST.get('status', '')
        abstract = request.POST.get('abstract', '')
        keywords = request.POST.get('keywords', '')
        en_keywords = request.POST.get('en_keywords', '')
        topped = request.POST.get('topped', '')
        price = request.POST.get('price', '')
        attachment = request.POST.get('attachment', '')
        category = request.POST.get('category', '')
        tag = request.POST.get('tag', '')

        myFile = request.FILES.get("attachment", None)
        if not myFile:
            return HttpResponse('Please upload file.')

        destination = open(os.path.join(settings.MEDIA_ROOT, myFile.name),
                           'wb+')
        for chunk in myFile.chunks():
            destination.write(chunk)
        destination.close()

        attachedFile = Attachment()
        attachedFile.name = myFile.name
        attachedFile.attachment = myFile.name
        newFile = attachedFile.save()

        article = Article()
        article.title = title
        article.body = body
        article.status = status
        article.abstract = abstract
        article.keywords = keywords
        article.en_keywords = en_keywords
        article.topped = topped
        article.price = price
        article.attachment = Attachment.objects.filter(name=myFile.name)[0]
        article.category = Category.objects.filter(id=category)[0]
        article.tag = Tag.objects.filter(id=tag)[0]
        article.user = User.objects.filter(id=request.user.id)[0]
        article.save()

        article_id = Article.objects.filter(title=title,
                                            status=article.status,
                                            category=article.category,
                                            tag=article.tag)[0]
        url = "article/" + str(article_id.id)
        return HttpResponseRedirect(url)
Ejemplo n.º 12
0
def add(request):
    user = ''
    nt = time.asctime(time.localtime(time.time()))
    if request.POST:
        if request.POST.has_key('_save'):
            addblog = Article()
            addblog.category = request.POST['category']
            addblog.content = request.POST['content']

            p = r'<p>(<img src=.+\.jpg)'
            pp = re.compile(p)
            pic = pp.findall(addblog.content)
            if pic == []:
                addblog.picture = 0
            else:
                for j in pic:
                    addblog.picture = j + '/>'
                    break
            if (Article.objects.filter(
                    category=request.POST['category']).filter(
                        content=request.POST['content'])):
                addblog.update_time = nt
            else:
                addblog.pub_date = nt
            addblog.title = request.POST['title']
            addblog.save()
            return HttpResponseRedirect("/hello")
        if request.POST.has_key('_addanother'):
            addblog = Article()
            addblog.category = request.POST['category']
            addblog.content = request.POST['content']
            if (Article.objects.filter(
                    category=request.POST['category']).filter(
                        content=request.POST['content'])):
                addblog.update_time = nt
            else:
                addblog.pub_date = nt
            addblog.title = request.POST['title']
            addblog.save()
            return HttpResponseRedirect("/add")
    return render(request, "add.html")
Ejemplo n.º 13
0
    def test_validate_comment(self):
        site = get_current_site().domain
        user = BlogUser.objects.create_superuser(
            email="*****@*****.**",
            username="******",
            password="******")

        self.client.login(username='******', password='******')

        c = Category()
        c.name = "categoryccc"
        c.created_time = timezone.now()
        c.last_mod_time = timezone.now()
        c.save()

        article = Article()
        article.title = "nicetitleccc"
        article.body = "nicecontentccc"
        article.author = user
        article.category = c
        article.type = 'a'
        article.status = 'p'
        article.save()
        s = TextMessage([])
        s.content = "nice"
        rsp = search(s, None)
        rsp = category(None, None)
        self.assertIsNotNone(rsp)
        rsp = recents(None, None)
        self.assertTrue(rsp != 'No articles yet')

        cmd = commands()
        cmd.title = "test"
        cmd.command = "ls"
        cmd.describe = "test"
        cmd.save()

        cmdhandler = CommandHandler()
        rsp = cmdhandler.run('test')
        self.assertIsNotNone(rsp)
        s.source = 'u'
        s.content = 'test'
        msghandler = MessageHandler(s, {})

        # msghandler.userinfo.isPasswordSet = True
        # msghandler.userinfo.isAdmin = True
        msghandler.handler()
        s.content = 'y'
        msghandler.handler()
        s.content = 'idcard:12321233'
        msghandler.handler()
        s.content = 'weather:
Ejemplo n.º 14
0
    def test_validate_register(self):
        self.assertEquals(
            0, len(BlogUser.objects.filter(email='*****@*****.**')))
        response = self.client.post(
            reverse('account:register'), {
                'username': '******',
                'email': '*****@*****.**',
                'password1': 'password123!q@wE#R$T',
                'password2': 'password123!q@wE#R$T',
            })
        self.assertEquals(
            1, len(BlogUser.objects.filter(email='*****@*****.**')))

        self.client.login(username='******', password='******')
        user = BlogUser.objects.filter(email='*****@*****.**')[0]
        user.is_superuser = True
        user.is_staff = True
        user.save()
        delete_view_cache(user.username)
        category = Category()
        category.name = "categoryaaa"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        article = Article()
        article.category = category
        article.title = "nicetitle333"
        article.body = "nicecontentttt"
        article.author = user

        article.type = 'a'
        article.status = 'p'
        article.save()

        response = self.client.get(article.get_admin_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(reverse('account:logout'))
        self.assertIn(response.status_code, [301, 302, 200])

        response = self.client.get(article.get_admin_url())
        self.assertIn(response.status_code, [301, 302, 200])

        response = self.client.post(reverse('account:login'), {
            'username': '******',
            'password': '******'
        })
        self.assertIn(response.status_code, [301, 302, 200])

        response = self.client.get(article.get_admin_url())
        self.assertIn(response.status_code, [301, 302, 200])
Ejemplo n.º 15
0
 def post(self):
     post_parser = reqparse.RequestParser()
     post_parser.add_argument('slug',
                              type=str,
                              required=True,
                              help='the argument cannot be blank')
     post_parser.add_argument('title',
                              type=str,
                              required=True,
                              help='the argument cannot be blank')
     post_parser.add_argument('content',
                              type=str,
                              required=True,
                              help='the argument cannot be blank')
     post_parser.add_argument('category_id',
                              type=blank_and_int,
                              help='the argument cannot be blank')
     post_parser.add_argument('tag_ids',
                              type=int,
                              action='append',
                              help='the argument cannot be blank')
     args = post_parser.parse_args()
     try:
         article = Article()
         article.title = args['title']
         article.slug = args['slug']
         # raw_content -> html
         article.raw_content = args['content']
         article.content = markdown.markdown(
             article.raw_content,
             extensions=[
                 'markdown.extensions.extra',
                 'markdown.extensions.codehilite',
                 'markdown.extensions.toc',
             ])
         article.category = Category.query.get(args['category_id'])
         article.tags = [
             Tag.query.get_or_404(id) for id in args['tag_ids']
         ] if args['tag_ids'] else []
         db.session.add(article)
         db.session.commit()
     except sqlalchemy.exc.IntegrityError:
         db.session.rollback()
         return {'status': 400, 'msg': '字段冲突'}, 400
     except sqlalchemy.exc.InvalidRequestError:
         db.session.rollback()
         return {'status': 400, 'msg': '字段冲突'}, 400
     except LookupError:
         db.session.rollback()
         return {'status': 400, 'msg': '编码冲突'}, 400
     return {'status': 200, 'msg': '新建文章成功'}
Ejemplo n.º 16
0
 def get(self):
     from .models import Blog, Article, Tag, Category
     data = dict(
         date_added=request.args.get('date_added',None),
         date_end=request.args.get('date_end',None),
         name=request.args.get('name',None),
         description=request.args.get('description',None),
         slug=request.args.get('slug',None),
         short_url=request.args.get('short_url',None),
         title=request.args.get('title',None),
         add_to_nav=request.args.get('add_to_nav',None),
         add_sidebar=request.args.get('add_sidebar',None),
         visible=request.args.get('visible',None),
         meta_title=request.args.get('meta_title',None),
         content=request.args.get('content',None),
         template=request.args.get('template',None),
         category=request.args.get('category',None),
         tags=request.args.get('tags',None),
         use_base_template=request.args.get('use_base_template',None),
     )
     blog = Blog.get_current_blog()
     post = Article.query.filter(Article.name==data['name'])\
                         .filter(Article.blog==blog)\
                         .first()
     if post is not None:
         res = 0
     else:
         tags = [x.name for x in Tag.query.all()]
         new_tags = []
         for tag in data['tags']:
             if not tag in tags:
                 t = Tag()
                 t.name = tag
                 new_tags.append(t.save())
         new_tags = new_tags + tags
         post = Article()
         post.tags = new_tags
         post.name = data.get('name')
         post.date_added = data.get('date_added')            
         post.description = data.get('description',None)
         post.slug = data.get('slug',None)
         post.url = data.get('short_url',None)
         post.title = data.get('title',None)            
         post.visible = data.get('visible',None)
         post.meta_title = data.get('meta_title',None)
         post.content = data.get('content',None)
         post.category = data.get('category',None)
         post.save()
         res = 1
     return jsonify(result=res,content=data['content'])
Ejemplo n.º 17
0
    def test_article(self):
        # 这里就简单的测试创建5篇文章
        for i in range(1, 6):
            article = Article()
            article.category = self.category
            article.author = self.superuser
            article.title = 'title' + str(i)
            article.content = 'content' + str(i)
            article.save()

        self.assertEqual(len(Article.objects.all()), 5 + 1)
        article_detail_res = self.client.get(
            Article.objects.first().get_absolute_url())
        self.assertEqual(article_detail_res.status_code, 200)
Ejemplo n.º 18
0
 def get(self):
     from .models import Blog, Article, Tag, Category
     data = dict(
         date_added=request.args.get('date_added', None),
         date_end=request.args.get('date_end', None),
         name=request.args.get('name', None),
         description=request.args.get('description', None),
         slug=request.args.get('slug', None),
         short_url=request.args.get('short_url', None),
         title=request.args.get('title', None),
         add_to_nav=request.args.get('add_to_nav', None),
         add_sidebar=request.args.get('add_sidebar', None),
         visible=request.args.get('visible', None),
         meta_title=request.args.get('meta_title', None),
         content=request.args.get('content', None),
         template=request.args.get('template', None),
         category=request.args.get('category', None),
         tags=request.args.get('tags', None),
         use_base_template=request.args.get('use_base_template', None),
     )
     blog = Blog.get_current_blog()
     post = Article.query.filter(Article.name==data['name'])\
                         .filter(Article.blog==blog)\
                         .first()
     if post is not None:
         res = 0
     else:
         tags = [x.name for x in Tag.query.all()]
         new_tags = []
         for tag in data['tags']:
             if not tag in tags:
                 t = Tag()
                 t.name = tag
                 new_tags.append(t.save())
         new_tags = new_tags + tags
         post = Article()
         post.tags = new_tags
         post.name = data.get('name')
         post.date_added = data.get('date_added')
         post.description = data.get('description', None)
         post.slug = data.get('slug', None)
         post.url = data.get('short_url', None)
         post.title = data.get('title', None)
         post.visible = data.get('visible', None)
         post.meta_title = data.get('meta_title', None)
         post.content = data.get('content', None)
         post.category = data.get('category', None)
         post.save()
         res = 1
     return jsonify(result=res, content=data['content'])
Ejemplo n.º 19
0
    def test_validate_register(self):
        self.assertEquals(0, len(BlogUser.objects.filter(email='*****@*****.**')))
        response = self.client.post(reverse('account:register'), {
            'username': '******',
            'email': '*****@*****.**',
            'password1': 'password123',
            'password2': 'password123',
        })
        self.assertEquals(1, len(BlogUser.objects.filter(email='*****@*****.**')))

        self.client.login(username='******', password='******')
        user = BlogUser.objects.filter(email='*****@*****.**')[0]
        user.is_superuser = True
        user.is_staff = True
        user.save()
        category = Category()
        category.name = "categoryaaa"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        article = Article()
        article.category = category
        article.title = "nicetitle333"
        article.body = "nicecontentttt"
        article.author = user

        article.type = 'a'
        article.status = 'p'
        article.save()

        response = self.client.get(article.get_admin_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(reverse('account:logout'))
        self.assertIn(response.status_code, [301, 302])

        response = self.client.get(article.get_admin_url())
        self.assertIn(response.status_code, [301, 302])

        response = self.client.post(reverse('account:login'), {
            'username': '******',
            'password': '******'
        })
        self.assertIn(response.status_code, [301, 302])

        response = self.client.get(article.get_admin_url())
        self.assertEqual(response.status_code, 200)
Ejemplo n.º 20
0
def publish(request):
    login_value = get_login_value(request)
    if login_value['state'] == 2:
        return HttpResponseRedirect("../home")
    if request.method == 'POST':
        article = Article()
        article.title = request.POST['title']
        article.category = request.POST['category']
        article.introduction = request.POST['description']
        html = request.POST['markdown'].replace('&nbsp;', ' ').replace('\\n', '\n').replace('&lt;', '<').replace('&gt;',
                                                                                                                 '>')
        html = append_script(html)
        article.content = html
        article.save()
        return HttpResponseRedirect("../user")
    else:
        return HttpResponseRedirect("../home")
Ejemplo n.º 21
0
    def test_validate_comment(self):
        site = Site.objects.get_current().domain
        user = BlogUser.objects.create_superuser(
            email="*****@*****.**",
            username="******",
            password="******")

        self.client.login(username='******', password='******')

        category = Category()
        category.name = "categoryccc"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        article = Article()
        article.title = "nicetitleccc"
        article.body = "nicecontentccc"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'
        article.save()

        commenturl = reverse('comments:postcomment',
                             kwargs={'article_id': article.id})

        response = self.client.post(commenturl, {'body': '123ffffffffff'})

        self.assertEqual(response.status_code, 200)

        article = Article.objects.get(pk=article.pk)
        self.assertEqual(len(article.comment_list()), 0)

        response = self.client.post(commenturl, {
            'body': '123ffffffffff',
            'email': user.email,
            'name': user.username
        })

        self.assertEqual(response.status_code, 302)

        article = Article.objects.get(pk=article.pk)
        self.assertEqual(len(article.comment_list()), 1)
Ejemplo n.º 22
0
    def test_validate_article(self):
        site = Site.objects.get_current().domain
        user = BlogUser.objects.get_or_create(email="*****@*****.**",
                                              username="******")[0]
        user.set_password("liangliangyy")
        user.save()
        response = self.client.get(user.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        category = Category()
        category.name = "category"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        tag = Tag()
        tag.name = "nicetag"
        tag.save()

        article = Article()
        article.title = "nicetitle"
        article.body = "nicecontent"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'

        article.save()
        self.assertEqual(0, article.tags.count())
        article.tags.add(tag)
        article.save()
        self.assertEqual(1, article.tags.count())

        response = self.client.get(article.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(tag.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(category.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        from DjangoBlog.spider_notify import SpiderNotify
        SpiderNotify.baidu_notify([article.get_full_url()])
Ejemplo n.º 23
0
def addArticle(request):
	categories=Category.objects.all();
	if request.method=='POST':
		form=ArticleForm(request.POST,request.FILES)
		if form.is_valid():
			title=form.cleaned_data['title'];summary=form.cleaned_data['summary'];paragraph=form.cleaned_data['paragraph']
			caption=form.cleaned_data['caption'];link=form.cleaned_data['link'];linkText=form.cleaned_data['linkText'];
			image=form.cleaned_data['image'];category=form.cleaned_data['category'];
			envoi=True
			#creation of the section object
			article=Article(title=title,summary=summary,paragraph=paragraph,caption=caption,image=image,link=link,linkText=linkText)
			article.category=category;
			article.save();
			return home(request);
			#return page(request,category);
	else:
		addArticle=True;
		displayForm=True;
		form=ArticleForm()
	return render(request, 'blog/blogForm.html',locals())
Ejemplo n.º 24
0
def publish(request):
    logging_status = get_logging_status(request)
    if logging_status['login_state'] == BLOGSETTING.UNLOGGED:
        return HttpResponseRedirect("../home")
    if request.method == 'POST':
        article = Article()
        article.title = request.POST['title']
        article.category = request.POST['category']
        article.introduction = request.POST['description']
        html = request.POST['html'].replace('&nbsp;', ' ').replace('\\n', '\n') \
            .replace('&lt;', '<').replace('&gt;', '>')
        html = append_script(html)

        markdown = request.POST['markdown'].replace('&nbsp;', ' ').replace('\\n', '\n') \
            .replace('&lt;', '<').replace('&gt;', '>')
        article.markdown = markdown
        article.content = html
        article.save()
        return HttpResponseRedirect("../user")
    else:
        return HttpResponseRedirect("../home")
Ejemplo n.º 25
0
def new_article():
    try:
        title = request.json.get('title')
        slug = request.json.get('slug')
        category_id = request.json.get('category')
        tag_ids = request.json.get('tags')
        content = request.json.get('content')
    except AttributeError:
        abort(400)
    if title and content:
        article = Article()
        article.title = title
        article.slug = slug
        try:
            article.category = Category.query.get(category_id)
        except Exception:
            pass
        article.tags = [Tag.query.get(int(id)) for id in tag_ids]
        article.content = content
        db.session.add(article)
        db.session.commit()
        return jsonify({'status': 200})
    return jsonify({'status': 404}), 404
Ejemplo n.º 26
0
    def test_validate_article(self):
        site = Site.objects.get_current().domain
        user = BlogUser.objects.get_or_create(email="*****@*****.**",
                                              username="******")[0]
        user.set_password("systemsgt.cn")
        user.is_staff = True
        user.is_superuser = True
        user.save()
        response = self.client.get(user.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        category = Category()
        category.name = "category"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        tag = Tag()
        tag.name = "nicetag"
        tag.save()

        article = Article()
        article.title = "nicetitle"
        article.body = "nicecontent"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'

        article.save()
        self.assertEqual(0, article.tags.count())
        article.tags.add(tag)
        article.save()
        self.assertEqual(1, article.tags.count())

        response = self.client.get(article.get_absolute_url())
        self.assertEqual(response.status_code, 200)
        from DjangoBlog.spider_notify import SpiderNotify
        SpiderNotify.notify(article.get_absolute_url())
        response = self.client.get(tag.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(category.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get('/search', {'q': 'django'})
        self.assertEqual(response.status_code, 200)
        s = load_articletags(article)
        self.assertIsNotNone(s)

        p = Paginator(Article.objects.all(), 2)
        s = load_pagination_info(p.page(1), '', '')
        self.assertIsNotNone(s)

        p = Paginator(Tag.objects.all(), 2)
        s = load_pagination_info(p.page(1), '分类标签归档', 'tagname')
        self.assertIsNotNone(s)

        p = Paginator(BlogUser.objects.all(), 2)
        s = load_pagination_info(p.page(1), '作者文章归档', 'username')
        self.assertIsNotNone(s)

        p = Paginator(Category.objects.all(), 2)
        s = load_pagination_info(p.page(1), '分类目录归档', 'categoryname')
        self.assertIsNotNone(s)

        f = BlogSearchForm()
        f.search()
        self.client.login(username='******', password='******')
        from DjangoBlog.spider_notify import SpiderNotify
        SpiderNotify.baidu_notify([article.get_full_url()])
        rsp = self.client.get('/refresh/')
        self.assertEqual(rsp.status_code, 200)
        from blog.templatetags.blog_tags import gravatar_url, gravatar
        u = gravatar_url('*****@*****.**')
        u = gravatar('*****@*****.**')
Ejemplo n.º 27
0
def add(request,*arg,**kwarg):
	uid=int(-1)
	userInfos=common.Users(request,uid)
	currentUser=userInfos["currentuser"]

	categoryList=common.categoryList(currentUser.id)
	channelList=Channel.objects.all()

	if request.POST.has_key('ok'):
		channel1Id=int(utility.GetPostData(request,'channel1',0))
		channel2Id=int(utility.GetPostData(request,'channel1',0))
		cateId=int(utility.GetPostData(request,'category'))
		category=Category.objects.get(id=utility.GetPostData(request,'category'))
		
		title = utility.GetPostData(request,'title')
		pic = utility.GetPostData(request,'pic')
		tags=utility.GetPostData(request,'tags')
		summary=utility.GetPostData(request,'summary')
		content = utility.GetPostData(request,'content')
		status = utility.GetPostData(request,'status')
		
		ishome=utility.GetPostData(request,'ishome')
		isrecommend = utility.GetPostData(request,'isrecommend')
		istop = utility.GetPostData(request,'istop')
		isoriginal=utility.GetPostData(request,'isoriginal')
		cancomment = utility.GetPostData(request,'cancomment')
		password = utility.GetPostData(request,'password')

		if summary=="":
			tempContent=utility.RemoveTags(content)
			summary=tempContent[0:200] if len(tempContent)>200 else tempContent
		else:
			summary=utility.RemoveTags(summary)

		articleInfo=Article(category=category)

		articleInfo.channel1_id=channel1Id
		articleInfo.channel2_id=channel2Id
		articleInfo.category=category
		articleInfo.title = title
		articleInfo.pic=pic
		articleInfo.tags=tags
		articleInfo.summary=summary
		articleInfo.content = content
		articleInfo.createtime=datetime.datetime.now()
		articleInfo.views=0
		articleInfo.comments=0
		articleInfo.goods=0
		articleInfo.bads=0
		articleInfo.status=1 if status else 0
		articleInfo.user_id=currentUser.id
		articleInfo.username=currentUser.username

		articleInfo.ishome=1 if ishome else 0
		articleInfo.isrecommend=1 if isrecommend else 0
		articleInfo.istop=1 if istop else 0
		articleInfo.isoriginal=1 if isoriginal else 0
		articleInfo.cancomment=1 if cancomment else 0
		articleInfo.password=password

		articleInfo.save()

		#更新分类统计信息 不是默认分类并且是发布的文章
		if category.id !=1 and status:
			category.articles+=1
			category.save()

		#更新用户文章统计信息
		currentBlog=userInfos["currentblog"]
		currentBlog.articles+=1
		currentBlog.save()

		if channel1Id>0:
			channel1=Channel.objects.get(id=channel1Id)
			channel1.articles+=1
			channel1.save()
		if channel2Id>0:
			channel2=Channel.objects.get(id=channel2Id)
			channel2.articles+=1
			channel2.save()

		return HttpResponseRedirect('/%d/' %request.user.id)
	else:
		
		articleInfo=Article()

		return utility.my_render_to_response(request,"pub/articleedit.html",locals())
Ejemplo n.º 28
0
    def test_validate_article(self):
        site = get_current_site().domain
        user = BlogUser.objects.get_or_create(email="*****@*****.**",
                                              username="******")[0]
        user.set_password("superstrongz")
        user.is_staff = True
        user.is_superuser = True
        user.save()
        response = self.client.get(user.get_absolute_url())
        self.assertEqual(response.status_code, 200)
        response = self.client.get('admin/admin/logentry/')
        s = SideBar()
        s.sequence = 1
        s.name = 'test'
        s.content = 'test content'
        s.is_enable = True
        s.save()

        category = Category()
        category.name = "category"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        tag = Tag()
        tag.name = "nicetag"
        tag.save()

        article = Article()
        article.title = "nicetitle"
        article.body = "nicecontent"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'

        article.save()
        self.assertEqual(0, article.tags.count())
        article.tags.add(tag)
        article.save()
        self.assertEqual(1, article.tags.count())

        for i in range(20):
            article = Article()
            article.title = "nicetitle" + str(i)
            article.body = "nicetitle" + str(i)
            article.author = user
            article.category = category
            article.type = 'a'
            article.status = 'p'
            article.save()
            article.tags.add(tag)
            article.save()
        response = self.client.get(article.get_absolute_url())
        self.assertEqual(response.status_code, 200)
        from DjangoBlog.spider_notify import SpiderNotify
        SpiderNotify.notify(article.get_absolute_url())
        response = self.client.get(tag.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(category.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get('/search', {'q': 'django'})
        self.assertEqual(response.status_code, 200)
        s = load_articletags(article)
        self.assertIsNotNone(s)

        rsp = self.client.get('/refresh')
        self.assertEqual(rsp.status_code, 302)

        self.client.login(username='******', password='******')
        rsp = self.client.get('/refresh')
        self.assertEqual(rsp.status_code, 200)

        response = self.client.get(reverse('blog:archives'))
        self.assertEqual(response.status_code, 200)

        p = Paginator(Article.objects.all(), 2)
        self.__check_pagination__(p, '', '')

        p = Paginator(Article.objects.filter(tags=tag), 2)
        self.__check_pagination__(p, '分类标签归档', tag.slug)

        p = Paginator(Article.objects.filter(author__username='******'),
                      2)
        self.__check_pagination__(p, '作者文章归档', 'superstrongz')

        p = Paginator(Article.objects.filter(category=category), 2)
        self.__check_pagination__(p, '分类目录归档', category.slug)

        f = BlogSearchForm()
        f.search()
        self.client.login(username='******', password='******')
        from DjangoBlog.spider_notify import SpiderNotify
        SpiderNotify.baidu_notify([article.get_full_url()])

        from blog.templatetags.blog_tags import gravatar_url, gravatar
        u = gravatar_url('*****@*****.**')
        u = gravatar('*****@*****.**')
Ejemplo n.º 29
0
    def test_validate_article(self):
        site = Site.objects.get_current().domain
        user = BlogUser.objects.get_or_create(email="*****@*****.**",
                                              username="******")[0]
        user.set_password("liangliangyy")
        user.save()
        response = self.client.get(user.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        category = Category()
        category.name = "category"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        tag = Tag()
        tag.name = "nicetag"
        tag.save()

        article = Article()
        article.title = "nicetitle"
        article.body = "nicecontent"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'

        article.save()
        self.assertEqual(0, article.tags.count())
        article.tags.add(tag)
        article.save()
        self.assertEqual(1, article.tags.count())

        response = self.client.get(article.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(tag.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(category.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get('/search', {'q': 'django'})
        self.assertEqual(response.status_code, 200)
        s = load_articletags(article)
        self.assertIsNotNone(s)

        p = Paginator(Article.objects.all(), 2)
        s = load_pagination_info(p.page(1), '', '')
        self.assertIsNotNone(s)

        p = Paginator(Tag.objects.all(), 2)
        s = load_pagination_info(p.page(1), '分类标签归档', 'tagname')
        self.assertIsNotNone(s)

        p = Paginator(BlogUser.objects.all(), 2)
        s = load_pagination_info(p.page(1), '作者文章归档', 'username')
        self.assertIsNotNone(s)

        p = Paginator(Category.objects.all(), 2)
        s = load_pagination_info(p.page(1), '分类目录归档', 'categoryname')
        self.assertIsNotNone(s)

        f = BlogSearchForm()
        f.search()
        from DjangoBlog.spider_notify import SpiderNotify
        SpiderNotify.baidu_notify([article.get_full_url()])
Ejemplo n.º 30
0
    def test_validate_article(self):
        # site = get_current_site().domain
        user = BlogUser.objects.get_or_create(email="*****@*****.**", username="******")[0]
        user.set_password("liangliangyy")
        user.is_staff = True
        user.is_superuser = True
        user.save()
        response = self.client.get(user.get_absolute_url())
        self.assertEqual(response.status_code, 200)
        response = self.client.get('/admin/servermanager/emailsendlog/')
        response = self.client.get('admin/admin/logentry/')
        s = SideBar()
        s.sequence = 1
        s.name = 'test'
        s.content = 'test content'
        s.is_enable = True
        s.save()

        category = Category()
        category.name = "category"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        tag = Tag()
        tag.name = "nicetag"
        tag.save()

        article = Article()
        article.title = "nicetitle"
        article.body = "nicecontent"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'

        article.save()
        self.assertEqual(0, article.tags.count())
        article.tags.add(tag)
        article.save()
        self.assertEqual(1, article.tags.count())

        for i in range(20):
            article = Article()
            article.title = "nicetitle" + str(i)
            article.body = "nicetitle" + str(i)
            article.author = user
            article.category = category
            article.type = 'a'
            article.status = 'p'
            article.save()
            article.tags.add(tag)
            article.save()
        response = self.client.get(article.get_absolute_url())
        self.assertEqual(response.status_code, 200)
        SpiderNotify.notify(article.get_absolute_url())
        response = self.client.get(tag.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(category.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get('/search', {'q': 'django'})
        self.assertEqual(response.status_code, 200)
        s = load_articletags(article)
        self.assertIsNotNone(s)

        rsp = self.client.get('/refresh')
        self.assertEqual(rsp.status_code, 302)

        self.client.login(username='******', password='******')
        rsp = self.client.get('/refresh')
        self.assertEqual(rsp.status_code, 200)

        response = self.client.get(reverse('blog:archives'))
        self.assertEqual(response.status_code, 200)

        p = Paginator(Article.objects.all(), 2)
        self.__check_pagination__(p, '', '')

        p = Paginator(Article.objects.filter(tags=tag), 2)
        self.__check_pagination__(p, '分类标签归档', tag.slug)

        p = Paginator(Article.objects.filter(author__username='******'), 2)
        self.__check_pagination__(p, '作者文章归档', 'liangliangyy')

        p = Paginator(Article.objects.filter(category=category), 2)
        self.__check_pagination__(p, '分类目录归档', category.slug)

        f = BlogSearchForm()
        f.search()
        self.client.login(username='******', password='******')

        SpiderNotify.baidu_notify([article.get_full_url()])

        # u = gravatar_url('*****@*****.**')
        u = gravatar('*****@*****.**')

        link = Links(sequence=1, name="lylinux", link='https://wwww.lylinux.net')
        link.save()
        response = self.client.get('/links.html')
        self.assertEqual(response.status_code, 200)
Ejemplo n.º 31
0
    def test_validate_comment(self):
        site = get_current_site().domain
        user = BlogUser.objects.create_superuser(
            email="*****@*****.**",
            username="******",
            password="******")

        self.client.login(username='******', password='******')

        category = Category()
        category.name = "categoryccc"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        article = Article()
        article.title = "nicetitleccc"
        article.body = "nicecontentccc"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'
        article.save()

        commenturl = reverse('comments:postcomment',
                             kwargs={'article_id': article.id})

        response = self.client.post(commenturl, {'body': '123ffffffffff'})

        self.assertEqual(response.status_code, 200)

        article = Article.objects.get(pk=article.pk)
        self.assertEqual(len(article.comment_list()), 0)

        response = self.client.post(commenturl, {
            'body': '123ffffffffff',
            'email': user.email,
            'name': user.username
        })

        self.assertEqual(response.status_code, 302)

        article = Article.objects.get(pk=article.pk)
        self.assertEqual(len(article.comment_list()), 1)
        parent_comment_id = article.comment_list()[0].id

        response = self.client.post(
            commenturl, {
                'body': '''
                                        # Title1  
        
        ```python
        import os
        ```  
        
        [url](https://www.lylinux.net/)  
          
        [ddd](http://www.baidu.com)  
        
        
        ''',
                'email': user.email,
                'name': user.username,
                'parent_comment_id': parent_comment_id
            })

        self.assertEqual(response.status_code, 302)

        article = Article.objects.get(pk=article.pk)
        self.assertEqual(len(article.comment_list()), 2)
        comment = Comment.objects.get(id=parent_comment_id)
        tree = parse_commenttree(article.comment_list(), comment)
        self.assertEqual(len(tree), 1)
        data = show_comment_item(comment, True)
        self.assertIsNotNone(data)
        s = get_max_articleid_commentid()
        self.assertIsNotNone(s)
Ejemplo n.º 32
0
    def test_validate_article(self):
        site = Site.objects.get_current().domain
        user = BlogUser.objects.get_or_create(email="*****@*****.**", username="******")[0]
        user.set_password("liangliangyy")
        user.is_staff = True
        user.is_superuser = True
        user.save()
        response = self.client.get(user.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        s = SideBar()
        s.sequence = 1
        s.name = 'test'
        s.content = 'test content'
        s.is_enable = True
        s.save()

        category = Category()
        category.name = "category"
        category.created_time = datetime.datetime.now()
        category.last_mod_time = datetime.datetime.now()
        category.save()

        tag = Tag()
        tag.name = "nicetag"
        tag.save()

        article = Article()
        article.title = "nicetitle"
        article.body = "nicecontent"
        article.author = user
        article.category = category
        article.type = 'a'
        article.status = 'p'

        article.save()
        self.assertEqual(0, article.tags.count())
        article.tags.add(tag)
        article.save()
        self.assertEqual(1, article.tags.count())

        for i in range(20):
            article = Article()
            article.title = "nicetitle" + str(i)
            article.body = "nicetitle" + str(i)
            article.author = user
            article.category = category
            article.type = 'a'
            article.status = 'p'
            article.save()
            article.tags.add(tag)
            article.save()
        response = self.client.get(article.get_absolute_url())
        self.assertEqual(response.status_code, 200)
        from DjangoBlog.spider_notify import SpiderNotify
        SpiderNotify.notify(article.get_absolute_url())
        response = self.client.get(tag.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(category.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get('/search', {'q': 'django'})
        self.assertEqual(response.status_code, 200)
        s = load_articletags(article)
        self.assertIsNotNone(s)

        rsp = self.client.get('/refresh')
        self.assertEqual(rsp.status_code, 302)

        self.client.login(username='******', password='******')
        rsp = self.client.get('/refresh')
        self.assertEqual(rsp.status_code, 200)

        response = self.client.get(reverse('blog:archives'))
        self.assertEqual(response.status_code, 200)

        p = Paginator(Article.objects.all(), 2)
        self.__check_pagination__(p, '', '')

        p = Paginator(Article.objects.filter(tags=tag), 2)
        self.__check_pagination__(p, '分类标签归档', tag.slug)

        p = Paginator(Article.objects.filter(author__username='******'), 2)
        self.__check_pagination__(p, '作者文章归档', 'liangliangyy')

        p = Paginator(Article.objects.filter(category=category), 2)
        self.__check_pagination__(p, '分类目录归档', category.slug)

        f = BlogSearchForm()
        f.search()
        self.client.login(username='******', password='******')
        from DjangoBlog.spider_notify import SpiderNotify
        SpiderNotify.baidu_notify([article.get_full_url()])

        from blog.templatetags.blog_tags import gravatar_url, gravatar
        u = gravatar_url('*****@*****.**')
        u = gravatar('*****@*****.**')
from blog.models import Article, Category

cat = Category(name="blog")
cat.save()

art = Article(title="My first blog lol", author="Me lol", content="This is a blog it's so blog lolg")
art.category = cat
art.save()

art = Article(title="Anotherone", author="Me lol", content="Has someone seen my pie it's cherry tasting?")
art.category = cat
art.save()

art = Article(title="Life is sad", author="Me lol", content="For when the rain is hard and the dead leaves on the ground smell like the harsh reality of the lives of forgotten souls of the past, my pie is gone and so am I.")
art.category = cat
art.save()