diff --git a/.gitignore b/.gitignore index e358d00..1ebbd6c 100644 --- a/.gitignore +++ b/.gitignore @@ -73,4 +73,5 @@ baidu_verify_FlHL7cUyC9.html BingSiteAuth.xml cb9339dbe2ff86a5aa169d28dba5f615.txt werobot_session - +django.jpg +uploads/ \ No newline at end of file diff --git a/DjangoBlog/tests.py b/DjangoBlog/tests.py new file mode 100644 index 0000000..a9d63c6 --- /dev/null +++ b/DjangoBlog/tests.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python +# encoding: utf-8 + + +""" +@version: ?? +@author: liangliangyy +@license: MIT Licence +@contact: liangliangyy@gmail.com +@site: https://www.lylinux.net/ +@software: PyCharm +@file: tests.py +@time: 2017/10/25 下午10:16 +""" + +from django.test import Client, RequestFactory, TestCase +from blog.models import Article, Category, Tag +from django.contrib.auth import get_user_model +from django.contrib.sites.models import Site +from django.core.urlresolvers import reverse +import datetime +from DjangoBlog.utils import * + + +class DjangoBlogTest(TestCase): + def setUp(self): + pass + + def test_utils(self): + md5 = get_md5('test') + self.assertIsNotNone(md5) + c = CommonMarkdown.get_markdown(''' + # Title1 + + ```python + import os + ``` + + [url](https://www.lylinux.org/) + + [ddd](http://www.baidu.com) + + + ''') + self.assertIsNotNone(c) + d = { + 'd': 'key1', + 'd2': 'key2' + } + data = parse_dict_to_url(d) + self.assertIsNotNone(data) + + diff --git a/blog/tests.py b/blog/tests.py index ad255a2..1e88e98 100644 --- a/blog/tests.py +++ b/blog/tests.py @@ -7,6 +7,9 @@ from django.core.paginator import Paginator from blog.templatetags.blog_tags import load_pagination_info, load_articletags import datetime from accounts.models import BlogUser +from django.core.files.uploadedfile import SimpleUploadedFile +from django.conf import settings +import os # Create your tests here. @@ -20,6 +23,8 @@ class ArticleTest(TestCase): site = Site.objects.get_current().domain user = BlogUser.objects.get_or_create(email="liangliangyy@gmail.com", username="liangliangyy")[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) @@ -50,7 +55,8 @@ class ArticleTest(TestCase): 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) @@ -80,8 +86,11 @@ class ArticleTest(TestCase): f = BlogSearchForm() f.search() + self.client.login(username='liangliangyy', password='liangliangyy') from DjangoBlog.spider_notify import SpiderNotify SpiderNotify.baidu_notify([article.get_full_url()]) + rsp = self.client.get('/refresh/') + self.assertEqual(rsp.status_code, 200) def test_validate_feed(self): user = BlogUser.objects.get_or_create(email="liangliangyy12@gmail.com", username="liangliangyy")[0] @@ -93,3 +102,22 @@ class ArticleTest(TestCase): response = self.client.get('/sitemap.xml') self.assertEqual(response.status_code, 200) + + def test_image(self): + import requests + rsp = requests.get('https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=2909203028,3998034658&fm=96') + imagepath = os.path.join(settings.BASE_DIR, 'django.jpg') + with open(imagepath, 'wb') as file: + file.write(rsp.content) + with open(imagepath, 'rb') as file: + imgfile = SimpleUploadedFile('django.jpg', file.read(), content_type='image/jpg') + form_data = {'django.jpg': imgfile} + rsp = self.client.post('/upload', form_data, follow=True) + + self.assertEqual(rsp.status_code, 200) + """ + data = SimpleUploadedFile(imagepath, b'file_content', content_type='image/jpg') + rsp = self.client.post('/upload', {'django.jpg': data}) + self.assertEqual(rsp.status_code, 200) + SimpleUploadedFile() + """ diff --git a/blog/views.py b/blog/views.py index ea915c9..9c9fe13 100644 --- a/blog/views.py +++ b/blog/views.py @@ -219,6 +219,8 @@ def fileupload(request): basepath = r'/var/www/resource/{type}/{timestr}'.format( type='files' if not isimage else'image', timestr=timestr) + if settings.TESTING: + basepath = settings.BASE_DIR + '/uploads' url = 'https://resource.lylinux.net/{type}/{timestr}/{filename}'.format( type='files' if not isimage else'image', timestr=timestr, filename=filename) if not os.path.exists(basepath): diff --git a/comments/tests.py b/comments/tests.py index fd3a768..fe54671 100644 --- a/comments/tests.py +++ b/comments/tests.py @@ -5,6 +5,8 @@ from django.contrib.sites.models import Site from django.core.urlresolvers import reverse import datetime from accounts.models import BlogUser +from comments.templatetags.comments_tags import * +from DjangoBlog.utils import get_max_articleid_commentid # Create your tests here. @@ -59,3 +61,36 @@ class CommentsTest(TestCase): 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.org/) + + [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) diff --git a/servermanager/Api/commonapi.py b/servermanager/Api/commonapi.py index 369f804..468bb55 100644 --- a/servermanager/Api/commonapi.py +++ b/servermanager/Api/commonapi.py @@ -31,10 +31,10 @@ class TuLing(): return rsp.content def getdata(self, content): - requrl = self.__build_req_url(content) - res = self.UserAgent(requrl).decode('utf-8') - logger.info(res) try: + requrl = self.__build_req_url(content) + res = self.UserAgent(requrl).decode('utf-8') + jsons = json.loads(res, encoding='utf-8') if str(jsons["code"]) == '100000': return jsons["text"] diff --git a/servermanager/robot.py b/servermanager/robot.py index 2865ba1..e91fbb1 100644 --- a/servermanager/robot.py +++ b/servermanager/robot.py @@ -196,6 +196,8 @@ class MessageHandler(): return "输入管理员密码" if self.userinfo.isAdmin and not self.userinfo.isPasswordSet: passwd = settings.WXADMIN + if settings.TESTING: + passwd='123' if passwd.upper() == get_md5(get_md5(info)).upper(): self.userinfo.isPasswordSet = True self.savesession() diff --git a/servermanager/tests.py b/servermanager/tests.py index 2529afe..f3aceb0 100644 --- a/servermanager/tests.py +++ b/servermanager/tests.py @@ -7,6 +7,7 @@ from blog.models import Category, Article from .robot import search, category, recents from werobot.messages.messages import TextMessage from .robot import MessageHandler, CommandHandler +from servermanager.Api.commonapi import TuLing # Create your tests here. @@ -15,6 +16,11 @@ class ServerManagerTest(TestCase): self.client = Client() self.factory = RequestFactory() + def test_tuling(self): + t = TuLing() + content = t.getdata('test') + self.assertIsNotNone(content) + def test_validate_comment(self): site = Site.objects.get_current().domain user = BlogUser.objects.create_superuser(email="liangliangyy1@gmail.com", @@ -64,3 +70,11 @@ class ServerManagerTest(TestCase): 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() \ No newline at end of file