def setUp(self): super().setUp() self.platform = PlatformFactory() self.category = CategoryFactory() self.administrators = ( PersonaFactory(), PersonaFactory(), PersonaFactory(), ) self.product = ProductFactory( title="かわずたんのゲームだよ☆", administrators=tuple(map(lambda x: x.pk, self.administrators)), ) self.product_kwargs = { 'title': 'クラッカーだよ!!!', 'published_at': datetime.date.today(), 'platforms': (self.platform.pk, ), 'categories': (self.category.pk, ), 'administrators': tuple(map(lambda x: x.pk, self.administrators)), 'description': '剣と魔法の物語です', 'screenshots-TOTAL_FORMS': 0, # No screenshots 'screenshots-INITIAL_FORMS': 1, 'screenshots-MAX_NUM_FORMS': 1000, 'url_releases-TOTAL_FORMS': 0, # No URL release 'url_releases-INITIAL_FORMS': 1, 'url_releases-MAX_NUM_FORMS': 1000, 'package_releases-TOTAL_FORMS': 0, # No package release 'package_releases-INITIAL_FORMS': 1, 'package_releases-MAX_NUM_FORMS': 1000, } self.image_file = TEST_FILENAME
def setUp(self): self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def test_category_list(self): """ カテゴリ一に属してる記事一覧が見れる """ user0 = PersonaFactory() user1 = PersonaFactory() category0 = CategoryFactory(author=user0, label="ゲームレビュー") category1 = CategoryFactory(author=user1, label="ゲームレビュー") entry0 = EntryFactory(category=category0, author=user0) entry1 = EntryFactory(category=category0, author=user0) entry2 = EntryFactory(category=category1, author=user1) entry3 = EntryFactory(category=category1, pub_state='draft', author=user1) url = '/blogs/{}/category/{}/'.format(user0.username, category0.pk) r = self.client.get(url) self.assertEqual(len(r.context['object_list']), 2) self.assertTrue(entry0 in r.context['object_list']) self.assertTrue(entry1 in r.context['object_list']) url = '/blogs/{}/category/{}/'.format(user1.username, category1.pk) r = self.client.get(url) self.assertTrue(len(r.context['object_list']), 1) self.assertTrue(entry2 in r.context['object_list']) self.assertTrue('author' in r.context)
def setUp(self): self.user = PersonaFactory(username='******') self.user.set_password('password') self.other = PersonaFactory(username='******') self.user.save() self.other.save() self.entry = EntryFactory(title='かわずたんだよ☆', author=self.user)
def setUp(self): persona_factory = lambda x: PersonaFactory(username=x, role=x) article_factory = lambda **kwargs: ArticleFactory( author=self.users['article_author'], **kwargs) star_factory = lambda **kwargs: StarFactory( author=self.users['star_author'], **kwargs) self.users = dict( adam=persona_factory('adam'), seele=persona_factory('seele'), nerv=persona_factory('nerv'), children=persona_factory('children'), wille=persona_factory('wille'), anonymous=AnonymousUser(), article_author=PersonaFactory(username='******', role='children'), star_author=PersonaFactory(username='******', role='children'), ) self.article = article_factory() self.protected_article = article_factory(pub_state='protected') self.star0 = star_factory(content_object=self.article) self.star1 = star_factory(content_object=self.article) self.star2 = star_factory(content_object=self.protected_article) self.star3 = star_factory(content_object=self.protected_article)
def setUp(self): super().setUp() self.platform = PlatformFactory() self.category = CategoryFactory() self.administrators = ( PersonaFactory(), PersonaFactory(), PersonaFactory(), ) self.product_kwargs = { 'title': 'かわずたんファンタジー', 'slug': 'kawaztan-fantasy', 'thumbnail': 'thumbnail.png', 'published_at': datetime.date.today(), 'platforms': (self.platform.pk, ), 'categories': (self.category.pk, ), 'administrators': tuple(map(lambda x: x.pk, self.administrators)), 'description': '剣と魔法の物語です', 'screenshots-TOTAL_FORMS': 0, # No screenshots 'screenshots-INITIAL_FORMS': 0, 'screenshots-MAX_NUM_FORMS': 1000, 'url_releases-TOTAL_FORMS': 0, # No URL release 'url_releases-INITIAL_FORMS': 0, 'url_releases-MAX_NUM_FORMS': 1000, 'package_releases-TOTAL_FORMS': 0, # No package release 'package_releases-INITIAL_FORMS': 0, 'package_releases-MAX_NUM_FORMS': 1000, } self.image_file = TEST_FILENAME
def test_anybody_have_view_perm(self): """お知らせを見るモデル権限は全員が持つ""" user = PersonaFactory(role='nerv') self.assertTrue(user.has_perm('announcements.view_announcement')) user = PersonaFactory() self.assertTrue(user.has_perm('announcements.view_announcement')) user = AnonymousUser() self.assertTrue(user.has_perm('announcements.view_announcement'))
def setUp(self): self.user = PersonaFactory() self.user.set_password('password') self.other = PersonaFactory() self.other.set_password('password') self.user.save() self.other.save() self.event = EventFactory(title='変更前のイベントです', organizer=self.user)
def test_is_member(self): '''Tests is_member returns correct value''' user = PersonaFactory() user2 = PersonaFactory() project = ProjectFactory(administrator=user) self.assertEqual(project.members.count(), 1) self.assertEqual(project.members.all()[0], user) self.assertTrue(project.is_member(user)) self.assertFalse(project.is_member(user2))
def setUp(self): self.users = (PersonaFactory(role='adam'), PersonaFactory(role='seele'), PersonaFactory(role='nerv'), PersonaFactory(role='children'), PersonaFactory(role='wille'), AnonymousUser()) self.profiles = (RegistrationProfileFactory(_status='untreated'), RegistrationProfileFactory(_status='accepted'), RegistrationProfileFactory(_status='rejected'))
def setUp(self): self.user = PersonaFactory() self.wille = PersonaFactory(role='wille') self.entries = ( EntryFactory(), EntryFactory(author=self.user), EntryFactory(pub_state='protected'), EntryFactory(pub_state='protected', author=self.user), EntryFactory(pub_state='draft'), )
def test_organizer_attend_event_automatically(self): """ Event organizer attend the event automatically """ user1 = PersonaFactory() user2 = PersonaFactory() event = EventFactory(organizer=user1) self.assertEqual(event.organizer, user1) self.assertTrue(event.is_attendee(user1)) self.assertFalse(event.is_attendee(user2))
def test_is_attendee(self): """ is_attendee(user) method should return True if the specified user is in attendee """ user1 = PersonaFactory() user2 = PersonaFactory() event = EventFactory() event.attend(user1) self.assertTrue(event.is_attendee(user1)) self.assertFalse(event.is_attendee(user2))
def setUp(self): self.members = ( PersonaFactory(role='adam'), PersonaFactory(role='seele'), PersonaFactory(role='nerv'), PersonaFactory(role='children'), ) self.non_members = ( PersonaFactory(role='wille'), AnonymousUser(), )
def setUp(self): self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save() self.other = PersonaFactory() self.other.set_password('password') self.other.save() self.project = ProjectFactory(administrator=self.user)
def setUp(self): self.user = PersonaFactory(username='******') self.user.set_password('password') self.other = PersonaFactory(username='******') self.other.set_password('password') self.user.save() self.other.save() self.project = ProjectFactory(title='かわずたんのゲームだよ☆', administrator=self.user) self.category = CategoryFactory() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def setUp(self): self.announcements = ( AnnouncementFactory(), AnnouncementFactory(pub_state='protected'), AnnouncementFactory(pub_state='draft'), ) self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def setUp(self): self.entries = ( EntryFactory(), EntryFactory(pub_state='protected'), EntryFactory(pub_state='draft'), ) self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def test_administrators_can_quit(self): """ 管理者として参加しているメンバーは退会可 """ user1 = PersonaFactory() user2 = PersonaFactory() product = ProductFactory(administrators=(user1, user2)) self.assertEqual(product.administrators.count(), 2) product.quit(user1) self.assertEqual(product.administrators.count(), 1) self.assertFalse(user1 in product.administrators.all()) self.assertTrue(user2 in product.administrators.all())
def setUp(self): self.projects = ( ProjectFactory(), ProjectFactory(pub_state='protected'), ProjectFactory(pub_state='draft'), ) self.user = PersonaFactory() self.user.set_password('password') self.user.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def test_active_members_contains_active_user_only(self): '''event.active_attendeesはアクティブユーザーのみを含む''' event = EventFactory() user0 = PersonaFactory(is_active=True) user1 = PersonaFactory(is_active=False) event.attend(user0) event.attend(user1) # 管理者含め3人 self.assertEqual(len(event.active_attendees), 2) self.assertIn(event.organizer, event.active_attendees) self.assertIn(user0, event.active_attendees) self.assertNotIn(user1, event.active_attendees)
def test_active_members_contains_active_user_only(self): '''project.active_membersはアクティブユーザーのみを含む''' project = ProjectFactory() user0 = PersonaFactory(is_active=True) user1 = PersonaFactory(is_active=False) project.join(user0) project.join(user1) # 管理者含め3人 self.assertEqual(len(project.active_members), 2) self.assertIn(project.administrator, project.active_members) self.assertIn(user0, project.active_members) self.assertNotIn(user1, project.active_members)
def setUp(self): self.members = ( PersonaFactory(role='adam'), PersonaFactory(role='seele'), PersonaFactory(role='nerv'), PersonaFactory(role='children'), ) self.non_members = ( PersonaFactory(role='wille'), AnonymousUser(), ) self.platform = PlatformFactory() self.category = CategoryFactory()
def setUp(self): super().setUp() self.article_author = PersonaFactory(username='******', role='children') self.comment_author = PersonaFactory(username='******', role='children') self.users['article_author'] = self.article_author self.users['comment_author'] = self.comment_author self.article = CommentTestArticle(author=self.article_author) self.article.save() self.comment = CommentFactory(content_object=self.article, user=self.comment_author)
def setUp(self): super().setUp() self.users['administrator'] = PersonaFactory(username='******', role='children') self.users['project_member'] = PersonaFactory( username='******', role='children') self.project = ProjectFactory() self.project.join(self.users['project_member']) self.product = ProductFactory(project=self.project) # Note: # self.product.join で加えても良いが、内部で user.has_perm を呼ぶ # ので django-permission により結果がキャッシュされ、今後のテスト # 結果に影響するため、直接 administrators.add を呼び出している self.product.administrators.add(self.users['administrator'])
def setUp(self): self.user = PersonaFactory(role='nerv') self.user.set_password('password') self.user.save() self.nerv = PersonaFactory(role='nerv') self.nerv.set_password('password') self.nerv.save() self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save() self.other = PersonaFactory() self.other.set_password('password') self.other.save() self.announcement = AnnouncementFactory(author=self.user)
def setUp(self): self.user = PersonaFactory(username='******', role='nerv') self.user.set_password('password') self.other = PersonaFactory(username='******') self.other.set_password('password') self.user.save() self.other.save() self.nerv = PersonaFactory(role='nerv', username='******') self.nerv.set_password('password') self.nerv.save() self.announcement = AnnouncementFactory(title='かわずたんのお知らせだよ☆', author=self.user) self.wille = PersonaFactory(role='wille') self.wille.set_password('password') self.wille.save()
def setUp(self): super().setUp() self.users['organizer'] = PersonaFactory(username='******', role='children') self.users['attendee'] = PersonaFactory(username='******', role='children') self.event = EventFactory(organizer=self.users['organizer']) self.event.attendees.add(self.users['attendee']) self.event.save() self.event_over_restriction = EventFactory(number_restriction=1) static_now_past = lambda: static_now() - datetime.timedelta(hours=48) attendance_deadline = static_now() - datetime.timedelta(hours=24) with mock.patch('django.utils.timezone.now', static_now_past): self.event_over_deadline = EventFactory( attendance_deadline=attendance_deadline)
def setUp(self): super().setUp() self.article_author = PersonaFactory(username='******', role='children') self.star_author = PersonaFactory(username='******', role='children') self.users['article_author'] = self.article_author self.users['star_author'] = self.star_author self.article = ArticleFactory(author=self.article_author) self.protected_article = ArticleFactory(author=self.article_author, pub_state='protected') self.star = StarFactory(content_object=self.article, author=self.star_author) self.protected_star = StarFactory( content_object=self.protected_article, author=self.star_author)
def test_quit_permission_with_obj(self): """ 最後ではない参加済みのユーザーのみがオブジェクトの脱退権限を持つ """ self._test('adam', 'quit', obj=self.product) self._test('seele', 'quit', obj=self.product, neg=True) self._test('nerv', 'quit', obj=self.product, neg=True) self._test('children', 'quit', obj=self.product, neg=True) self._test('wille', 'quit', obj=self.product, neg=True) self._test('anonymous', 'quit', obj=self.product, neg=True) self._test('project_member', 'quit', obj=self.product, neg=True) # 最後の一人なので脱退できない self._test('administrator', 'quit', obj=self.product, neg=True) # もう一人参加者を増やす new_administrator = PersonaFactory() self.product.join(new_administrator) # django-permissionのキャッシュの問題で権限が更新されないので # オブジェクトを再度取得している self.users['administrator'] = Persona.objects.get( pk=self.users['administrator'].pk, ) # 最後の一人になるので同じ人が脱退できるようになる self._test('administrator', 'quit', obj=self.product)