def setUp(self): self.userset = UserSet() self.james = UserSet.create_user('james') self.emily = UserSet.create_user('emily') self.peter = UserSet.create_user('peter') self.alice = UserSet.create_user('alice') self.assertTrue(1) self.dproduct = self.new_product()
def setUp(self): self.userset = UserSet() for i in xrange(200): Announcement.objects.create( title='title%s'%i, body='body%s'%i )
def setUp(self): self.userset = UserSet() self.james = UserSet.create_user('james') self.emily = UserSet.create_user('emily') self.peter = UserSet.create_user('peter') self.alice = UserSet.create_user('alice') for i in xrange(1, 100): Entry.objects.create( pub_state='public', title='title%s'%i, body='body%s'%i, author=self.james, publish_at=datetime.datetime.now(), publish_at_date=datetime.date.today(), ) for i in xrange(1, 100): Entry.objects.create( pub_state='protected', title='title%s'%i, body='body%s'%i, author=self.emily, publish_at=datetime.datetime.now(), publish_at_date=datetime.date.today(), ) for i in xrange(1, 100): Entry.objects.create( pub_state='private', title='title%s'%i, body='body%s'%i, author=self.peter, publish_at=datetime.datetime.now(), publish_at_date=datetime.date.today(), ) for i in xrange(1, 100): Entry.objects.create( pub_state='draft', title='title%s'%i, body='body%s'%i, author=self.alice, publish_at=datetime.datetime.now(), publish_at_date=datetime.date.today(), )
class AnnouncementViewTest(TestCase): def setUp(self): self.userset = UserSet() for i in xrange(200): Announcement.objects.create( title='title%s'%i, body='body%s'%i ) def test_list_view(self): response = self.client.get(reverse('announcements-announcement-list')) self.assertEqual(response.status_code, 200) def test_detail_view(self): response = self.client.get(reverse('announcements-announcement-detail', kwargs={'object_id': 1})) self.assertEqual(response.status_code, 200) def test_archive_year_view(self): response = self.client.get(reverse('announcements-announcement-archive-year', kwargs={'year': 2010})) self.assertEqual(response.status_code, 200) def test_archive_month_view(self): for month in xrange(1, 12): response = self.client.get(reverse('announcements-announcement-archive-month', kwargs={'year': 2010, 'month': month})) self.assertEqual(response.status_code, 200) def test_create_view(self): data = {'title': 'Hello', 'body': 'world'} # 外部ユーザーはアクセス不可 response = self.client.get(reverse('announcements-announcement-create')) self.assertRedirects(response, reverse('auth_login')) response = self.client.post(reverse('announcements-announcement-create'), data) self.assertRedirects(response, reverse('auth_login')) # 一般ユーザーはアクセス不可能 self.assertEqual(self.userset.login_user(self.client), True) response = self.client.get(reverse('announcements-announcement-create')) self.assertEqual(response.status_code, 403) response = self.client.post(reverse('announcements-announcement-create'), data) self.assertEqual(response.status_code, 403) # スタッフユーザーはアクセス可能 self.assertEqual(self.userset.login_staff(self.client), True) response = self.client.get(reverse('announcements-announcement-create')) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('announcements-announcement-create'), data) self.assertRedirects(response, reverse('announcements-announcement-detail', kwargs={'object_id': Announcement.objects.count()})) self.assertEqual(Announcement.objects.filter(title='Hello').exists(), True) # スーパーユーザーはアクセス可能 self.assertEqual(self.userset.login_admin(self.client), True) response = self.client.get(reverse('announcements-announcement-create')) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('announcements-announcement-create'), data) self.assertRedirects(response, reverse('announcements-announcement-detail', kwargs={'object_id': Announcement.objects.count()})) self.assertEqual(Announcement.objects.filter(title='Hello').exists(), True) def test_update_view(self): data = {'title': 'Hello', 'body': 'world'} # 外部ユーザーはアクセス不可 response = self.client.get(reverse('announcements-announcement-update', kwargs={'object_id': 1})) self.assertRedirects(response, reverse('auth_login')) response = self.client.post(reverse('announcements-announcement-update', kwargs={'object_id': 1}), data) self.assertRedirects(response, reverse('auth_login')) # 一般ユーザーはアクセス不可能 self.assertEqual(self.userset.login_user(self.client), True) response = self.client.get(reverse('announcements-announcement-update', kwargs={'object_id': 1})) self.assertEqual(response.status_code, 403) response = self.client.post(reverse('announcements-announcement-update', kwargs={'object_id': 1}), data) self.assertEqual(response.status_code, 403) # スタッフユーザーはアクセス可能 self.assertEqual(self.userset.login_staff(self.client), True) response = self.client.get(reverse('announcements-announcement-update', kwargs={'object_id': 1})) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('announcements-announcement-update', kwargs={'object_id': 1}), data) self.assertRedirects(response, reverse('announcements-announcement-detail', kwargs={'object_id': 1})) self.assertEqual(Announcement.objects.filter(title='Hello', pk=1).exists(), True) # スーパーユーザーはアクセス可能 self.assertEqual(self.userset.login_admin(self.client), True) response = self.client.get(reverse('announcements-announcement-update', kwargs={'object_id': 1})) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('announcements-announcement-update', kwargs={'object_id': 1}), data) self.assertRedirects(response, reverse('announcements-announcement-detail', kwargs={'object_id': 1})) self.assertEqual(Announcement.objects.filter(title='Hello', pk=1).exists(), True) def test_delete_view(self): # 外部ユーザーはアクセス不可 response = self.client.get(reverse('announcements-announcement-delete', kwargs={'object_id': 1})) self.assertRedirects(response, reverse('auth_login')) response = self.client.post(reverse('announcements-announcement-delete', kwargs={'object_id': 1})) self.assertRedirects(response, reverse('auth_login')) # 一般ユーザーはアクセス不可能 self.assertEqual(self.userset.login_user(self.client), True) response = self.client.get(reverse('announcements-announcement-delete', kwargs={'object_id': 1})) self.assertEqual(response.status_code, 403) response = self.client.post(reverse('announcements-announcement-delete', kwargs={'object_id': 1})) self.assertEqual(response.status_code, 403) # スタッフユーザーはアクセス可能 self.assertEqual(self.userset.login_staff(self.client), True) response = self.client.get(reverse('announcements-announcement-delete', kwargs={'object_id': 1})) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('announcements-announcement-delete', kwargs={'object_id': 1})) self.assertRedirects(response, reverse('announcements-announcement-list')) self.assertEqual(Announcement.objects.filter(pk=1).exists(), False) # スーパーユーザーはアクセス可能 self.assertEqual(self.userset.login_admin(self.client), True) response = self.client.get(reverse('announcements-announcement-delete', kwargs={'object_id': 2})) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('announcements-announcement-delete', kwargs={'object_id': 2})) self.assertRedirects(response, reverse('announcements-announcement-list')) self.assertEqual(Announcement.objects.filter(pk=2).exists(), False) def test_invalid_detail_view(self): response = self.client.get(reverse('announcements-announcement-detail', kwargs={'object_id': 0})) self.assertEqual(response.status_code, 404) def test_invalid_update_view(self): self.assertEqual(self.userset.login_staff(self.client), True) response = self.client.get(reverse('announcements-announcement-update', kwargs={'object_id': 0})) self.assertEqual(response.status_code, 404) response = self.client.post(reverse('announcements-announcement-update', kwargs={'object_id': 0})) self.assertEqual(response.status_code, 404) def test_invalid_delete_view(self): self.assertEqual(self.userset.login_staff(self.client), True) response = self.client.get(reverse('announcements-announcement-delete', kwargs={'object_id': 0})) self.assertEqual(response.status_code, 404) response = self.client.post(reverse('announcements-announcement-update', kwargs={'object_id': 0})) self.assertEqual(response.status_code, 404)
class EntryViewTest(TestCase): def setUp(self): self.userset = UserSet() self.james = UserSet.create_user('james') self.emily = UserSet.create_user('emily') self.peter = UserSet.create_user('peter') self.alice = UserSet.create_user('alice') for i in xrange(1, 100): Entry.objects.create( pub_state='public', title='title%s'%i, body='body%s'%i, author=self.james, publish_at=datetime.datetime.now(), publish_at_date=datetime.date.today(), ) for i in xrange(1, 100): Entry.objects.create( pub_state='protected', title='title%s'%i, body='body%s'%i, author=self.emily, publish_at=datetime.datetime.now(), publish_at_date=datetime.date.today(), ) for i in xrange(1, 100): Entry.objects.create( pub_state='private', title='title%s'%i, body='body%s'%i, author=self.peter, publish_at=datetime.datetime.now(), publish_at_date=datetime.date.today(), ) for i in xrange(1, 100): Entry.objects.create( pub_state='draft', title='title%s'%i, body='body%s'%i, author=self.alice, publish_at=datetime.datetime.now(), publish_at_date=datetime.date.today(), ) def test_list_view(self): response = self.client.get(reverse('blogs-entry-list')) self.assertEqual(response.status_code, 200) response = self.client.get(reverse('blogs-entry-list', kwargs={'author': self.james.username})) self.assertEqual(response.status_code, 200) response = self.client.get(reverse('blogs-entry-list', kwargs={'author': self.emily.username})) self.assertEqual(response.status_code, 200) response = self.client.get(reverse('blogs-entry-list', kwargs={'author': self.peter.username})) self.assertEqual(response.status_code, 200) response = self.client.get(reverse('blogs-entry-list', kwargs={'author': self.alice.username})) self.assertEqual(response.status_code, 200) def test_draft_list_view(self): # 外部ユーザーは閲覧不可 response = self.client.get(reverse('blogs-entry-draft-list', kwargs={'author': self.james.username})) self.assertRedirects(response, "%s?next=%s"%(reverse('auth_login'), reverse('blogs-entry-draft-list', kwargs={'author': self.james.username}))) self.userset.login(self.client, self.james) response = self.client.get(reverse('blogs-entry-draft-list', kwargs={'author': self.james.username})) self.assertEqual(response.status_code, 200) def test_archive_year_view(self): kwargs = { 'year': 2010, } response = self.client.get(reverse('blogs-entry-archive-year', kwargs=kwargs)) self.assertEqual(response.status_code, 200) response = self.client.get(reverse('blogs-entry-archive-year', kwargs=dict(kwargs, author=self.james.username))) self.assertEqual(response.status_code, 200) def test_archive_month_view(self): kwargs = { 'year': 2010, 'month': 1, } response = self.client.get(reverse('blogs-entry-archive-month', kwargs=kwargs)) self.assertEqual(response.status_code, 200) response = self.client.get(reverse('blogs-entry-archive-month', kwargs=dict(kwargs, author=self.james.username))) self.assertEqual(response.status_code, 200) def test_archive_day_view(self): kwargs = { 'year': 2010, 'month': 1, 'day': 1, } response = self.client.get(reverse('blogs-entry-archive-day', kwargs=kwargs)) self.assertEqual(response.status_code, 200) response = self.client.get(reverse('blogs-entry-archive-day', kwargs=dict(kwargs, author=self.james.username))) self.assertEqual(response.status_code, 200) def test_archive_today_view(self): response = self.client.get(reverse('blogs-entry-archive-today')) self.assertEqual(response.status_code, 200) kwargs = { 'author': self.james.username, } response = self.client.get(reverse('blogs-entry-archive-today', kwargs=kwargs)) self.assertEqual(response.status_code, 200) def test_detail_view(self): kwargs = { 'year': datetime.date.today().strftime('%Y'), 'month': datetime.date.today().strftime('%m'), 'day': datetime.date.today().strftime('%d'), 'slug': 'title1', } # Jamesの日記は外部ユーザーでも閲覧可能 response = self.client.get(reverse('blogs-entry-detail', kwargs=dict(kwargs, author=self.james.username))) self.assertEqual(response.status_code, 200) # Emilyの日記は内部ユーザー専用 response = self.client.get(reverse('blogs-entry-detail', kwargs=dict(kwargs, author=self.emily.username))) self.assertRedirects(response, "%s?next=%s"%(reverse('auth_login'), reverse('blogs-entry-detail', kwargs=dict(kwargs, author=self.emily.username)))) self.userset.login(self.client, self.emily) response = self.client.get(reverse('blogs-entry-detail', kwargs=dict(kwargs, author=self.emily.username))) self.assertEqual(response.status_code, 200) # Peterの日記は彼専用 response = self.client.get(reverse('blogs-entry-detail', kwargs=dict(kwargs, author=self.peter.username))) self.assertEqual(response.status_code, 403) self.userset.login(self.client, self.peter) response = self.client.get(reverse('blogs-entry-detail', kwargs=dict(kwargs, author=self.peter.username))) self.assertEqual(response.status_code, 200) # Aliceの日記は書きかけなので blogs-entry-detail では NotFound response = self.client.get(reverse('blogs-entry-detail', kwargs=dict(kwargs, author=self.alice.username))) self.assertEqual(response.status_code, 404) response = self.client.get(reverse('blogs-entry-draft-detail', kwargs={'author': self.alice.username, 'object_id': self.alice.blog_entries.all()[0].pk})) self.assertEqual(response.status_code, 403) self.userset.login(self.client, self.alice) response = self.client.get(reverse('blogs-entry-draft-detail', kwargs={'author': self.alice.username, 'object_id': self.alice.blog_entries.all()[0].pk})) self.assertEqual(response.status_code, 200) def test_draft_detail_view(self): # 外部ユーザーは閲覧不可 response = self.client.get(reverse('blogs-entry-draft-detail', kwargs={'author': self.alice.username, 'object_id': self.alice.blog_entries.all()[0].pk})) self.assertRedirects(response, "%s?next=%s"%(reverse('auth_login'), reverse('blogs-entry-draft-detail', kwargs={'author': self.alice.username, 'object_id': self.alice.blog_entries.all()[0].pk}))) self.userset.login(self.client, self.alice) response = self.client.get(reverse('blogs-entry-draft-detail', kwargs={'author': self.alice.username, 'object_id': self.alice.blog_entries.all()[0].pk})) self.assertEqual(response.status_code, 200) def test_create_view(self): kwargs = {'author': self.james} data = {'pub_state': 'public', 'title': 'Hello', 'body': 'world'} data2 = {'pub_state': 'public', 'title': 'Hello2', 'body': 'world2'} # 外部ユーザーはアクセス不可 response = self.client.get(reverse('blogs-entry-create', kwargs=kwargs)) self.assertEqual(response.status_code, 302) response = self.client.post(reverse('blogs-entry-create', kwargs=kwargs), data) self.assertEqual(response.status_code, 302) # Emilyはアクセス不可能 self.assertEqual(self.userset.login(self.client, self.emily), True) response = self.client.get(reverse('blogs-entry-create', kwargs=kwargs)) self.assertEqual(response.status_code, 403) response = self.client.post(reverse('blogs-entry-create', kwargs=kwargs), data) self.assertEqual(response.status_code, 403) # Jamesはアクセス可能 self.assertEqual(self.userset.login(self.client, self.james), True) response = self.client.get(reverse('blogs-entry-create', kwargs=kwargs)) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('blogs-entry-create', kwargs=kwargs), data) self.assertEqual(response.status_code, 302) self.assertEqual(Entry.objects.filter(title='Hello').exists(), True) # スタッフユーザーはアクセス不可能 self.assertEqual(self.userset.login_staff(self.client), True) response = self.client.get(reverse('blogs-entry-create', kwargs=kwargs)) self.assertEqual(response.status_code, 403) response = self.client.post(reverse('blogs-entry-create', kwargs=kwargs), data) self.assertEqual(response.status_code, 403) # スーパーユーザーはアクセス可能 self.assertEqual(self.userset.login_admin(self.client), True) response = self.client.get(reverse('blogs-entry-create', kwargs=kwargs)) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('blogs-entry-create', kwargs=kwargs), data2) self.assertEqual(response.status_code, 302) self.assertEqual(Entry.objects.filter(title='Hello2').exists(), True) def test_update_view(self): kwargs = { 'author': self.james.username, 'object_id': 1, } data = {'pub_state': 'public', 'title': 'Hello', 'body': 'world'} # 外部ユーザーはアクセス不可 response = self.client.get(reverse('blogs-entry-update', kwargs=kwargs)) self.assertEqual(response.status_code, 302) response = self.client.post(reverse('blogs-entry-update', kwargs=kwargs), data) self.assertEqual(response.status_code, 302) # Emilyはアクセス不可能 self.assertEqual(self.userset.login(self.client, self.emily), True) response = self.client.get(reverse('blogs-entry-update', kwargs=kwargs)) self.assertEqual(response.status_code, 403) response = self.client.post(reverse('blogs-entry-update', kwargs=kwargs), data) self.assertEqual(response.status_code, 403) # Jamesはアクセス可能 self.assertEqual(self.userset.login(self.client, self.james), True) response = self.client.get(reverse('blogs-entry-update', kwargs=kwargs)) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('blogs-entry-update', kwargs=kwargs), data) self.assertEqual(response.status_code, 302) self.assertEqual(Entry.objects.filter(title='Hello', pk=1).exists(), True) # スタッフユーザーはアクセス不可能 self.assertEqual(self.userset.login_staff(self.client), True) response = self.client.get(reverse('blogs-entry-update', kwargs=kwargs)) self.assertEqual(response.status_code, 403) response = self.client.post(reverse('blogs-entry-update', kwargs=kwargs), data) self.assertEqual(response.status_code, 403) # スーパーユーザーはアクセス可能 self.assertEqual(self.userset.login_admin(self.client), True) response = self.client.get(reverse('blogs-entry-update', kwargs=kwargs)) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('blogs-entry-update', kwargs=kwargs), data) self.assertEqual(response.status_code, 302) self.assertEqual(Entry.objects.filter(title='Hello', pk=1).exists(), True) def test_delete_view(self): kwargs = { 'author': self.james.username, 'object_id': 1, } kwargs2 = { 'author': self.james.username, 'object_id': 2, } # 外部ユーザーはアクセス不可 response = self.client.get(reverse('blogs-entry-delete', kwargs=kwargs)) self.assertEqual(response.status_code, 302) response = self.client.post(reverse('blogs-entry-delete', kwargs=kwargs)) self.assertEqual(response.status_code, 302) # Emilyはアクセス不可能 self.assertEqual(self.userset.login(self.client, self.emily), True) response = self.client.get(reverse('blogs-entry-delete', kwargs=kwargs)) self.assertEqual(response.status_code, 403) response = self.client.post(reverse('blogs-entry-delete', kwargs=kwargs)) self.assertEqual(response.status_code, 403) # Jamesはアクセス可能 self.assertEqual(self.userset.login(self.client, self.james), True) response = self.client.get(reverse('blogs-entry-delete', kwargs=kwargs)) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('blogs-entry-delete', kwargs=kwargs)) self.assertEqual(response.status_code, 302) self.assertEqual(Entry.objects.filter(pk=1).exists(), False) # スタッフユーザーはアクセス不可能 self.assertEqual(self.userset.login_staff(self.client), True) response = self.client.get(reverse('blogs-entry-delete', kwargs=kwargs2)) self.assertEqual(response.status_code, 403) response = self.client.post(reverse('blogs-entry-delete', kwargs=kwargs2)) self.assertEqual(response.status_code, 403) # スーパーユーザーはアクセス可能 self.assertEqual(self.userset.login_admin(self.client), True) response = self.client.get(reverse('blogs-entry-delete', kwargs=kwargs2)) self.assertEqual(response.status_code, 200) response = self.client.post(reverse('blogs-entry-delete', kwargs=kwargs2)) self.assertEqual(response.status_code, 302) self.assertEqual(Entry.objects.filter(pk=2).exists(), False)