Skip to content

Commit d67206c

Browse files
committed
测试travis
1 parent 3742457 commit d67206c

File tree

11 files changed

+411
-53
lines changed

11 files changed

+411
-53
lines changed

.travis.yml

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
language: python
2+
python:
3+
- "3.5"
4+
- "3.6"
5+
services:
6+
- mysql
7+
env:
8+
global:
9+
- DJANGO_SETTINGS_MODULE="test.travis_settings"
10+
matrix:
11+
- DJANGO="Django==1.8"
12+
- DJANGO="Django==1.9"
13+
- DJANGO="Django==1.10"
14+
branches:
15+
only:
16+
- master
17+
# command to install dependencies
18+
install:
19+
- pip install -r test/requirements.txt
20+
- pip install "$DJANGO"
21+
- pip install python-coveralls
22+
- pip install coverage
23+
before_script:
24+
- mysql -e 'CREATE DATABASE `djangoblog` /*!40100 DEFAULT CHARACTER SET utf8 */;'
25+
- python manage.py makemigrations accounts
26+
- python manage.py makemigrations blog
27+
- python manage.py makemigrations comments
28+
- python manage.py makemigrations oauth
29+
- python manage.py migrate
30+
- python manage.py collectstatic --noinput
31+
- python manage.py compress --force
32+
# command to run tests
33+
script:
34+
- coverage run manage.py test
35+
after_success:
36+
- coveralls

DjangoBlog/urls.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@
3838
url(r'', include('comments.urls', namespace='comment', app_name='comments')),
3939
url(r'', include('accounts.urls', namespace='account', app_name='accounts')),
4040
url(r'', include('oauth.urls', namespace='oauth', app_name='oauth')),
41-
url(r'^sitemap\.xml$', cache_page(60 * 60 * 10)(sitemap), {'sitemaps': sitemaps},
41+
url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps},
4242
name='django.contrib.sitemaps.views.sitemap'),
43-
url(r'^feed/$', cache_page(60 * 60 * 10)(DjangoBlogFeed())),
43+
url(r'^feed/$', DjangoBlogFeed()),
4444

4545
url(r'^search', include('haystack.urls'), name='search'),
4646
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

accounts/views.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ def form_valid(self, form):
6363

6464
if form.is_valid():
6565
from DjangoBlog.utils import cache
66-
cache.clear()
66+
if cache != None:
67+
cache.clear()
6768
auth.login(self.request, form.get_user())
6869

6970
return HttpResponseRedirect('/')

blog/middleware.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import time
1717
from ipware.ip import get_real_ip
18-
from django.core.cache import cache
18+
from DjangoBlog.utils import cache
1919

2020

2121
class OnlineMiddleware(object):

blog/templatetags/blog_tags.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import urllib
2626
from comments.models import Comment
2727
from DjangoBlog.utils import cache_decorator, logger
28-
from django.core.cache import cache
28+
from DjangoBlog.utils import cache
2929

3030
register = template.Library()
3131

blog/tests.py

+42-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,44 @@
1-
from django.test import TestCase
1+
from django.test import Client, RequestFactory, TestCase
2+
from blog.models import Article, Category, Tag
3+
from django.contrib.auth import get_user_model
4+
from django.contrib.sites.models import Site
5+
import datetime
6+
27

38
# Create your tests here.
9+
10+
class ArticleTest(TestCase):
11+
def setUp(self):
12+
self.client = Client()
13+
self.factory = RequestFactory()
14+
15+
def test_validate_article(self):
16+
from accounts.models import BlogUser
17+
site = Site.objects.get_current().domain
18+
user = BlogUser()
19+
user.email = "liangliangyy@gmail.com"
20+
user.username = "liangliangyy"
21+
user.password = "liangliangyy"
22+
user.save()
23+
response = self.client.get(user.get_absolute_url())
24+
self.assertEqual(response.status_code, 200)
25+
26+
category = Category()
27+
category.name = "category"
28+
category.created_time = datetime.datetime.now()
29+
category.last_mod_time = datetime.datetime.now()
30+
category.save()
31+
32+
response = self.client.get(category.get_absolute_url())
33+
self.assertEqual(response.status_code, 200)
34+
35+
article = Article()
36+
article.title = "nicetitle"
37+
article.body = "nicecontent"
38+
article.author = user
39+
article.category = category
40+
article.type = 'a'
41+
article.status = 'p'
42+
article.save()
43+
response = self.client.get(article.get_absolute_url())
44+
self.assertEqual(response.status_code, 200)

blog/views.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,13 @@ def get_context_data(self, **kwargs):
9797
articleid = int(self.kwargs[self.pk_url_kwarg])
9898

9999
comment_form = CommentForm()
100-
u = self.request.user
100+
user = self.request.user
101101

102-
if self.request.user.is_authenticated:
102+
if user.is_authenticated and not user.is_anonymous and user.email and user.username:
103103
comment_form.fields.update({
104104
'email': forms.CharField(widget=forms.HiddenInput()),
105105
'name': forms.CharField(widget=forms.HiddenInput()),
106106
})
107-
user = self.request.user
108107
comment_form.fields["email"].initial = user.email
109108
comment_form.fields["name"].initial = user.username
110109

@@ -254,7 +253,7 @@ def refresh_memcache(request):
254253

255254
if request.user.is_superuser:
256255
from DjangoBlog.utils import cache
257-
cache.clear()
256+
if cache != None: cache.clear()
258257
return HttpResponse("ok")
259258
else:
260259
from django.http import HttpResponseForbidden

comments/tests.py

+2-43
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,3 @@
1-
from django.test import Client, RequestFactory, TestCase
2-
from blog.models import Article, Category, Tag
3-
from django.contrib.auth import get_user_model
4-
from django.contrib.sites.models import Site
5-
import datetime
1+
from django.test import TestCase
62

7-
8-
# Create your tests here.
9-
10-
class ArticleTest(TestCase):
11-
def setUp(self):
12-
self.client = Client()
13-
self.factory = RequestFactory()
14-
15-
def test_validate_article(self):
16-
from accounts.models import BlogUser
17-
site = Site.objects.get_current().domain
18-
user = BlogUser()
19-
user.email = "liangliangyy@gmail.com"
20-
user.username = "liangliangyy"
21-
user.password = "liangliangyy"
22-
user.save()
23-
response = self.client.get(user.get_absolute_url())
24-
self.assertEqual(response.status_code, 200)
25-
26-
category = Category()
27-
category.name = "category"
28-
category.created_time = datetime.datetime.now()
29-
category.last_mod_time = datetime.datetime.now()
30-
category.save()
31-
32-
response = self.client.get(category.get_absolute_url())
33-
self.assertEqual(response.status_code, 200)
34-
35-
article = Article()
36-
article.title = "nicetitle"
37-
article.body = "nicecontent"
38-
article.author = user
39-
article.category = category
40-
article.type = 'a'
41-
article.status = 'p'
42-
article.save()
43-
response = self.client.get(article.get_absolute_url())
44-
self.assertEqual(response.status_code, 200)
3+
# Create your tests here.

test/__init__.py

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import pymysql
2+
pymysql.install_as_MySQLdb()

test/requirements.txt

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Django
2+
django-autoslug
3+
django-haystack
4+
django-pagedown
5+
django-uuslug
6+
jieba
7+
markdown2
8+
Pillow
9+
PyMySQL
10+
python-slugify
11+
requests
12+
Unidecode
13+
Whoosh
14+
mistune
15+
pygments
16+
django-ipware
17+
django_compressor

0 commit comments

Comments
 (0)