Example #1
0
 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
Example #2
0
 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()
Example #3
0
    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)
Example #4
0
 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)
Example #5
0
    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)
Example #6
0
 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
Example #7
0
 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'))
Example #8
0
 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)
Example #9
0
 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))
Example #10
0
 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'))
Example #11
0
 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'),
     )
Example #12
0
 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))
Example #13
0
 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))
Example #14
0
 def setUp(self):
     self.members = (
         PersonaFactory(role='adam'),
         PersonaFactory(role='seele'),
         PersonaFactory(role='nerv'),
         PersonaFactory(role='children'),
     )
     self.non_members = (
         PersonaFactory(role='wille'),
         AnonymousUser(),
     )
Example #15
0
 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)
Example #16
0
 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()
Example #17
0
 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()
Example #18
0
 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()
Example #19
0
 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())
Example #20
0
 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()
Example #21
0
    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)
Example #22
0
    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)
Example #23
0
 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()
Example #24
0
    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)
Example #25
0
 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'])
Example #26
0
 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)
Example #27
0
 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()
Example #28
0
    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)
Example #29
0
    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)
Example #30
0
    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)