Example #1
0
def edit(post_id):
    post = Post.query.filter_by(id=post_id).first_or_404()
    form = PostForm(obj=post)
    if form.validate_on_submit():
        original_image = post.image
        form.populate_obj(post)
        if form.image.has_file():
            image = request.files.get('image')
            try:
                filename = uploaded_images.save(image)
            except:
                flash("The image was not uploaded")
            if filename:
                post.image = filename
        else:
            post.image = original_image
        if form.new_category.data:
            new_category = Category(form.new_category.data)
            db.session.add(new_category)
            db.session.flush()
            post.category = new_category
        db.session.commit()
        return redirect(url_for('article', slug=post.slug))
    return render_template('blog/post.html', form=form, post=post, action="edit")
Example #2
0
def post():
    form = PostForm()
    error = ''
    if form.validate_on_submit():
        image = request.files.get('image')
        filename = None
        try:
            filename = uploaded_images.save(image)
        except:
            flash('File not uploaded')
        if form.new_category.data:
            new_category = Category(form.new_category.data)
            db.session.add(new_category)
            db.session.flush()
            category = new_category
        elif form.category.data:
            category_id = form.category.get_pk(form.category.data)
            category = Category.query.filter_by(id=category_id).first()
        else:
            category = None
        blog = Blog.query.first()
        author = Author.query.filter_by(username=session['username']).first()
        slug = slugify(form.title.data)
        post = Post(blog, author, form.title.data, form.body.data, category,
                    filename, slug)
        db.session.add(post)
        db.session.flush()

        if post.id:
            db.session.commit()
            flash('Post Created')
            return redirect(url_for('article', slug=slug))
        else:
            db.session.rollback()
            error = 'Error creating post'
    return render_template('blog/post.html', form=form, error=error)
Example #3
0
def post():
    form = PostForm()
    if form.validate_on_submit():
        
        # Process image
        image = request.files.get('image')
        filename = None
        try:
            filename = uploaded_images.save(image)
        except:
            flash('The image was not uploaded')
        
        # Handle category data
        if form.new_category.data:
            new_category = Category(form.new_category.data)
            db.session.add(new_category)
            db.session.flush()
            category = new_category
        elif form.category.data:
            category_id = form.category.get_pk(form.category.data)
            category = Category.query.filter_by(id=category_id).first()
        else:
            category = None
            
        blog = Blog.query.first()
        author = Author.query.filter_by(username=session['username']).first()
        title = form.title.data
        body = form.body.data
        slug = slugify(title)
        post = Post(blog, author, title, body, category, filename, slug)
        db.session.add(post)
        db.session.commit()
        
        return redirect(url_for('article', slug=slug))
        
    return render_template('blog/post.html', form=form, action="new")
Example #4
0
def new_category(title):
    cat = Category(title=title)
    cat.save()
    return cat
Example #5
0
 def setUp(self):
     self.c = Category(title="MyTitle")
     self.c.save()
    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('*****@*****.**')
Example #7
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)
Example #8
0
 def test_string_representation(self):
     expected = "A Category"
     c1 = Category(name=expected)
     actual = str(c1)
     self.assertEqual(expected, actual)
Example #9
0
def parse_md_to_article(file_path):
    """
    解析 md文件
    :param file_path: md文件路径
    :return: Article 文章对象
    """
    with open(file_path) as f:
        print(file_path)
        content = f.read()
        head = re.findall(r"---[.\\n\s\S]*---", content)
        # print(re.findall(r"---[.\\n\s\S]*---", content))

        title = re.findall(
            r"^title: .*$", content, re.M)[0].split(": ")[1]

        if not title:
            print(file_path, "-------")
        created_time = re.findall(
            r"^date: .*$", content, re.M)[0].split(": ")[1]

        tags = re.findall(
            r"^tags: .*$", content, re.M)[0].split(": ")[1]
        tags = list(filter(None, re.split(r"[\[ ,\]]", tags, re.M)))
        try:
            category_id = re.findall(
                r"^category: .*$", content, re.M)[0].split(": ")[1]
        except IndexError:
            category_id = re.findall(
                r"^categories: .*$", content, re.M)[0].split(": ")[1]

        body = content.split(head[0])[1].strip()

        abstract = body.split("<!--more-->")[0]

        last_modified_time = created_time
        status = 'p'
        views = 0
        likes = 0
        topped = 0

        article = None
        try:
            article = Article.objects.get(title=title)
        except Exception:
            pass

        if not article:
            article = Article()

        article.title = title

        print("----------", title)
        if title is 'Android Debug Bridge':
            print("true")

        if created_time:
            p = parse_datetime(created_time.strip()).replace(tzinfo=utc)
            naive = p
            article.created_time = naive
            article.last_modified_time = naive
        else:
            print("----------error create time is null:", title)

        article.body = body
        article.abstract = abstract
        article.status = status
        article.views = views
        article.likes = likes
        article.topped = topped
        article.save()

        save_tags(tags=tags)
        for tag in tags:
            article.tags.add(Tag.objects.get(name=tag))
        c = None

        save_category(category_id)
        try:
            c = Category.objects.get(name=category_id)
        except Exception:
            pass
        if not c:
            c = Category(name=category_id)

        article.category_id = c.id

        # print(article.title, article.created_time, article.tags, article.category_id)

    return article
Example #10
0
# encoding=utf8
from django import template
from blog.models import Category

register = template.Library()

@register.simple_tag()
def leaf_cat_list():
    return Category.objects.filter(Parent__isnull=True)
cat = Category()
cat.CHILDS
Example #11
0
    def create(self, form):
        category = Category(category=form.category.data,
                            slug=Service.slugify(form.category.data))

        return category.put()
import random

from urllib.request import urlopen

from sqlalchemy.exc import SQLAlchemyError

from blog import db

from blog.models import Category
from blog.models import Comment
from blog.models import Post

categories_count = 5

for number in range(categories_count):
    category_for_add = Category(f'Category number {number + 1}',
                                f'#tag{number + 1}')
    db.session.add(category_for_add)

posts_url = "https://jsonplaceholder.typicode.com/posts"
comments_url = "https://jsonplaceholder.typicode.com/comments"

posts = json.loads(urlopen(posts_url).read())
comments = json.loads(urlopen(comments_url).read())

for post in posts:
    category_number = random.randint(0, categories_count)
    tag = None
    if category_number:
        tag = f'#tag{random.randint(1, categories_count)}'
    post_for_add = Post(user_id=post['userId'],
                        title=post['title'],
Example #13
0
 def category(self, instance):
     return Category()
Example #14
0
 def setUpClass(cls):
     cls.app = app.test_client()
     db.create_all()
     test_category = Category("Test Category")
     db.session.add(test_category)
     db.session.commit()
Example #15
0
 def setUp(self):
     self.c = Category("Test Category")
Example #16
0
from blog.models import Category, Tag, Article
from django.utils import timezone
from django.contrib.auth.models import User

c = Category(name='category test')
c.save()
t = Tag(name='tag test')
t.save()

# user = User.objects.get(username='******')
# c = Category.objects.get(name='category test')
#
# p = Article(title='title test', body='body test', created_time=timezone.now(), modified_time=timezone.now(), category=c, author=user)
# p.save()
#
# print(Category.objects.all())
# print(Tag.objects.all())
# print(Article.objects.all())
# print(User.objects.all())
Example #17
0
def post():
    form = PostForm()
    tags_field = request.values.get('tags_field', '')

    if form.validate_on_submit():
        image_id = None

        if form.image.data:
            f = form.image.data
            image_id = str(uuid.uuid4())
            file_name = image_id + '.png'
            file_path = os.path.join(BLOG_POST_IMAGES_PATH, file_name)
            Image.open(f).save(file_path)

            _image_resize(BLOG_POST_IMAGES_PATH, image_id, 600, 'lg')
            _image_resize(BLOG_POST_IMAGES_PATH, image_id, 300, 'sm')

        if form.new_category.data:
            new_category = Category(form.new_category.data)
            db.session.add(new_category)
            db.session.flush()
            category = new_category
        else:
            category = form.category.data

        if form.new_goverment.data:
            new_goverment = Goverment(form.new_goverment.data)
            db.session.add(new_goverment)
            db.session.flush()
            goverment = new_goverment
        else:
            goverment = form.goverment.data

        author = Author.query.get(session['id'])
        title = form.title.data.strip()
        body = form.body.data.strip()
        post = Post(
            author=author,
            title=title,
            body=body,
            image=image_id,
            category=category,
            goverment=goverment,
        )

        _save_tags(post, tags_field)

        db.session.add(post)
        db.session.commit()

        slug = slugify(str(post.id) + '-' + post.title)
        post.slug = slug
        db.session.commit()

        flash('Article posted')
        return redirect(url_for('.article', slug=slug))

    return render_template('blog/post.html',
                           form=form,
                           action="new",
                           tags_field=tags_field)
Example #18
0
def fake_category(catnum):
    with myapp.app_context():
        for i in range(catnum):
            category = Category(name=fake.word())
            db.session.add(category)
        db.session.commit()
Example #19
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)
Example #20
0
def update_posts(diff_info, update_all=False):
    """添加或修改文章"""
    repo = PostRepo(
        current_app.config["REPO_DIR"],
        current_app.config["REPO_SSHKEY"],
        current_app.config["REPO_BRANCH"],
    )

    if update_all:
        updated_blobs, removed_blobs = repo.get_all_posts()
    else:
        updated_blobs, removed_blobs = repo.get_diff_posts(
            ref=diff_info['ref'],
            before_sha=diff_info['before'],
            after_sha=diff_info['after'],
        )

    # 更新文章
    updated_paths = {i.path for i in updated_blobs}
    updated_posts = Post.query.filter(Post.path.in_(updated_paths)).all()
    updated_posts = {i.path: i for i in updated_posts}
    for blob in updated_blobs:
        post = updated_posts.get(blob.path) or Post(path=blob.path)

        # 拉取文章信息
        data = repo.get_post_detail(blob)

        # 获取 Author 对象
        author_email = data["author"]["email"]
        author = User.query.filter_by(email=author_email).one_or_none() \
            or User(email=author_email)
        author.name = data["author"]["name"]

        # 获取文章的 Meta-data 数据
        content = data["content"]
        html_content = md_converter.convert(content)
        meta_data = md_converter.Meta

        # 获取 Category 对象
        category = meta_data["category"][0]
        category = Category.query.filter_by(name=category).one_or_none() \
            or Category(name=category)

        # 获取 Label 对象列表
        labels = set()
        for label in meta_data["labels"]:
            label = Label.query.filter_by(name=label).one_or_none() \
                or Label(name=label)
            labels.add(label)

        # 更新文章
        post.title = data["title"]
        post.content = content
        post.html_content = html_content
        post.update_at = data["update_time"]
        post.create_at = data["create_time"]
        post.author = author
        post.category = category
        post.labels = labels

        db.session.add(post)
        print(f"{blob.name} is updated.")     # noqa

    # 删除文章
    removed_paths = {i.path for i in removed_blobs}
    removed_posts = Post.query.filter(Post.path.in_(removed_paths)).all()
    removed_posts = {i.path: i for i in removed_posts}
    for blob in removed_blobs:
        post = removed_posts.get(blob.path)
        if post:
            post.status = 2
            print(f"{blob.name} is removed.")
        else:
            print(f"{blob.name} don't exist.")

    db.session.commit()

    # 在 redis 中存储最后更新时间
    redis.set("last_update_at", datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
Example #21
0
def add_category(name):
    c = Category(name=name)
    c.save()
Example #22
0
 def setUp(self):
     user = User.objects.create_user('erudev', '*****@*****.**', 'password')
     Category.objects.bulk_create(
         [Category(name='cate_%s' % i, owner=user) for i in range(10)])
Example #23
0
File: views.py Project: Freeaes/CTF
def UploadArticle(request):
    if request.method == "GET":
        return render(request, 'blog/upload.html', {})
    elif request.method == "POST":
        try:
            obj = request.FILES.get('fafafa')
            import os
            # 上传文件的文件名 
            BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
            f = open(os.path.join(BASE_DIR, 'static', 'upload', obj.name), 'wb')
            for chunk in obj.chunks():
                f.write(chunk)
            f.close()
            article = yaml.load(file(os.path.join(BASE_DIR, 'static', 'upload', obj.name)))
            print article

            article = Article(title=article["title"], content=article["content"], date_time=article["date_time"],category=Category(id=1),author=User(id=1))
            article.save()
            return HttpResponse("上传成功!")
        except Exception as e:
            print e
            return HttpResponse("上传失败!")
Example #24
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 = timezone.now()
        category.last_mod_time = timezone.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])
Example #25
0
 def setUp(self):
     self.c = Category(title="MyTitle")
     self.c.save()
     self.b = Blog(title="BlogTitle", category=self.c)
     self.b.save()
Example #26
0
 def test_get_absolute_url(self):
     c = Category()
     c.save()
     # This will also fail if the urlconf is not defined.
     self.assertEquals(c.get_absolute_url(), '/blog/categories/%s/' % c.id)
Example #27
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.get(reverse('account:login'))
        self.assertEqual(response.status_code, 200)

        pub_key = response.context['form'].initial['pub_key']
        pubobj = Cipher_pkcs1_v1_5.new(RSA.importKey(pub_key))
        pw = base64.b64encode(pubobj.encrypt('qwer!@#$ggg'.encode()))
        response = self.client.post(
            reverse('account:login'), {
                'username': '******',
                'password': pw.decode(),
                'pub_key': pub_key
            })
        self.assertIn(response.status_code, [301, 302, 200])

        response = self.client.get(article.get_admin_url())
        self.assertIn(response.status_code, [301, 302, 200])
Example #28
0
    description='Leader of PNL, Mayor of Sibiu',
    image='img/iohannis.png'
)

can2 = Candidate(
    name='Vasilica Viorica Dăncilă',
    description='President of the PSD',
    image='img/dancila.png'
)

can1.save()
can2.save()
sesh1 = VotingSession(
    name="Presidential Elections",
    year=2019,
    country='Romania'
)
c1 = Category(
    name='Software Development'
)

c1.save()

post1 = Post(
    title='Lorem Ipsum',
    body='Dummy text',
    categories=c1
)

post1.save()
Example #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("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('*****@*****.**')
Example #30
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()])