diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml index afa3c0e..6997c10 100644 --- a/.github/workflows/django.yml +++ b/.github/workflows/django.yml @@ -66,4 +66,8 @@ jobs: run: | python manage.py makemigrations python manage.py migrate - python manage.py test + coverage run manage.py test + coverage xml + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index d695c46..0000000 --- a/.travis.yml +++ /dev/null @@ -1,38 +0,0 @@ -dist: xenial -language: python -sudo: required -python: - - "3.6" - - "3.7" - - "3.8" - -services: - - mysql -env: - global: - - DJANGO_SETTINGS_MODULE="travis_test.travis_settings" -branches: - only: - - master -# command to install dependencies -before_install: - - sudo apt-get update - - sudo apt-get install python-dev python3-dev libmysqlclient-dev -y - - sudo cp $TRAVIS_BUILD_DIR/travis_test/mysql.cnf /etc/mysql/conf.d/ - - sudo service mysql restart -install: - - pip install -r requirements.txt - - pip install python-coveralls - - pip install coverage codecov -before_script: - - mysql -e 'CREATE DATABASE `djangoblog` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */;' - - python manage.py makemigrations - - python manage.py migrate - - python manage.py collectstatic --noinput - - python manage.py compress --force -# command to run tests -script: - - coverage run manage.py test -after_success: - - coveralls - - codecov \ No newline at end of file diff --git a/DjangoBlog/settings.py b/DjangoBlog/settings.py index 8623787..078425e 100644 --- a/DjangoBlog/settings.py +++ b/DjangoBlog/settings.py @@ -302,3 +302,8 @@ if os.environ.get('DJANGO_ELASTICSEARCH_HOST'): 'hosts': os.environ.get('DJANGO_ELASTICSEARCH_HOST') }, } + HAYSTACK_CONNECTIONS = { + 'default': { + 'ENGINE': 'DjangoBlog.elasticsearch_backend.ElasticSearchEngine', + }, + } diff --git a/blog/tests.py b/blog/tests.py index 74cc9e3..a34fa78 100644 --- a/blog/tests.py +++ b/blog/tests.py @@ -76,6 +76,12 @@ class ArticleTest(TestCase): article.save() article.tags.add(tag) article.save() + from blog.documents import ELASTICSEARCH_ENABLED + if ELASTICSEARCH_ENABLED: + call_command("build_index") + response = self.client.get('/search', {'q': 'nicetitle'}) + self.assertEqual(response.status_code, 200) + response = self.client.get(article.get_absolute_url()) self.assertEqual(response.status_code, 200) from DjangoBlog.spider_notify import SpiderNotify @@ -133,6 +139,18 @@ class ArticleTest(TestCase): response = self.client.get('/links.html') self.assertEqual(response.status_code, 200) + rsp = self.client.get('/refresh') + self.assertEqual(rsp.status_code, 200) + + response = self.client.get('/feed/') + self.assertEqual(response.status_code, 200) + + response = self.client.get('/sitemap.xml') + self.assertEqual(response.status_code, 200) + from DjangoBlog.utils import block_code + block = block_code("`python`", 'python') + + def __check_pagination__(self, p, type, value): s = load_pagination_info(p.page(1), type, value) self.assertIsNotNone(s) @@ -148,23 +166,6 @@ class ArticleTest(TestCase): response = self.client.get(s['next_url']) self.assertEqual(response.status_code, 200) - def test_validate_feed(self): - user = BlogUser.objects.get_or_create( - email="liangliangyy12@gmail.com", - username="liangliangyy")[0] - user.set_password("liangliangyy") - user.save() - self.client.login(username='liangliangyy', password='liangliangyy') - - rsp = self.client.get('/refresh') - self.assertEqual(rsp.status_code, 403) - - response = self.client.get('/feed/') - self.assertEqual(response.status_code, 200) - - response = self.client.get('/sitemap.xml') - self.assertEqual(response.status_code, 200) - def test_image(self): import requests rsp = requests.get( diff --git a/comments/tests.py b/comments/tests.py index a6d0ca7..49d4424 100644 --- a/comments/tests.py +++ b/comments/tests.py @@ -98,3 +98,6 @@ class CommentsTest(TestCase): self.assertIsNotNone(data) s = get_max_articleid_commentid() self.assertIsNotNone(s) + + from comments.utils import send_comment_email + send_comment_email(comment) diff --git a/requirements.txt b/requirements.txt index 91f8f29..ff7c092 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ coverage==5.5 -Django==3.2.2 +Django==3.2.4 django-appconf==1.0.4 django-autoslug==1.9.8 django-compressor==2.4.1 @@ -8,10 +8,10 @@ django-haystack==3.0 django-ipware==3.0.2 django-mdeditor==0.1.18 django-uuslug==1.2.0 -elasticsearch==7.12.1 +elasticsearch==7.13.1 elasticsearch-dsl==7.3.0 gevent==21.1.2 -greenlet==0.4.17 +greenlet==1.1.0 ipaddress==1.0.23 isort==5.8.0 jieba==0.42.1 @@ -24,7 +24,7 @@ mysqlclient==2.0.3 Pillow==8.2.0 pycparser==2.20 Pygments==2.9.0 -pylint==2.8.2 +pylint==2.8.3 pyparsing==2.4.7 python-dateutil==2.8.1 python-logstash==0.4.6 diff --git a/travis_test/__init__.py b/travis_test/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/travis_test/mysql.cnf b/travis_test/mysql.cnf deleted file mode 100644 index e6f1645..0000000 --- a/travis_test/mysql.cnf +++ /dev/null @@ -1,9 +0,0 @@ -[mysqld] -character-set-server=utf8mb4 -collation-server=utf8mb4_unicode_ci - -[client] -default-character-set = utf8mb4 - -[mysql] -default-character-set = utf8mb4 \ No newline at end of file diff --git a/travis_test/travis_settings.py b/travis_test/travis_settings.py deleted file mode 100644 index b008fa4..0000000 --- a/travis_test/travis_settings.py +++ /dev/null @@ -1,19 +0,0 @@ -from DjangoBlog.settings import * - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'djangoblog', - 'USER': 'travis', - 'PASSWORD': '', - 'HOST': '127.0.0.1', - 'PORT': 3306, - } -} - -CACHES = { - 'default': { - 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', - 'LOCATION': 'django_cache', - } -}