From 5de5b51d821902220d40de4856788524c0c2a59c Mon Sep 17 00:00:00 2001 From: giginet Date: Sat, 11 Feb 2017 23:38:03 +0900 Subject: [PATCH 01/18] Remove unused setting --- src/kawaz/local_settings.sample.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/kawaz/local_settings.sample.py b/src/kawaz/local_settings.sample.py index 484485b0..a4269642 100644 --- a/src/kawaz/local_settings.sample.py +++ b/src/kawaz/local_settings.sample.py @@ -138,12 +138,6 @@ 'activities.notifiers.oauth.twitter.TwitterActivityNotifier', os.path.join(CONFIG_ROOT, 'activities', 'notifiers', 'credentials_twitter_kawazinfo.json')), - ('hipchat_kawaz_all', - 'kawaz.core.activities.notifiers.hipchat.HipChatActivityNotifier', - 'mytoken', - 'roomid', - {'from_name': 'Kawazポータル', 'color': 'green', 'is_notify': True} - ), ('slack_kawaz_general', 'kawaz.core.activities.notifiers.slack.SlackActivityNotifier', 'https://kawaz.slack.com/token', @@ -153,7 +147,6 @@ ) ACTIVITIES_DEFAULT_NOTIFIERS = ( 'twitter_kawaz_info', - 'hipchat_kawaz_all', ) # utils From e6c93bc31e2d4adf4c4482b45a68353dac35fa7f Mon Sep 17 00:00:00 2001 From: giginet Date: Sat, 11 Feb 2017 23:43:30 +0900 Subject: [PATCH 02/18] Use MySQL on Travis CI --- .travis.yml | 2 ++ config/ci_settings.py | 14 ++++++++++++++ src/kawaz/settings.py | 1 + 3 files changed, 17 insertions(+) create mode 100644 config/ci_settings.py diff --git a/.travis.yml b/.travis.yml index dc04b45b..c3320147 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,8 @@ matrix: before_install: - ./utils/decrypt-files $password_for_secret_files - git submodule update --init --recursive + - mv config/ci_settings.py src/kawaz/local_settings.py + - mysql -uroot -e "create database test_kawaz_travis" install: - pip install tox - pip install coverage coveralls diff --git a/config/ci_settings.py b/config/ci_settings.py new file mode 100644 index 00000000..e3e98967 --- /dev/null +++ b/config/ci_settings.py @@ -0,0 +1,14 @@ +# テスト用データーベースの設定 +DATABASES = { + 'TEST': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'test_kawaz_travis', + 'USER': 'root', + 'PASSWORD': '', + 'HOST': 'localhost', + 'PORT': '', + 'OPTIONS': { + 'connect_timeout': 60, + }, + } +} diff --git a/src/kawaz/settings.py b/src/kawaz/settings.py index 30a063fd..bf0388b5 100644 --- a/src/kawaz/settings.py +++ b/src/kawaz/settings.py @@ -324,6 +324,7 @@ # django-debug-toolbar def show_debug_toolbar(request): + return False from django.conf import settings if settings.TESTING: return False From 0c8281ccd2440847103f11349d1672b9d33c4fbb Mon Sep 17 00:00:00 2001 From: giginet Date: Sat, 11 Feb 2017 23:54:58 +0900 Subject: [PATCH 03/18] Use mysqlclient --- config/requirements-production.txt | 4 ++-- config/requirements-test.txt | 1 + src/kawaz/__init__.py | 11 ----------- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/config/requirements-production.txt b/config/requirements-production.txt index 33355bd0..efb0f538 100644 --- a/config/requirements-production.txt +++ b/config/requirements-production.txt @@ -1,3 +1,3 @@ -PyMySQL<0.7.0 +mysqlclient gunicorn -git+https://github.com/kawazrepos/pylibmc.git@master#egg=pylibmc +pylibmc diff --git a/config/requirements-test.txt b/config/requirements-test.txt index 77a62341..ce93510f 100644 --- a/config/requirements-test.txt +++ b/config/requirements-test.txt @@ -1,3 +1,4 @@ factory_boy>=2.7 coverage faker +mysqlclient diff --git a/src/kawaz/__init__.py b/src/kawaz/__init__.py index 58389a72..91539768 100644 --- a/src/kawaz/__init__.py +++ b/src/kawaz/__init__.py @@ -1,13 +1,2 @@ -#! -*- coding: utf-8 -*- -# -# -# - __version__ = (0, 1, 0) VERSION = ".".join(map(str, __version__)) - -try: - import pymysql - pymysql.install_as_MySQLdb() -except: - pass From 0458e492f356b91fd9382e535d1597518ee92d3c Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 12 Feb 2017 00:00:28 +0900 Subject: [PATCH 04/18] Add default DB --- .travis.yml | 2 +- config/ci_settings.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index c3320147..92490ead 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ before_install: - ./utils/decrypt-files $password_for_secret_files - git submodule update --init --recursive - mv config/ci_settings.py src/kawaz/local_settings.py - - mysql -uroot -e "create database test_kawaz_travis" + - mysql -uroot -e "create database kawaz_travis" install: - pip install tox - pip install coverage coveralls diff --git a/config/ci_settings.py b/config/ci_settings.py index e3e98967..0b432256 100644 --- a/config/ci_settings.py +++ b/config/ci_settings.py @@ -1,8 +1,8 @@ # テスト用データーベースの設定 DATABASES = { - 'TEST': { + 'default': { 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'test_kawaz_travis', + 'NAME': 'kawaz_travis', 'USER': 'root', 'PASSWORD': '', 'HOST': 'localhost', @@ -10,5 +10,5 @@ 'OPTIONS': { 'connect_timeout': 60, }, - } + }, } From 7debc9d7dc54db5739ecab9675e5582e1b4b9739 Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 12 Feb 2017 00:26:40 +0900 Subject: [PATCH 05/18] Add --noinput --- config/tox.ini | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/tox.ini b/config/tox.ini index 71a68a44..5797cac5 100644 --- a/config/tox.ini +++ b/config/tox.ini @@ -12,11 +12,11 @@ deps= commands= {envbindir}/python manage.py init_database --noinput --no-fetch-entries {envbindir}/python manage.py compilemessages - {envbindir}/python manage.py test activities -v 2 - {envbindir}/python manage.py test google_calendar -v 2 + {envbindir}/python manage.py test --noinput activities -v 2 + {envbindir}/python manage.py test --noinput google_calendar -v 2 {envbindir}/coverage run \ --source=src/kawaz --rcfile=config/coveragerc \ - manage.py test kawaz -v 2 [] + manage.py test kawaz --noinput -v 2 [] {envbindir}/coverage report {envbindir}/pip freeze From 590940519d400ad2e3666d5bddd3c9553b405c55 Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 12 Feb 2017 00:33:33 +0900 Subject: [PATCH 06/18] Avoid hard cording of activity tests --- src/lib/django-activities/activities/tests/test_models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/django-activities/activities/tests/test_models.py b/src/lib/django-activities/activities/tests/test_models.py index b6cc22f5..f0d8c044 100644 --- a/src/lib/django-activities/activities/tests/test_models.py +++ b/src/lib/django-activities/activities/tests/test_models.py @@ -157,7 +157,7 @@ def test_get_related_activities(self): # it should not contain itself # the order of appearance is also important self.assertQuerysetEqual(activities, - (5, 4, 2, 1), + (activity5.pk, activity4.pk, activity2.pk, activity1.pk), transform=lambda x: x.pk) def test_get_previous_activities(self): @@ -189,7 +189,7 @@ def test_get_previous_activities(self): self.assertEqual(len(activities), 2) # it should not contain newer activities self.assertQuerysetEqual(activities, - (2, 1), + (activity2.pk, activity1.pk), transform=lambda x: x.pk) def test_get_next_activities(self): @@ -221,7 +221,7 @@ def test_get_next_activities(self): self.assertEqual(len(activities), 2) # it should not contain older activities self.assertQuerysetEqual(activities, - (5, 4), + (activity5.pk, activity4.pk), transform=lambda x: x.pk) From afaa3f42d3a49e45cae88204a0322d58a620d9da Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 12 Feb 2017 00:47:52 +0900 Subject: [PATCH 07/18] Set order as pk --- src/lib/django-activities/activities/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/django-activities/activities/models.py b/src/lib/django-activities/activities/models.py index 142eda5b..a51cb0b2 100644 --- a/src/lib/django-activities/activities/models.py +++ b/src/lib/django-activities/activities/models.py @@ -70,7 +70,7 @@ class Activity(models.Model): objects = ActivityManager() class Meta: - ordering = ('-created_at',) + ordering = ('-pk',) verbose_name = _('Activity') verbose_name_plural = _('Activities') From 1e91e338b6f2c8c2cfb29f93648d06a6b1f07c39 Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 12 Feb 2017 01:49:53 +0900 Subject: [PATCH 08/18] Set storage_engine --- config/ci_settings.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/ci_settings.py b/config/ci_settings.py index 0b432256..2288e1ff 100644 --- a/config/ci_settings.py +++ b/config/ci_settings.py @@ -9,6 +9,8 @@ 'PORT': '', 'OPTIONS': { 'connect_timeout': 60, + 'init_command' : 'SET foreign_key_checks = 0;SET time_zone = "+00:00"', }, + 'STORAGE_ENGINE': 'INNODB', }, } From 537ad71e2c7bf4fdb70d83e1740a63f91b762b80 Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 26 Mar 2017 17:37:27 +0900 Subject: [PATCH 09/18] Fix products test --- .../apps/products/tests/test_templatetags.py | 6 +- src/kawaz/apps/products/tests/test_views.py | 63 +++++++++---------- 2 files changed, 34 insertions(+), 35 deletions(-) diff --git a/src/kawaz/apps/products/tests/test_templatetags.py b/src/kawaz/apps/products/tests/test_templatetags.py index 09fe0e86..b6f8a8a4 100644 --- a/src/kawaz/apps/products/tests/test_templatetags.py +++ b/src/kawaz/apps/products/tests/test_templatetags.py @@ -149,17 +149,17 @@ def test_get_products_by_categories(self): p1 = ProductFactory(categories=(c1,)) p2 = ProductFactory(categories=[c0, c1]) - categories0 = Category.objects.filter(pk__in=(1,)) + categories0 = Category.objects.filter(pk__in=(c0.pk,)) products0 = self._render_template(categories=categories0) self.assertEqual(len(products0), 2) self.assertEqual(products0[0], p0) self.assertEqual(products0[1], p2) - categories1 = Category.objects.filter(pk__in=(2,)) + categories1 = Category.objects.filter(pk__in=(c1.pk,)) products1 = self._render_template(categories=categories1) self.assertEqual(products1[0], p1) self.assertEqual(products1[1], p2) self.assertEqual(len(products1), 2) - categories2 = Category.objects.filter(pk__in=(1, 2)) + categories2 = Category.objects.filter(pk__in=(c0.pk, c1.pk)) products2 = self._render_template(categories=categories2) self.assertEqual(len(products2), 3) self.assertEqual(products2[0], p0) diff --git a/src/kawaz/apps/products/tests/test_views.py b/src/kawaz/apps/products/tests/test_views.py index b218808d..3e76719c 100644 --- a/src/kawaz/apps/products/tests/test_views.py +++ b/src/kawaz/apps/products/tests/test_views.py @@ -225,22 +225,21 @@ def test_members_can_create_product(self): with open(self.image_file, 'rb') as f: self.product_kwargs['thumbnail'] = f r = self.client.post(url, self.product_kwargs) - e = Product.objects.get(pk=i+1) - self.assertRedirects(r, e.get_absolute_url()) + product = Product.objects.last() + self.assertRedirects(r, product.get_absolute_url()) self.assertEqual(Product.objects.count(), 1) - self.assertEqual(e.pk, i+1) - self.assertEqual(e.title, 'かわずたんファンタジー') + self.assertEqual(product.title, 'かわずたんファンタジー') # administratorsに指定されたユーザーは管理者として登録されている - administrators_qs = e.administrators.all() + administrators_qs = product.administrators.all() for administrator in self.administrators: self.assertIn(administrator, administrators_qs) # 作成者自身も管理者に追加される self.assertIn(user, administrators_qs) - self.assertEqual(e.administrators.count(), + self.assertEqual(product.administrators.count(), len(self.administrators) + 1) self.assertIn('messages', r.cookies, "No messages are appeared") # 重複を避けるため削除する - e.delete() + product.delete() def test_set_last_modifier_via_create_view(self): """ @@ -252,12 +251,12 @@ def test_set_last_modifier_via_create_view(self): with open(self.image_file, 'rb') as f: self.product_kwargs['thumbnail'] = f r = self.client.post(url, self.product_kwargs) - e = Product.objects.get(pk=i+1) - self.assertRedirects(r, e.get_absolute_url()) + product = Product.objects.last() + self.assertRedirects(r, product.get_absolute_url()) self.assertEqual(Product.objects.count(), 1) - self.assertEqual(e.last_modifier, user) + self.assertEqual(product.last_modifier, user) # 重複を避けるため削除する - e.delete() + product.delete() def test_member_can_create_screenshot_via_product_form(self): """ @@ -280,15 +279,15 @@ def test_member_can_create_screenshot_via_product_form(self): 'screenshots-0-image': f2, }) r = self.client.post(url, self.product_kwargs) - e = Product.objects.get(pk=i+1) - self.assertRedirects(r, e.get_absolute_url()) + product = Product.objects.last() + self.assertRedirects(r, product.get_absolute_url()) self.assertEqual(Screenshot.objects.count(), 1) - obj = Screenshot.objects.get(pk=i+1) + release = Screenshot.objects.last() self.assertIn('messages', r.cookies, "No messages are appeared") # 重複を避けるため削除する(プロダクトの削除も忘れずに) - obj.product.delete() - obj.delete() + release.product.delete() + release.delete() def test_member_can_create_url_release_via_product_form(self): """ @@ -307,18 +306,18 @@ def test_member_can_create_url_release_via_product_form(self): 'url_releases-0-url': 'http://play.google.com', }) r = self.client.post(url, self.product_kwargs) - e = Product.objects.get(pk=i+1) - self.assertRedirects(r, e.get_absolute_url()) + product = Product.objects.last() + self.assertRedirects(r, product.get_absolute_url()) self.assertEqual(URLRelease.objects.count(), 1) - obj = URLRelease.objects.get(pk=i+1) - self.assertEqual(obj.label, 'Android版') - self.assertEqual(obj.version, 'Version3.14') - self.assertEqual(obj.platform, self.platform) + release = URLRelease.objects.last() + self.assertEqual(release.label, 'Android版') + self.assertEqual(release.version, 'Version3.14') + self.assertEqual(release.platform, self.platform) self.assertIn('messages', r.cookies, "No messages are appeared") # 重複を避けるため削除する(プロダクトの削除も忘れずに) - obj.product.delete() - obj.delete() + release.product.delete() + release.delete() def test_member_can_create_package_release_via_product_form(self): """ @@ -344,18 +343,18 @@ def test_member_can_create_package_release_via_product_form(self): 'package_releases-0-file_content': f2, }) r = self.client.post(url, self.product_kwargs) - e = Product.objects.get(pk=i+1) - self.assertRedirects(r, e.get_absolute_url()) + product = Product.objects.last() + self.assertRedirects(r, product.get_absolute_url()) self.assertEqual(PackageRelease.objects.count(), 1) - obj = PackageRelease.objects.get(pk=i+1) - self.assertEqual(obj.label, 'Android版') - self.assertEqual(obj.version, 'Version3.14') - self.assertEqual(obj.platform, self.platform) + release = PackageRelease.objects.last() + self.assertEqual(release.label, 'Android版') + self.assertEqual(release.version, 'Version3.14') + self.assertEqual(release.platform, self.platform) self.assertIn('messages', r.cookies, "No messages are appeared") # 重複を避けるため削除する(プロダクトの削除も忘れずに) - obj.product.delete() - obj.delete() + release.product.delete() + release.delete() class ProductUpdateViewTestCase(ViewTestCaseBase): From 916f426f531082565e172a6fb85b6409a59e5cc9 Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 26 Mar 2017 18:01:48 +0900 Subject: [PATCH 10/18] Improve tests of announcements --- .../apps/announcements/tests/test_views.py | 75 ++++++++++--------- 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/src/kawaz/apps/announcements/tests/test_views.py b/src/kawaz/apps/announcements/tests/test_views.py index 3f0f7139..83cc4910 100644 --- a/src/kawaz/apps/announcements/tests/test_views.py +++ b/src/kawaz/apps/announcements/tests/test_views.py @@ -189,9 +189,10 @@ def test_staff_user_can_create_via_create_view(self): 'body' : 'サードインパクトだ!', 'silently' : True }) - self.assertRedirects(r, '/announcements/1/') + announcement = Announcement.objects.last() + self.assertRedirects(r, '/announcements/{}/'.format(announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.get(pk=1) + e = Announcement.objects.last() self.assertEqual(e.title, '【悲報】データ消えました') self.assertTrue('messages' in r.cookies, "No messages are appeared") @@ -217,9 +218,10 @@ def test_set_last_modifier_user(self): 'body' : 'サードインパクトだ!', 'silently' : True }) - self.assertRedirects(r, '/announcements/1/') + announcement = Announcement.objects.last() + self.assertRedirects(r, '/announcements/{}/'.format(announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.get(pk=1) + e = Announcement.objects.last() self.assertEqual(e.author, self.nerv) self.assertEqual(e.last_modifier, self.nerv) @@ -239,9 +241,10 @@ def test_staffs_cannot_modify_author_id(self): 'silently' : True, 'author' : other.pk }) - self.assertRedirects(r, '/announcements/1/') + announcement = Announcement.objects.last() + self.assertRedirects(r, '/announcements/{}/'.format(announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.get(pk=1) + e = Announcement.objects.last() self.assertEqual(e.author, self.nerv) self.assertNotEqual(e.author, other) self.assertTrue('messages' in r.cookies, "No messages are appeared") @@ -265,29 +268,29 @@ def setUp(self): def test_anonymous_user_can_not_view_announcement_update_view(self): '''Tests anonymous user can not view AnnouncementUpdateView''' - r = self.client.get('/announcements/1/update/') - self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/1/update/') + r = self.client.get('/announcements/{}/update/'.format(self.announcement.pk)) + self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/{}/update/'.format(self.announcement.pk)) def test_wille_user_can_not_view_announcement_update_view(self): '''Tests wille user can not view AnnouncementUpdateView''' self.assertTrue(self.client.login(username=self.wille, password='password')) - r = self.client.get('/announcements/1/update/') - self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/1/update/') + r = self.client.get('/announcements/{}/update/'.format(self.announcement.pk)) + self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/{}/update/'.format(self.announcement.pk)) def test_general_user_can_not_view_announcement_update_view(self): ''' Tests general user can view AnnouncementUpdateView ''' self.assertTrue(self.client.login(username=self.other, password='password')) - r = self.client.get('/announcements/1/update/') - self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/1/update/') + r = self.client.get('/announcements/{}/update/'.format(self.announcement.pk)) + self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/{}/update/'.format(self.announcement.pk)) def test_staff_can_view_announcement_update_view(self): ''' Tests staff members can view AnnouncementUpdateView ''' self.assertTrue(self.client.login(username=self.nerv, password='password')) - r = self.client.get('/announcements/1/update/') + r = self.client.get('/announcements/{}/update/'.format(self.announcement.pk)) self.assertTemplateUsed(r, 'announcements/announcement_form.html') self.assertTrue('object' in r.context_data) self.assertEqual(r.context_data['object'], self.announcement) @@ -297,13 +300,13 @@ def test_anonymous_user_can_not_update_via_update_view(self): Tests anonymous user can not update announcement via AnnouncementUpdateView It will redirect to LOGIN_URL ''' - r = self.client.post('/announcements/1/update/', { + r = self.client.post('/announcements/{}/update/'.format(self.announcement.pk), { 'pub_state' : 'public', 'title' : '【悲報】データ消えました', 'body' : 'サードインパクトだ!', 'silently' : True, }) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/1/update/') + self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/{}/update/'.format(self.announcement.pk)) self.assertEqual(self.announcement.title, 'かわずたんのお知らせだよ☆') def test_wille_user_can_not_update_via_update_view(self): @@ -312,13 +315,13 @@ def test_wille_user_can_not_update_via_update_view(self): It will redirect to LOGIN_URL ''' self.assertTrue(self.client.login(username=self.wille, password='password')) - r = self.client.post('/announcements/1/update/', { + r = self.client.post('/announcements/{}/update/'.format(self.announcement.pk), { 'pub_state' : 'public', 'title' : '【悲報】データ消えました', 'body' : 'サードインパクトだ!', 'silently' : True, }) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/1/update/') + self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/{}/update/'.format(self.announcement.pk)) self.assertEqual(self.announcement.title, 'かわずたんのお知らせだよ☆') def test_other_user_cannot_update_via_update_view(self): @@ -327,27 +330,27 @@ def test_other_user_cannot_update_via_update_view(self): It will redirect to LOGIN_URL ''' self.assertTrue(self.client.login(username=self.other, password='password')) - r = self.client.post('/announcements/1/update/', { + r = self.client.post('/announcements/{}/update/'.format(self.announcement.pk), { 'pub_state' : 'public', 'title' : '【悲報】データ消えました', 'body' : 'サードインパクトだ!', 'silently' : True, }) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/1/update/') + self.assertRedirects(r, settings.LOGIN_URL + '?next=/announcements/{}/update/'.format(self.announcement.pk)) self.assertEqual(self.announcement.title, 'かわずたんのお知らせだよ☆') def test_staff_can_update_via_update_view(self): '''Tests author user can update announcement via AnnouncementUpdateView''' self.assertTrue(self.client.login(username=self.nerv, password='password')) - r = self.client.post('/announcements/1/update/', { + r = self.client.post('/announcements/{}/update/'.format(self.announcement.pk), { 'pub_state' : 'public', 'title' : '【悲報】データ消えました', 'body' : 'サードインパクトだ!', 'silently' : True, }) - self.assertRedirects(r, '/announcements/1/') + self.assertRedirects(r, '/announcements/{}/'.format(self.announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.get(pk=1) + e = Announcement.objects.last() self.assertEqual(e.title, '【悲報】データ消えました') self.assertTrue('messages' in r.cookies, "No messages are appeared") @@ -357,15 +360,15 @@ def test_set_last_modifier_via_update_view(self): """ previous_modifier = self.announcement.last_modifier self.assertTrue(self.client.login(username=self.nerv, password='password')) - r = self.client.post('/announcements/1/update/', { + r = self.client.post('/announcements/{}/update/'.format(self.announcement.pk), { 'pub_state' : 'public', 'title' : '【悲報】データ消えました', 'body' : 'サードインパクトだ!', 'silently' : True, }) - self.assertRedirects(r, '/announcements/1/') + self.assertRedirects(r, '/announcements/{}/'.format(self.announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.get(pk=1) + e = Announcement.objects.last() self.assertEqual(e.last_modifier, self.nerv) self.assertNotEqual(e.last_modifier, previous_modifier) @@ -378,16 +381,16 @@ def test_user_cannot_modify_author_id(self): ''' other = PersonaFactory() self.assertTrue(self.client.login(username=self.nerv, password='password')) - r = self.client.post('/announcements/1/update/', { + r = self.client.post('/announcements/{}/update/'.format(self.announcement.pk), { 'pub_state' : 'public', 'title' : 'ID書き換えます!', 'body' : 'サードインパクトだ!', 'silently' : True, 'author' : other.pk # crackers attempt to masquerade }) - self.assertRedirects(r, '/announcements/1/') + self.assertRedirects(r, '/announcements/{}/'.format(self.announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.get(pk=1) + e = Announcement.objects.last() self.assertEqual(e.author, self.user) self.assertNotEqual(e.author, other) self.assertEqual(e.title, 'ID書き換えます!') @@ -414,7 +417,7 @@ def test_author_can_delete_via_announcement_delete_view(self): Tests author can delete its own announcements via AnnouncementDeleteView ''' self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.post('/announcements/1/delete/', {}) + r = self.client.post('/announcements/{}/delete/'.format(self.announcement.pk), {}) self.assertRedirects(r, '/announcements/') self.assertEqual(Announcement.objects.count(), 0) self.assertTrue('messages' in r.cookies, "No messages are appeared") @@ -424,7 +427,7 @@ def test_staff_can_delete_via_announcement_delete_view(self): Tests members can delete its announcements via AnnouncementDeleteView ''' self.assertTrue(self.client.login(username=self.nerv, password='password')) - r = self.client.post('/announcements/1/delete/', {}) + r = self.client.post('/announcements/{}/delete/'.format(self.announcement.pk), {}) self.assertRedirects(r, '/announcements/') self.assertEqual(Announcement.objects.count(), 0) self.assertTrue('messages' in r.cookies, "No messages are appeared") @@ -434,26 +437,26 @@ def test_other_cannot_delete_via_announcement_delete_view(self): Tests others cannot delete announcements via AnnouncementDeleteView ''' self.assertTrue(self.client.login(username=self.other, password='password')) - r = self.client.post('/announcements/1/delete/', {}) + r = self.client.post('/announcements/{}/delete/'.format(self.announcement.pk), {}) self.assertEqual(Announcement.objects.count(), 1) - self.assertRedirects(r, '{0}?next=/announcements/1/delete/'.format(settings.LOGIN_URL)) + self.assertRedirects(r, '{0}?next=/announcements/{1}/delete/'.format(settings.LOGIN_URL, self.announcement.pk)) def test_wille_cannot_delete_via_announcement_delete_view(self): ''' Tests wille cannot delete announcements via AnnouncementDeleteView ''' self.assertTrue(self.client.login(username=self.wille, password='password')) - r = self.client.post('/announcements/1/delete/', {}) + r = self.client.post('/announcements/{}/delete/'.format(self.announcement.pk), {}) self.assertEqual(Announcement.objects.count(), 1) - self.assertRedirects(r, '{0}?next=/announcements/1/delete/'.format(settings.LOGIN_URL)) + self.assertRedirects(r, '{0}?next=/announcements/{1}/delete/'.format(settings.LOGIN_URL, self.announcement.pk)) def test_anonymous_cannot_delete_via_announcement_delete_view(self): ''' Tests anonymous cannot delete announcements via AnnouncementDeleteView ''' - r = self.client.post('/announcements/1/delete/', {}) + r = self.client.post('/announcements/{}/delete/'.format(self.announcement.pk), {}) self.assertEqual(Announcement.objects.count(), 1) - self.assertRedirects(r, '{0}?next=/announcements/1/delete/'.format(settings.LOGIN_URL)) + self.assertRedirects(r, '{0}?next=/announcements/{1}/delete/'.format(settings.LOGIN_URL, self.announcement.pk)) class AnnouncementListViewTestCase(TestCase): From 3d04be3bff8d8f48254ebb175159bfd8d877f863 Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 26 Mar 2017 18:09:50 +0900 Subject: [PATCH 11/18] Improve tests of blog --- src/kawaz/apps/blogs/tests/test_models.py | 4 +- src/kawaz/apps/blogs/tests/views/test_crud.py | 62 +++++++++---------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/kawaz/apps/blogs/tests/test_models.py b/src/kawaz/apps/blogs/tests/test_models.py index 694080d6..fa95b18f 100644 --- a/src/kawaz/apps/blogs/tests/test_models.py +++ b/src/kawaz/apps/blogs/tests/test_models.py @@ -132,7 +132,7 @@ def test_get_absolute_url(self): user = PersonaFactory(username='mecha_kawaztan') published_at = datetime.datetime(2112, 9, 21, tzinfo=timezone.utc) entry = EntryFactory(published_at=published_at, author=user) - self.assertEqual(entry.get_absolute_url(), '/blogs/mecha_kawaztan/2112/9/21/1/') + self.assertEqual(entry.get_absolute_url(), '/blogs/mecha_kawaztan/2112/9/21/{}/'.format(entry.pk)) def test_get_absolute_url_of_draft(self): ''' @@ -140,7 +140,7 @@ def test_get_absolute_url_of_draft(self): ''' user = PersonaFactory(username='kawaztan_kawaztan') entry = EntryFactory(pub_state='draft', author=user) - self.assertEqual(entry.get_absolute_url(), '/blogs/kawaztan_kawaztan/1/update/') + self.assertEqual(entry.get_absolute_url(), '/blogs/kawaztan_kawaztan/{}/update/'.format(entry.pk)) def test_published_at_date_property(self): ''' diff --git a/src/kawaz/apps/blogs/tests/views/test_crud.py b/src/kawaz/apps/blogs/tests/views/test_crud.py index 40ce9169..e1aa7e7a 100644 --- a/src/kawaz/apps/blogs/tests/views/test_crud.py +++ b/src/kawaz/apps/blogs/tests/views/test_crud.py @@ -54,12 +54,12 @@ def test_anonymous_user_can_not_view_draft_entry(self): def test_others_can_not_view_draft_entry(self): ''' Tests others can not view draft entry - User will redirect to '/entries/1/update/' + User will redirect to '/entries/{entry.pk}/update/' ''' entry = EntryFactory(pub_state='draft') self.assertTrue(self.client.login(username=self.user, password='password')) r = self.client.get(entry.get_absolute_url()) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/{}/1/update/'.format(entry.author.username)) + self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/{0}/{1}/update/'.format(entry.author.username, entry.pk)) def test_organizer_can_view_draft_entry(self): '''Tests organizer can view draft entry on update view''' @@ -103,10 +103,10 @@ def test_authorized_user_can_create_via_create_view(self): 'body' : '天気が良かったです', }) today = datetime.today() - self.assertRedirects(r, '/blogs/{0}/{1}/{2}/{3}/1/'.format(self.user.username, today.year, today.month, today.day)) + entry = Entry.objects.last() + self.assertRedirects(r, '/blogs/{0}/{1}/{2}/{3}/{4}/'.format(self.user.username, today.year, today.month, today.day, entry.pk)) self.assertEqual(Entry.objects.count(), 1) - e = Entry.objects.get(pk=1) - self.assertEqual(e.title, '日記です') + self.assertEqual(entry.title, '日記です') self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_user_cannot_modify_author_id(self): @@ -125,11 +125,11 @@ def test_user_cannot_modify_author_id(self): 'author' : other.pk # crackers attempt to masquerade }) today = datetime.today() - self.assertRedirects(r, '/blogs/{0}/{1}/{2}/{3}/1/'.format(self.user.username, today.year, today.month, today.day)) + entry = Entry.objects.last() + self.assertRedirects(r, '/blogs/{0}/{1}/{2}/{3}/{4}/'.format(self.user.username, today.year, today.month, today.day, entry.pk)) self.assertEqual(Entry.objects.count(), 1) - e = Entry.objects.get(pk=1) - self.assertEqual(e.author, self.user) - self.assertNotEqual(e.author, other) + self.assertEqual(entry.author, self.user) + self.assertNotEqual(entry.author, other) self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_user_can_create_entry_with_category(self): @@ -145,11 +145,11 @@ def test_user_can_create_entry_with_category(self): 'category': category.pk }) today = datetime.today() - self.assertRedirects(r, '/blogs/{0}/{1}/{2}/{3}/1/'.format(self.user.username, today.year, today.month, today.day)) + entry = Entry.objects.last() + self.assertRedirects(r, '/blogs/{0}/{1}/{2}/{3}/{4}/'.format(self.user.username, today.year, today.month, today.day, entry.pk)) self.assertEqual(Entry.objects.count(), 1) - e = Entry.objects.get(pk=1) - self.assertEqual(e.author, self.user) - self.assertEqual(e.category, category) + self.assertEqual(entry.author, self.user) + self.assertEqual(entry.category, category) self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_user_can_create_entry_with_others_category(self): @@ -180,15 +180,15 @@ def setUp(self): def test_anonymous_user_can_not_view_entry_update_view(self): '''Tests anonymous user can not view EntryUpdateView''' - r = self.client.get('/blogs/author_kawaztan/1/update/') - self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/1/update/') + r = self.client.get('/blogs/author_kawaztan/{}/update/'.format(self.entry.pk)) + self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/{}/update/'.format(self.entry.pk)) def test_authorized_user_can_view_entry_update_view(self): ''' Tests authorized user can view EntryUpdateView ''' self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.get('/blogs/author_kawaztan/1/update/') + r = self.client.get('/blogs/author_kawaztan/{}/update/'.format(self.entry.pk)) self.assertTemplateUsed(r, 'blogs/entry_form.html') self.assertTrue('object' in r.context_data) self.assertEqual(r.context_data['object'], self.entry) @@ -198,12 +198,12 @@ def test_anonymous_user_can_not_update_via_update_view(self): Tests anonymous user can not update entry via EntryUpdateView It will redirect to LOGIN_URL ''' - r = self.client.post('/blogs/author_kawaztan/1/update/', { + r = self.client.post('/blogs/author_kawaztan/{}/update/'.format(self.entry.pk), { 'pub_state' : 'public', 'title' : 'クラッカーだよー', 'body' : 'うえーい', }) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/1/update/') + self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/{}/update/'.format(self.entry.pk)) self.assertEqual(self.entry.title, 'かわずたんだよ☆') def test_other_user_cannot_update_via_update_view(self): @@ -212,27 +212,27 @@ def test_other_user_cannot_update_via_update_view(self): It will redirect to LOGIN_URL ''' self.assertTrue(self.client.login(username=self.other, password='password')) - r = self.client.post('/blogs/author_kawaztan/1/update/', { + r = self.client.post('/blogs/author_kawaztan/{}/update/'.format(self.entry.pk), { 'pub_state' : 'public', 'title' : 'いたずら日記です', 'body' : '黒かわずたんだよーん', }) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/1/update/') + self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/{}/update/'.format(self.entry.pk)) self.assertEqual(self.entry.title, 'かわずたんだよ☆') def test_author_can_update_via_update_view(self): '''Tests author user can update entry via EntryUpdateView''' self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.post('/blogs/author_kawaztan/1/update/', { + r = self.client.post('/blogs/author_kawaztan/{}/update/'.format(self.entry.pk), { 'pub_state' : 'public', 'title' : 'やっぱり書き換えます!', 'body' : 'うえーい', }) tz = get_default_timezone() published_at = self.entry.published_at.astimezone(tz) - self.assertRedirects(r, '/blogs/author_kawaztan/{0}/{1}/{2}/1/'.format(published_at.year, published_at.month, published_at.day)) + self.assertRedirects(r, '/blogs/author_kawaztan/{0}/{1}/{2}/{3}/'.format(published_at.year, published_at.month, published_at.day, self.entry.pk)) self.assertEqual(Entry.objects.count(), 1) - e = Entry.objects.get(pk=1) + e = Entry.objects.last() self.assertEqual(e.title, 'やっぱり書き換えます!') self.assertTrue('messages' in r.cookies, "No messages are appeared") @@ -245,7 +245,7 @@ def test_user_cannot_modify_author_id(self): ''' other = PersonaFactory() self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.post('/blogs/author_kawaztan/1/update/', { + r = self.client.post('/blogs/author_kawaztan/{}/update/'.format(self.entry.pk), { 'pub_state' : 'public', 'title' : 'ID書き換えます!', 'body' : 'うえーい', @@ -253,9 +253,9 @@ def test_user_cannot_modify_author_id(self): }) tz = get_default_timezone() published_at = self.entry.published_at.astimezone(tz) - self.assertRedirects(r, '/blogs/author_kawaztan/{0}/{1}/{2}/1/'.format(published_at.year, published_at.month, published_at.day)) + self.assertRedirects(r, '/blogs/author_kawaztan/{0}/{1}/{2}/{3}/'.format(published_at.year, published_at.month, published_at.day, self.entry.pk)) self.assertEqual(Entry.objects.count(), 1) - e = Entry.objects.get(pk=1) + e = Entry.objects.last() self.assertEqual(e.author, self.user) self.assertNotEqual(e.author, other) self.assertEqual(e.title, 'ID書き換えます!') @@ -483,20 +483,20 @@ def setUp(self): def test_anonymous_user_can_not_delete_via_delete_view(self): '''非ログインユーザーは記事の削除ができない''' - r = self.client.post('/blogs/author_kawaztan/1/delete/') - self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/1/delete/') + r = self.client.post('/blogs/author_kawaztan/{}/delete/'.format(self.entry.pk)) + self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/{}/delete/'.format(self.entry.pk)) self.assertEqual(self.entry.title, 'かわずたんだよ☆') def test_other_user_cannot_delete_via_delete_view(self): '''作者以外のユーザーは記事の削除ができない''' self.assertTrue(self.client.login(username=self.other, password='password')) - r = self.client.post('/blogs/author_kawaztan/1/delete/') - self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/1/delete/') + r = self.client.post('/blogs/author_kawaztan/{}/delete/'.format(self.entry.pk)) + self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/{}/delete/'.format(self.entry.pk)) self.assertEqual(self.entry.title, 'かわずたんだよ☆') def test_author_can_delete_via_delete_view(self): '''作者は記事を削除できる''' self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.post('/blogs/author_kawaztan/1/delete/') + r = self.client.post('/blogs/author_kawaztan/{}/delete/'.format(self.entry.pk)) self.assertRedirects(r, '/blogs/') self.assertEqual(Entry.objects.count(), 0) From cf4dc204964aa3cad41d33f8bd931359dcdb48ea Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 26 Mar 2017 18:57:28 +0900 Subject: [PATCH 12/18] Improve tests for events --- src/kawaz/apps/events/tests/test_views.py | 44 +++++++++++------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/kawaz/apps/events/tests/test_views.py b/src/kawaz/apps/events/tests/test_views.py index 1a1e4b53..14a0944f 100644 --- a/src/kawaz/apps/events/tests/test_views.py +++ b/src/kawaz/apps/events/tests/test_views.py @@ -63,13 +63,13 @@ def test_anonymous_user_can_not_view_draft_event(self): def test_others_can_not_view_draft_event(self): ''' Tests others can not view draft event - User will redirect to '/events/1/update/' + User will redirect to '/events/{event.pk}/update/' ''' event = EventFactory(pub_state='draft') self.assertTrue(self.client.login(username=self.user, password='password')) r = self.client.get(event.get_absolute_url()) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/events/1/update/') + self.assertRedirects(r, settings.LOGIN_URL + '?next=/events/{}/update/'.format(event.pk)) def test_organizer_can_view_draft_event(self): '''Tests organizer can view draft event on update view''' @@ -122,10 +122,10 @@ def test_authorized_user_can_create_via_create_view(self): 'period_start': datetime.datetime.now()+datetime.timedelta(hours=1), 'period_end': datetime.datetime.now()+datetime.timedelta(hours=3) }) - self.assertRedirects(r, '/events/1/') + event = Event.objects.last() + self.assertRedirects(r, '/events/{}/'.format(event.pk)) self.assertEqual(Event.objects.count(), 1) - e = Event.objects.get(pk=1) - self.assertEqual(e.title, 'テストイベント') + self.assertEqual(event.title, 'テストイベント') self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_user_cannot_modify_organizer_id(self): @@ -146,11 +146,11 @@ def test_user_cannot_modify_organizer_id(self): 'period_end': datetime.datetime.now()+datetime.timedelta(hours=3), 'organizer' : other.pk # crackers attempt to masquerade }) - self.assertRedirects(r, '/events/1/') + event = Event.objects.last() + self.assertRedirects(r, '/events/{}/'.format(event.pk)) self.assertEqual(Event.objects.count(), 1) - e = Event.objects.get(pk=1) - self.assertEqual(e.organizer, self.user) - self.assertNotEqual(e.organizer, other) + self.assertEqual(event.organizer, self.user) + self.assertNotEqual(event.organizer, other) self.assertTrue('messages' in r.cookies, "No messages are appeared") @@ -167,8 +167,8 @@ def setUp(self): def test_anonymous_user_can_not_view_event_update_view(self): '''Tests anonymous user can not view EventUpdateView''' - r = self.client.get('/events/1/update/') - self.assertRedirects(r, settings.LOGIN_URL + '?next=/events/1/update/') + r = self.client.get('/events/{}/update/'.format(self.event.pk)) + self.assertRedirects(r, settings.LOGIN_URL + '?next=/events/{}/update/'.format(self.event.pk)) def test_authorized_user_can_view_event_update_view(self): ''' @@ -176,7 +176,7 @@ def test_authorized_user_can_view_event_update_view(self): ''' self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.get('/events/1/update/') + r = self.client.get('/events/{}/update/'.format(self.event.pk)) self.assertTemplateUsed(r, 'events/event_form.html') self.assertTrue('object' in r.context_data) self.assertEqual(r.context_data['object'], self.event) @@ -186,7 +186,7 @@ def test_anonymous_user_can_not_update_via_update_view(self): Tests anonymous user can not update event via EventUpdateView It will redirect to LOGIN_URL ''' - r = self.client.post('/events/1/update/', { + r = self.client.post('/events/{}/update/'.format(self.event.pk), { 'pub_state': 'public', 'title': '変更後のイベントです', 'body': 'うえーい', @@ -194,7 +194,7 @@ def test_anonymous_user_can_not_update_via_update_view(self): 'period_start': datetime.datetime.now()+datetime.timedelta(hours=1), 'period_end': datetime.datetime.now()+datetime.timedelta(hours=3), }) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/events/1/update/') + self.assertRedirects(r, settings.LOGIN_URL + '?next=/events/{}/update/'.format(self.event.pk)) self.assertEqual(self.event.title, '変更前のイベントです') def test_other_user_cannot_update_via_update_view(self): @@ -204,7 +204,7 @@ def test_other_user_cannot_update_via_update_view(self): ''' self.assertTrue(self.client.login(username=self.other, password='password')) - r = self.client.post('/events/1/update/', { + r = self.client.post('/events/{}/update/'.format(self.event.pk), { 'pub_state': 'public', 'title': '変更後のイベントです', 'body': 'うえーい', @@ -212,14 +212,14 @@ def test_other_user_cannot_update_via_update_view(self): 'period_start': datetime.datetime.now()+datetime.timedelta(hours=1), 'period_end': datetime.datetime.now()+datetime.timedelta(hours=3) }) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/events/1/update/') + self.assertRedirects(r, settings.LOGIN_URL + '?next=/events/{}/update/'.format(self.event.pk)) self.assertEqual(self.event.title, '変更前のイベントです') def test_organizer_can_update_via_update_view(self): '''Tests authorized user can update event via EventUpdateView''' self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.post('/events/1/update/', { + r = self.client.post('/events/{}/update/'.format(self.event.pk), { 'pub_state': 'public', 'title': '変更後のイベントです', 'body': 'うえーい', @@ -227,9 +227,9 @@ def test_organizer_can_update_via_update_view(self): 'period_start': datetime.datetime.now()+datetime.timedelta(hours=1), 'period_end': datetime.datetime.now()+datetime.timedelta(hours=3) }) - self.assertRedirects(r, '/events/1/') + self.assertRedirects(r, '/events/{}/'.format(self.event.pk)) self.assertEqual(Event.objects.count(), 1) - e = Event.objects.get(pk=1) + e = Event.objects.last() self.assertEqual(e.title, '変更後のイベントです') self.assertTrue('messages' in r.cookies, "No messages are appeared") @@ -243,7 +243,7 @@ def test_user_cannot_modify_organizer_id(self): other = PersonaFactory() self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.post('/events/1/update/', { + r = self.client.post('/events/{}/update/'.format(self.event.pk), { 'pub_state': 'public', 'title': '変更後のイベントです', 'body': 'うえーい', @@ -252,9 +252,9 @@ def test_user_cannot_modify_organizer_id(self): 'period_end': datetime.datetime.now()+datetime.timedelta(hours=3), 'organizer': other.pk # crackers attempt to masquerade }) - self.assertRedirects(r, '/events/1/') + self.assertRedirects(r, '/events/{}/'.format(self.event.pk)) self.assertEqual(Event.objects.count(), 1) - e = Event.objects.get(pk=1) + e = Event.objects.last() self.assertEqual(e.organizer, self.user) self.assertNotEqual(e.organizer, other) self.assertEqual(e.title, '変更後のイベントです') From be16e56d360de3621059ae18e698d50c0255fd2a Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 26 Mar 2017 19:15:33 +0900 Subject: [PATCH 13/18] Improve tests for projects --- src/kawaz/apps/projects/tests/test_views.py | 94 ++++++++++----------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/src/kawaz/apps/projects/tests/test_views.py b/src/kawaz/apps/projects/tests/test_views.py index 4c277303..49455a9e 100644 --- a/src/kawaz/apps/projects/tests/test_views.py +++ b/src/kawaz/apps/projects/tests/test_views.py @@ -167,8 +167,8 @@ def test_authorized_user_can_create_via_create_view(self): }) self.assertRedirects(r, '/projects/music-fantasy/') self.assertEqual(Project.objects.count(), 1) - e = Project.objects.get(pk=1) - self.assertEqual(e.title, '音楽ファンタジー') + project = Project.objects.last() + self.assertEqual(project.title, '音楽ファンタジー') self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_authorized_user_can_create_via_create_view(self): @@ -186,8 +186,8 @@ def test_authorized_user_can_create_via_create_view(self): }) self.assertRedirects(r, '/projects/music-fantasy/') self.assertEqual(Project.objects.count(), 1) - e = Project.objects.get(pk=1) - self.assertEqual(e.last_modifier, self.user) + project = Project.objects.last() + self.assertEqual(project.last_modifier, self.user) self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_user_cannot_modify_administrator_id(self): @@ -210,9 +210,9 @@ def test_user_cannot_modify_administrator_id(self): }) self.assertRedirects(r, '/projects/music-fantasy/') self.assertEqual(Project.objects.count(), 1) - e = Project.objects.get(pk=1) - self.assertEqual(e.administrator, self.user) - self.assertNotEqual(e.administrator, other) + project = Project.objects.last() + self.assertEqual(project.administrator, self.user) + self.assertNotEqual(project.administrator, other) class ProjectUpdateViewTestCase(TestCase): @@ -231,21 +231,21 @@ def setUp(self): def test_anonymous_user_can_not_view_project_update_view(self): '''Tests anonymous user can not view ProjectUpdateView''' - r = self.client.get('/projects/1/update/') - self.assertRedirects(r, settings.LOGIN_URL + '?next=/projects/1/update/') + r = self.client.get('/projects/{}/update/'.format(self.project.pk)) + self.assertRedirects(r, settings.LOGIN_URL + '?next=/projects/{}/update/'.format(self.project.pk)) def test_wille_user_can_not_view_project_update_view(self): '''Tests wille user can not view ProjectUpdateView''' self.assertTrue(self.client.login(username=self.wille, password='password')) - r = self.client.get('/projects/1/update/') - self.assertRedirects(r, settings.LOGIN_URL + '?next=/projects/1/update/') + r = self.client.get('/projects/{}/update/'.format(self.project.pk)) + self.assertRedirects(r, settings.LOGIN_URL + '?next=/projects/{}/update/'.format(self.project.pk)) def test_authorized_user_can_view_project_update_view(self): ''' Tests authorized user can view ProjectUpdateView ''' self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.get('/projects/1/update/') + r = self.client.get('/projects/{}/update/'.format(self.project.pk)) self.assertTemplateUsed(r, 'projects/project_form.html') self.assertTrue('object' in r.context_data) self.assertEqual(r.context_data['object'], self.project) @@ -256,7 +256,7 @@ def test_member_can_view_project_update_view(self): ''' self.project.join(self.other) self.assertTrue(self.client.login(username=self.other, password='password')) - r = self.client.get('/projects/1/update/') + r = self.client.get('/projects/{}/update/'.format(self.project.pk)) self.assertTemplateUsed(r, 'projects/project_form.html') self.assertTrue('object' in r.context_data) self.assertEqual(r.context_data['object'], self.project) @@ -266,12 +266,12 @@ def test_anonymous_user_can_not_update_via_update_view(self): Tests anonymous user can not update project via ProjectUpdateView It will redirect to LOGIN_URL ''' - r = self.client.post('/projects/1/update/', { + r = self.client.post('/projects/{}/update/'.format(self.project.pk), { 'pub_state' : 'public', 'title' : 'クラッカーだよー', 'body' : 'うえーい', }) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/projects/1/update/') + self.assertRedirects(r, settings.LOGIN_URL + '?next=/projects/{}/update/'.format(self.project.pk)) self.assertEqual(self.project.title, 'かわずたんのゲームだよ☆') def test_wille_user_can_not_update_via_update_view(self): @@ -280,12 +280,12 @@ def test_wille_user_can_not_update_via_update_view(self): It will redirect to LOGIN_URL ''' self.assertTrue(self.client.login(username=self.wille, password='password')) - r = self.client.post('/projects/1/update/', { + r = self.client.post('/projects/{}/update/'.format(self.project.pk), { 'pub_state' : 'public', 'title' : '外部ユーザーだよーん', 'body' : 'うえーい', }) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/projects/1/update/') + self.assertRedirects(r, settings.LOGIN_URL + '?next=/projects/{}/update/'.format(self.project.pk)) self.assertEqual(self.project.title, 'かわずたんのゲームだよ☆') def test_other_user_cannot_update_via_update_view(self): @@ -294,18 +294,18 @@ def test_other_user_cannot_update_via_update_view(self): It will redirect to LOGIN_URL ''' self.assertTrue(self.client.login(username=self.other, password='password')) - r = self.client.post('/projects/1/update/', { + r = self.client.post('/projects/{}/update/'.format(self.project.pk), { 'pub_state' : 'public', 'title' : 'いたずら日記です', 'body' : '黒かわずたんだよーん', }) - self.assertRedirects(r, settings.LOGIN_URL + '?next=/projects/1/update/') + self.assertRedirects(r, settings.LOGIN_URL + '?next=/projects/{}/update/'.format(self.project.pk)) self.assertEqual(self.project.title, 'かわずたんのゲームだよ☆') def test_administrator_can_update_via_update_view(self): '''Tests administrator user can update project via ProjectUpdateView''' self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.post('/projects/1/update/', { + r = self.client.post('/projects/{}/update/'.format(self.project.pk), { 'pub_state' : 'public', 'title' : 'やっぱり書き換えます!', 'body' : 'うえーい', @@ -314,15 +314,15 @@ def test_administrator_can_update_via_update_view(self): }) self.assertRedirects(r, '/projects/{}/'.format(self.project.slug)) self.assertEqual(Project.objects.count(), 1) - e = Project.objects.get(pk=1) - self.assertEqual(e.title, 'やっぱり書き換えます!') + project = Project.objects.last() + self.assertEqual(project.title, 'やっぱり書き換えます!') self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_member_can_update_via_update_view(self): '''Tests project member can update project via ProjectUpdateView''' self.project.join(self.other) self.assertTrue(self.client.login(username=self.other, password='password')) - r = self.client.post('/projects/1/update/', { + r = self.client.post('/projects/{}/update/'.format(self.project.pk), { 'pub_state' : 'public', 'title' : 'やっぱり書き換えます!', 'body' : 'うえーい', @@ -331,8 +331,8 @@ def test_member_can_update_via_update_view(self): }) self.assertRedirects(r, '/projects/{}/'.format(self.project.slug)) self.assertEqual(Project.objects.count(), 1) - e = Project.objects.get(pk=1) - self.assertEqual(e.title, 'やっぱり書き換えます!') + project = Project.objects.last() + self.assertEqual(project.title, 'やっぱり書き換えます!') self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_set_last_modifier_via_update_view(self): @@ -341,7 +341,7 @@ def test_set_last_modifier_via_update_view(self): """ self.project.join(self.other) self.assertTrue(self.client.login(username=self.other, password='password')) - r = self.client.post('/projects/1/update/', { + r = self.client.post('/projects/{}/update/'.format(self.project.pk), { 'pub_state' : 'public', 'title' : 'やっぱり書き換えます!', 'body' : 'うえーい', @@ -350,16 +350,16 @@ def test_set_last_modifier_via_update_view(self): }) self.assertRedirects(r, '/projects/{}/'.format(self.project.slug)) self.assertEqual(Project.objects.count(), 1) - e = Project.objects.get(pk=1) - self.assertEqual(e.last_modifier, self.other) - self.assertNotEqual(e.last_modifier, e.administrator) + project = Project.objects.last() + self.assertEqual(project.last_modifier, self.other) + self.assertNotEqual(project.last_modifier, e.administrator) self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_user_cannot_update_slug(self): '''Tests anyone cannot update prject's slug''' self.assertTrue(self.client.login(username=self.user, password='password')) old_slug = self.project.slug - r = self.client.post('/projects/1/update/', { + r = self.client.post('/projects/{}/update/'.format(self.project.pk), { 'pub_state' : 'public', 'title' : 'やっぱり書き換えます!', 'body' : 'うえーい', @@ -369,9 +369,9 @@ def test_user_cannot_update_slug(self): }) self.assertRedirects(r, '/projects/{}/'.format(self.project.slug)) self.assertEqual(Project.objects.count(), 1) - e = Project.objects.get(pk=1) - self.assertEqual(e.slug, old_slug) - self.assertNotEqual(e.slug, 'new-slug') + project = Project.objects.last() + self.assertEqual(project.slug, old_slug) + self.assertNotEqual(project.slug, 'new-slug') self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_user_cannot_modify_administrator_id(self): @@ -383,7 +383,7 @@ def test_user_cannot_modify_administrator_id(self): ''' other = PersonaFactory() self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.post('/projects/1/update/', { + r = self.client.post('/projects/{}/update/'.format(self.project.pk), { 'pub_state' : 'public', 'title' : 'ID書き換えます!', 'body' : 'うえーい', @@ -393,10 +393,10 @@ def test_user_cannot_modify_administrator_id(self): }) self.assertRedirects(r, '/projects/{}/'.format(self.project.slug)) self.assertEqual(Project.objects.count(), 1) - e = Project.objects.get(pk=1) - self.assertEqual(e.administrator, self.user) - self.assertNotEqual(e.administrator, other) - self.assertEqual(e.title, 'ID書き換えます!') + project = Project.objects.last() + self.assertEqual(project.administrator, self.user) + self.assertNotEqual(project.administrator, other) + self.assertEqual(project.title, 'ID書き換えます!') self.assertTrue('messages' in r.cookies, "No messages are appeared") class ProjectDeleteViewTestCase(TestCase): @@ -417,7 +417,7 @@ def test_administrator_can_delete_via_project_delete_view(self): Tests administrators can delete its own projects via ProjectDeleteView ''' self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.post('/projects/1/delete/', {}) + r = self.client.post('/projects/{}/delete/'.format(self.project.pk), {}) self.assertEqual(Project.objects.count(), 0) self.assertTrue('messages' in r.cookies, "No messages are appeared") @@ -600,8 +600,8 @@ def test_anonymous_cannnot_join_project(self): Tests anonymous users attempt to access to ProjectJoinViewTestCase with GET method, redirects to Login page. ''' - r = self.client.get('/projects/1/join/') - self.assertRedirects(r, '{0}?next={1}'.format(settings.LOGIN_URL, '/projects/1/join/')) + r = self.client.get('/projects/{}/join/'.format(self.project.pk)) + self.assertRedirects(r, '{0}?next=/projects/{1}/join/'.format(settings.LOGIN_URL, self.project.pk)) def test_get_method_is_not_allowed(self): ''' @@ -609,7 +609,7 @@ def test_get_method_is_not_allowed(self): it returns 405 ''' self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.get('/projects/1/join/') + r = self.client.get('/projects/{}/join/'.format(self.project.pk)) self.assertEqual(r.status_code, 405) def test_user_can_join_project_via_project_join_view(self): @@ -618,7 +618,7 @@ def test_user_can_join_project_via_project_join_view(self): then redirects to project permalinks ''' self.assertTrue(self.client.login(username=self.user, password='password')) - r = self.client.post('/projects/1/join/') + r = self.client.post('/projects/{}/join/'.format(self.project.pk)) self.assertRedirects(r, '/projects/{}/'.format(self.project.slug)) self.assertEqual(self.project.members.count(), 2) self.assertTrue(self.user in self.project.members.all()) @@ -636,8 +636,8 @@ def test_anonymous_cannnot_quit_project(self): Tests anonymous users attempt to access to ProjectQuitViewTestCase with GET method, redirects to Login page. ''' - r = self.client.get('/projects/1/quit/') - self.assertRedirects(r, '{0}?next={1}'.format(settings.LOGIN_URL, '/projects/1/quit/')) + r = self.client.get('/projects/{}/quit/'.format(self.project.pk)) + self.assertRedirects(r, '{0}?next=/projects/{1}/quit/'.format(settings.LOGIN_URL, self.project.pk)) def test_get_method_is_not_allowed(self): ''' @@ -646,7 +646,7 @@ def test_get_method_is_not_allowed(self): ''' self.assertTrue(self.client.login(username=self.user, password='password')) self.project.join(self.user) - r = self.client.get('/projects/1/quit/') + r = self.client.get('/projects/{}/quit/'.format(self.project.pk)) self.assertEqual(r.status_code, 405) def test_user_can_quit_project_via_project_quit_view(self): @@ -658,7 +658,7 @@ def test_user_can_quit_project_via_project_quit_view(self): self.project.join(self.user) self.assertEqual(self.project.members.count(), 2) self.assertTrue(self.project.members.all()) - r = self.client.post('/projects/1/quit/') + r = self.client.post('/projects/{}/quit/'.format(self.project.pk)) self.assertRedirects(r, '/projects/{}/'.format(self.project.slug)) self.assertEqual(self.project.members.count(), 1) self.assertFalse(self.user in self.project.members.all()) From ea6c52cd6151adc754e0c9f9ad1006908636600f Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 26 Mar 2017 19:24:45 +0900 Subject: [PATCH 14/18] Fix variable names --- .../apps/announcements/tests/test_views.py | 34 +++++++++---------- src/kawaz/apps/blogs/tests/views/test_crud.py | 12 +++---- src/kawaz/apps/events/tests/test_views.py | 12 +++---- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/kawaz/apps/announcements/tests/test_views.py b/src/kawaz/apps/announcements/tests/test_views.py index 83cc4910..03f0c723 100644 --- a/src/kawaz/apps/announcements/tests/test_views.py +++ b/src/kawaz/apps/announcements/tests/test_views.py @@ -192,8 +192,8 @@ def test_staff_user_can_create_via_create_view(self): announcement = Announcement.objects.last() self.assertRedirects(r, '/announcements/{}/'.format(announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.last() - self.assertEqual(e.title, '【悲報】データ消えました') + announcement = Announcement.objects.last() + self.assertEqual(announcement.title, '【悲報】データ消えました') self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_authorized_user_can_create_via_create_view(self): @@ -221,9 +221,9 @@ def test_set_last_modifier_user(self): announcement = Announcement.objects.last() self.assertRedirects(r, '/announcements/{}/'.format(announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.last() - self.assertEqual(e.author, self.nerv) - self.assertEqual(e.last_modifier, self.nerv) + announcement = Announcement.objects.last() + self.assertEqual(announcement.author, self.nerv) + self.assertEqual(announcement.last_modifier, self.nerv) def test_staffs_cannot_modify_author_id(self): ''' @@ -244,9 +244,9 @@ def test_staffs_cannot_modify_author_id(self): announcement = Announcement.objects.last() self.assertRedirects(r, '/announcements/{}/'.format(announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.last() - self.assertEqual(e.author, self.nerv) - self.assertNotEqual(e.author, other) + announcement = Announcement.objects.last() + self.assertEqual(announcement.author, self.nerv) + self.assertNotEqual(announcement.author, other) self.assertTrue('messages' in r.cookies, "No messages are appeared") @@ -350,8 +350,8 @@ def test_staff_can_update_via_update_view(self): }) self.assertRedirects(r, '/announcements/{}/'.format(self.announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.last() - self.assertEqual(e.title, '【悲報】データ消えました') + announcement = Announcement.objects.last() + self.assertEqual(announcement.title, '【悲報】データ消えました') self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_set_last_modifier_via_update_view(self): @@ -368,9 +368,9 @@ def test_set_last_modifier_via_update_view(self): }) self.assertRedirects(r, '/announcements/{}/'.format(self.announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.last() - self.assertEqual(e.last_modifier, self.nerv) - self.assertNotEqual(e.last_modifier, previous_modifier) + announcement = Announcement.objects.last() + self.assertEqual(announcement.last_modifier, self.nerv) + self.assertNotEqual(announcement.last_modifier, previous_modifier) def test_user_cannot_modify_author_id(self): ''' @@ -390,10 +390,10 @@ def test_user_cannot_modify_author_id(self): }) self.assertRedirects(r, '/announcements/{}/'.format(self.announcement.pk)) self.assertEqual(Announcement.objects.count(), 1) - e = Announcement.objects.last() - self.assertEqual(e.author, self.user) - self.assertNotEqual(e.author, other) - self.assertEqual(e.title, 'ID書き換えます!') + announcement = Announcement.objects.last() + self.assertEqual(announcement.author, self.user) + self.assertNotEqual(announcement.author, other) + self.assertEqual(announcement.title, 'ID書き換えます!') self.assertTrue('messages' in r.cookies, "No messages are appeared") class AnnouncementDeleteViewTestCase(TestCase): diff --git a/src/kawaz/apps/blogs/tests/views/test_crud.py b/src/kawaz/apps/blogs/tests/views/test_crud.py index e1aa7e7a..e2fa6910 100644 --- a/src/kawaz/apps/blogs/tests/views/test_crud.py +++ b/src/kawaz/apps/blogs/tests/views/test_crud.py @@ -232,8 +232,8 @@ def test_author_can_update_via_update_view(self): published_at = self.entry.published_at.astimezone(tz) self.assertRedirects(r, '/blogs/author_kawaztan/{0}/{1}/{2}/{3}/'.format(published_at.year, published_at.month, published_at.day, self.entry.pk)) self.assertEqual(Entry.objects.count(), 1) - e = Entry.objects.last() - self.assertEqual(e.title, 'やっぱり書き換えます!') + entry = Entry.objects.last() + self.assertEqual(entry.title, 'やっぱり書き換えます!') self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_user_cannot_modify_author_id(self): @@ -255,10 +255,10 @@ def test_user_cannot_modify_author_id(self): published_at = self.entry.published_at.astimezone(tz) self.assertRedirects(r, '/blogs/author_kawaztan/{0}/{1}/{2}/{3}/'.format(published_at.year, published_at.month, published_at.day, self.entry.pk)) self.assertEqual(Entry.objects.count(), 1) - e = Entry.objects.last() - self.assertEqual(e.author, self.user) - self.assertNotEqual(e.author, other) - self.assertEqual(e.title, 'ID書き換えます!') + entry = Entry.objects.last() + self.assertEqual(entry.author, self.user) + self.assertNotEqual(entry.author, other) + self.assertEqual(entry.title, 'ID書き換えます!') self.assertTrue('messages' in r.cookies, "No messages are appeared") diff --git a/src/kawaz/apps/events/tests/test_views.py b/src/kawaz/apps/events/tests/test_views.py index 14a0944f..1037833a 100644 --- a/src/kawaz/apps/events/tests/test_views.py +++ b/src/kawaz/apps/events/tests/test_views.py @@ -229,8 +229,8 @@ def test_organizer_can_update_via_update_view(self): }) self.assertRedirects(r, '/events/{}/'.format(self.event.pk)) self.assertEqual(Event.objects.count(), 1) - e = Event.objects.last() - self.assertEqual(e.title, '変更後のイベントです') + entry = Event.objects.last() + self.assertEqual(entry.title, '変更後のイベントです') self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_user_cannot_modify_organizer_id(self): @@ -254,10 +254,10 @@ def test_user_cannot_modify_organizer_id(self): }) self.assertRedirects(r, '/events/{}/'.format(self.event.pk)) self.assertEqual(Event.objects.count(), 1) - e = Event.objects.last() - self.assertEqual(e.organizer, self.user) - self.assertNotEqual(e.organizer, other) - self.assertEqual(e.title, '変更後のイベントです') + entry = Event.objects.last() + self.assertEqual(entry.organizer, self.user) + self.assertNotEqual(entry.organizer, other) + self.assertEqual(entry.title, '変更後のイベントです') self.assertTrue('messages' in r.cookies, "No messages are appeared") From 31830c3441d9ca08deaf973023a1e235ab7084c4 Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 26 Mar 2017 19:39:17 +0900 Subject: [PATCH 15/18] Fix test is failing --- src/kawaz/apps/products/tests/test_templatetags.py | 6 +++--- src/kawaz/apps/projects/tests/test_views.py | 2 +- src/kawaz/core/personas/tests/test_views/test_profile.py | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/kawaz/apps/products/tests/test_templatetags.py b/src/kawaz/apps/products/tests/test_templatetags.py index b6f8a8a4..e8fc3219 100644 --- a/src/kawaz/apps/products/tests/test_templatetags.py +++ b/src/kawaz/apps/products/tests/test_templatetags.py @@ -162,9 +162,9 @@ def test_get_products_by_categories(self): categories2 = Category.objects.filter(pk__in=(c0.pk, c1.pk)) products2 = self._render_template(categories=categories2) self.assertEqual(len(products2), 3) - self.assertEqual(products2[0], p0) - self.assertEqual(products2[1], p2) - self.assertEqual(products2[2], p1) + self.assertIn(p0, products2) + self.assertIn(p1, products2) + self.assertIn(p2, products2) class GetRelativeTestCase(TestCase): diff --git a/src/kawaz/apps/projects/tests/test_views.py b/src/kawaz/apps/projects/tests/test_views.py index 49455a9e..623ccf6f 100644 --- a/src/kawaz/apps/projects/tests/test_views.py +++ b/src/kawaz/apps/projects/tests/test_views.py @@ -352,7 +352,7 @@ def test_set_last_modifier_via_update_view(self): self.assertEqual(Project.objects.count(), 1) project = Project.objects.last() self.assertEqual(project.last_modifier, self.other) - self.assertNotEqual(project.last_modifier, e.administrator) + self.assertNotEqual(project.last_modifier, project.administrator) self.assertTrue('messages' in r.cookies, "No messages are appeared") def test_user_cannot_update_slug(self): diff --git a/src/kawaz/core/personas/tests/test_views/test_profile.py b/src/kawaz/core/personas/tests/test_views/test_profile.py index 1585142c..b62bea39 100644 --- a/src/kawaz/core/personas/tests/test_views/test_profile.py +++ b/src/kawaz/core/personas/tests/test_views/test_profile.py @@ -135,10 +135,10 @@ def test_members_can_assign_multiple_accounts(self): username1 = "{}-{}".format(random_str(), i) username2 = "{}-{}".format(random_str(), i) kwargs.update({ - 'accounts-0-service': 1, + 'accounts-0-service': self.services[0].pk, 'accounts-0-username': username1, 'accounts-0-pub_state': 'public', - 'accounts-1-service': 2, + 'accounts-1-service': self.services[1].pk, 'accounts-1-username': username2, 'accounts-1-pub_state': 'public', 'accounts-TOTAL_FORMS': 2, @@ -154,12 +154,12 @@ def test_members_can_assign_multiple_accounts(self): p = Profile.objects.get(user=user) a = Account.objects.filter(profile=p) self.assertEqual(a.count(), 2) - self.assertEqual(a[0].service.pk, 1) + self.assertEqual(a[0].service.pk, self.services[0].pk) self.assertEqual(a[0].profile.user, user) self.assertEqual(a[0].username, username1) self.assertEqual(a[0].pub_state, 'public') self.assertEqual(a[1].profile.user, user) - self.assertEqual(a[1].service.pk, 2) + self.assertEqual(a[1].service.pk, self.services[1].pk) self.assertEqual(a[1].username, username2) self.assertEqual(a[1].pub_state, 'public') From 267cab95e242bd3df3a7da93c2250191f4bda10a Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 26 Mar 2017 20:36:04 +0900 Subject: [PATCH 16/18] Fix timezone issue on Travis CI --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 92490ead..6f7a9096 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ before_install: - git submodule update --init --recursive - mv config/ci_settings.py src/kawaz/local_settings.py - mysql -uroot -e "create database kawaz_travis" + - mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql install: - pip install tox - pip install coverage coveralls From 68337aeab49affb290bc91aecfbff5e6a60aaa04 Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 26 Mar 2017 20:53:54 +0900 Subject: [PATCH 17/18] Ignore order of test cases --- .../apps/announcements/tests/test_models.py | 4 +-- src/kawaz/apps/blogs/tests/test_models.py | 4 +-- src/kawaz/apps/blogs/tests/views/test_crud.py | 9 +++--- src/kawaz/apps/blogs/tests/views/test_date.py | 30 +++++++++---------- src/kawaz/apps/projects/tests/test_views.py | 4 +-- 5 files changed, 26 insertions(+), 25 deletions(-) diff --git a/src/kawaz/apps/announcements/tests/test_models.py b/src/kawaz/apps/announcements/tests/test_models.py index 2e0cd9af..f557ea0c 100644 --- a/src/kawaz/apps/announcements/tests/test_models.py +++ b/src/kawaz/apps/announcements/tests/test_models.py @@ -43,8 +43,8 @@ def test_published_by_authorized(self): user = PersonaFactory() qs = Announcement.objects.published(user) self.assertEqual(qs.count(), 2) - self.assertEqual(qs[0], b) - self.assertEqual(qs[1], a) + self.assertIn(b, qs) + self.assertIn(a, qs) def test_published_by_anonymous(self): """ diff --git a/src/kawaz/apps/blogs/tests/test_models.py b/src/kawaz/apps/blogs/tests/test_models.py index fa95b18f..ba82dca9 100644 --- a/src/kawaz/apps/blogs/tests/test_models.py +++ b/src/kawaz/apps/blogs/tests/test_models.py @@ -57,8 +57,8 @@ def test_published_with_authenticated(self): user = PersonaFactory() qs = Entry.objects.published(user) self.assertEqual(qs.count(), 2) - self.assertEqual(qs[0], self.entries[1]) - self.assertEqual(qs[1], self.entries[0]) + self.assertIn(self.entries[0], qs) + self.assertIn(self.entries[1], qs) def test_published_with_wille(self): '''Tests Entry.objects.published() with wille user returns only public entries ''' diff --git a/src/kawaz/apps/blogs/tests/views/test_crud.py b/src/kawaz/apps/blogs/tests/views/test_crud.py index e2fa6910..6216708e 100644 --- a/src/kawaz/apps/blogs/tests/views/test_crud.py +++ b/src/kawaz/apps/blogs/tests/views/test_crud.py @@ -336,8 +336,9 @@ def test_authenticated_can_view_all_publish_entries(self): self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two entries') - self.assertEqual(list[0], self.entries[1], 'protected') - self.assertEqual(list[1], self.entries[0], 'public') + self.assertIn(self.entries[1], list, 'protected') + self.assertIn(self.entries[0], list, 'public') + class EntryAuthorListViewTestCase(TestCase): def setUp(self): @@ -417,8 +418,8 @@ def test_authenticated_can_view_all_publish_entries_of_the_author(self): self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two entries') - self.assertEqual(list[0], self.entries[3], 'protected') - self.assertEqual(list[1], self.entries[1], 'public') + self.assertIn(self.entries[3], list, 'protected') + self.assertIn(self.entries[1], list, 'public') self.assertEqual(r.context_data['author'], self.user) diff --git a/src/kawaz/apps/blogs/tests/views/test_date.py b/src/kawaz/apps/blogs/tests/views/test_date.py index 2d5f2181..52019b22 100644 --- a/src/kawaz/apps/blogs/tests/views/test_date.py +++ b/src/kawaz/apps/blogs/tests/views/test_date.py @@ -165,8 +165,9 @@ def test_authenticated_can_view_all_publish_entries(self): self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two entries') - self.assertEqual(list[0], self.entries[1], 'protected') - self.assertEqual(list[1], self.entries[0], 'public') + self.assertIn(self.entries[1], list, 'protected') + self.assertIn(self.entries[0], list, 'public') + class EntryAuthorMonthArchiveViewTestCase(TestCase): def setUp(self): @@ -226,8 +227,9 @@ def test_authenticated_can_view_all_publish_entries_of_the_author(self): self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two entries') - self.assertEqual(list[0], self.entries[3], 'protected') - self.assertEqual(list[1], self.entries[1], 'public') + self.assertIn(self.entries[3], list, 'protected') + self.assertIn(self.entries[1], list, 'public') + class EntryDayArchiveViewTestCase(TestCase): def setUp(self): @@ -282,8 +284,9 @@ def test_authenticated_can_view_all_publish_entries(self): self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two entries') - self.assertEqual(list[0], self.entries[1], 'protected') - self.assertEqual(list[1], self.entries[0], 'public') + self.assertIn(self.entries[1], list, 'protected') + self.assertIn(self.entries[0], list, 'public') + class EntryAuthorDayArchiveViewTestCase(TestCase): def setUp(self): @@ -339,8 +342,8 @@ def test_authenticated_can_view_all_publish_entries_of_the_author(self): self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two entries') - self.assertEqual(list[0], self.entries[3], 'protected') - self.assertEqual(list[1], self.entries[1], 'public') + self.assertIn(self.entries[3], list, 'protected') + self.assertIn(self.entries[1], list, 'public') class EntryTodayArchiveViewTestCase(TestCase): @@ -396,8 +399,8 @@ def test_authenticated_can_view_all_publish_entries(self): self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two entries') - self.assertEqual(list[0], self.entries[1], 'protected') - self.assertEqual(list[1], self.entries[0], 'public') + self.assertIn(self.entries[1], list, 'protected') + self.assertIn(self.entries[0], list, 'public') class EntryAuthorTodayArchiveViewTestCase(TestCase): def setUp(self): @@ -420,7 +423,6 @@ def test_anonymous_can_view_only_public_entries_of_the_author(self): Tests anonymous user can view public Entry written by specific author on today only. The protected entries are not displayed. ''' - entry = self.entries[0] r = self.client.get('/blogs/{}/today/'.format(self.user.username)) self.assertTemplateUsed('blogs/entry_archive_day.html') self.assertTrue('object_list' in r.context_data) @@ -433,7 +435,6 @@ def test_wille_can_view_only_public_entries_of_the_author(self): Tests wille user can view public Entry written by specific author on today only. The protected entries are not displayed. ''' - entry = self.entries[0] self.assertTrue(self.client.login(username=self.wille, password='password')) r = self.client.get('/blogs/{}/today/'.format(self.user.username)) self.assertTemplateUsed('blogs/entry_archive_day.html') @@ -446,12 +447,11 @@ def test_authenticated_can_view_all_publish_entries_of_the_author(self): ''' Tests authenticated user can view all published entries written by specific author on today. ''' - entry = self.entries[0] self.assertTrue(self.client.login(username=self.user, password='password')) r = self.client.get('/blogs/{}/today/'.format(self.user.username)) self.assertTemplateUsed('blogs/entry_archive_day.html') self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two entries') - self.assertEqual(list[0], self.entries[3], 'protected') - self.assertEqual(list[1], self.entries[1], 'public') + self.assertIn(self.entries[3], list, 'protected') + self.assertIn(self.entries[1], list, 'public') diff --git a/src/kawaz/apps/projects/tests/test_views.py b/src/kawaz/apps/projects/tests/test_views.py index 623ccf6f..8a904821 100644 --- a/src/kawaz/apps/projects/tests/test_views.py +++ b/src/kawaz/apps/projects/tests/test_views.py @@ -504,8 +504,8 @@ def test_authenticated_can_view_all_publish_projects(self): self.assertTrue('object_list' in r.context_data) list = r.context_data['object_list'] self.assertEqual(list.count(), 2, 'object_list has two projects') - self.assertEqual(list[0], self.projects[1], 'protected') - self.assertEqual(list[1], self.projects[0], 'public') + self.assertIn(self.projects[1], list, 'protected') + self.assertIn(self.projects[0], list, 'public') class ProjectArchiveViewTestCase(ViewTestCaseBase): From 4a4ceb1695158df9986792cc69a504e0eaa91164 Mon Sep 17 00:00:00 2001 From: giginet Date: Sun, 26 Mar 2017 21:22:11 +0900 Subject: [PATCH 18/18] Remove unnecessay setting --- src/kawaz/settings.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/kawaz/settings.py b/src/kawaz/settings.py index bf0388b5..30a063fd 100644 --- a/src/kawaz/settings.py +++ b/src/kawaz/settings.py @@ -324,7 +324,6 @@ # django-debug-toolbar def show_debug_toolbar(request): - return False from django.conf import settings if settings.TESTING: return False