Example #1
0
class ProjectJoinViewTestCase(TestCase):
    def setUp(self):
        self.project = ProjectFactory()
        self.user = PersonaFactory()
        self.user.set_password('password')
        self.user.save()

    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/'))

    def test_get_method_is_not_allowed(self):
        '''
        Tests authorized attempt to access to ProjectJoinViewTestCase with GET method,
        it returns 405
        '''
        self.assertTrue(self.client.login(username=self.user, password='******'))
        r = self.client.get('/projects/1/join/')
        self.assertEqual(r.status_code, 405)

    def test_user_can_join_project_via_project_join_view(self):
        '''
        Tests user can join to project via ProjectJoinView
        then redirects to project permalinks
        '''
        self.assertTrue(self.client.login(username=self.user, password='******'))
        r = self.client.post('/projects/1/join/')
        self.assertRedirects(r, '/projects/{}/'.format(self.project.slug))
        self.assertEqual(self.project.members.count(), 2)
        self.assertTrue(self.user in self.project.members.all())
Example #2
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 #3
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 #4
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 #5
0
 def setUp(self):
     arguments_list = (
         (-3, -2, {
             'pub_state': 'public'
         }),  # 2000/9/1 ~ 2000/9/2
         (1, 2, {
             'pub_state': 'public'
         }),  # 2000/9/5 ~ 2000/9/6
         (365, 366, {
             'pub_state': 'public'
         }),  # 2001/9/5 ~ 2001/9/6
         (-2, -1, {
             'pub_state': 'protected'
         }),  # 2000/9/2 ~ 2000/9/3
         (0, 3, {
             'pub_state': 'protected'
         }),  # 2000/9/4 ~ 2000/9/5
         (367, 368, {
             'pub_state': 'protected'
         }),  # 2001/9/7 ~ 2001/9/8
         (-3, -2, {
             'pub_state': 'draft'
         }),  # 2000/9/2 ~ 2000/9/3
         (1, 2, {
             'pub_state': 'draft'
         }),  # 2000/9/5 ~ 2000/9/6
     )
     self.events = [
         event_factory_with_relative(*args) for args in arguments_list
     ]
     self.user = PersonaFactory()
     self.user.set_password('password')
     self.user.save()
Example #6
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 #7
0
class AnnouncementAddPermissionTestCase(TestCase):
    def setUp(self):
        self.nerv = PersonaFactory(role='nerv')
        self.user = PersonaFactory()
        self.wille = PersonaFactory(role='wille')
        self.anonymous = AnonymousUser()

    def test_staffs_have_add_announcement_perm(self):
        """
        スタッフはお知らせを作成する権限を持つ
        """
        self.assertTrue(self.nerv.has_perm(
            'announcements.add_announcement'))

    def test_users_dont_have_add_announcement_perm(self):
        """
        ログインユーザーはお知らせを作成する権限を持たない
        """
        self.assertFalse(self.user.has_perm(
            'announcements.add_announcement'))

    def test_wille_dont_have_add_announcement_perm(self):
        """
        Willeユーザーはお知らせを作成する権限を持たない
        """
        self.assertFalse(self.wille.has_perm(
            'announcements.add_announcement'))

    def test_anonymous_dont_have_add_announcement_perm(self):
        """
        非ログインユーザーはお知らせを作成する権限を持たない
        """
        self.assertFalse(self.anonymous.has_perm(
            'announcements.add_announcement'))
Example #8
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 #9
0
class AnnouncementAddPermissionTestCase(TestCase):
    def setUp(self):
        self.nerv = PersonaFactory(role='nerv')
        self.user = PersonaFactory()
        self.wille = PersonaFactory(role='wille')
        self.anonymous = AnonymousUser()

    def test_staffs_have_add_announcement_perm(self):
        """
        スタッフはお知らせを作成する権限を持つ
        """
        self.assertTrue(self.nerv.has_perm('announcements.add_announcement'))

    def test_users_dont_have_add_announcement_perm(self):
        """
        ログインユーザーはお知らせを作成する権限を持たない
        """
        self.assertFalse(self.user.has_perm('announcements.add_announcement'))

    def test_wille_dont_have_add_announcement_perm(self):
        """
        Willeユーザーはお知らせを作成する権限を持たない
        """
        self.assertFalse(self.wille.has_perm('announcements.add_announcement'))

    def test_anonymous_dont_have_add_announcement_perm(self):
        """
        非ログインユーザーはお知らせを作成する権限を持たない
        """
        self.assertFalse(
            self.anonymous.has_perm('announcements.add_announcement'))
Example #10
0
class AccountEditPermissionTestCase(TestCase):

    def setUp(self):
        self.user = PersonaFactory()
        self.anonymous = AnonymousUser()
        self.account = AccountFactory()

    def test_owner_cannot_change_account(self):
        '''Tests owners don't have change permission of Account'''
        self.assertFalse(self.account.user.has_perm('profiles.change_account', obj=self.account))

    def test_others_cannot_change_account(self):
        '''Tests others don't have change permission of Account'''
        self.assertFalse(self.user.has_perm('profiles.change_account', obj=self.account))

    def test_anonymous_cannot_change_account(self):
        '''Tests anonymous don't have change permission of Account'''
        self.assertFalse(self.anonymous.has_perm('profiles.change_account', obj=self.account))

    def test_owner_can_delete_account(self):
        '''Tests owners have delete permission of Account'''
        self.assertTrue(self.account.user.has_perm('profiles.delete_account', obj=self.account))

    def test_others_cannot_delete_account(self):
        '''Tests others don't have delete permission of Account'''
        self.assertFalse(self.user.has_perm('profiles.delete_account', obj=self.account))

    def test_anonymous_cannot_delete_account(self):
        '''Tests anonymous don't have delete permission of Account'''
        self.assertFalse(self.anonymous.has_perm('profiles.delete_account', obj=self.account))
Example #11
0
class ProfileEditPermissionTestCase(TestCase):

    def setUp(self):
        self.user = PersonaFactory()
        self.anonymous = AnonymousUser()
        self.profile = ProfileFactory()

    def test_owner_can_change_profile(self):
        '''Tests owner has change permission of Profile'''
        self.assertTrue(self.profile.user.has_perm('profiles.change_profile', obj=self.profile))

    def test_others_cannot_change_profile(self):
        '''Tests others don't have change permission of Profile'''
        self.assertFalse(self.user.has_perm('profiles.change_profile', obj=self.profile))

    def test_anonymous_cannot_change_profile(self):
        '''Tests anonymous don't have change permission of Profile'''
        self.assertFalse(self.anonymous.has_perm('profiles.change_profile', obj=self.profile))

    def test_owner_cannot_delete_profile(self):
        '''Tests owner don't have delete permission of Profile'''
        self.assertFalse(self.profile.user.has_perm('profiles.delete_profile', obj=self.profile))

    def test_others_cannot_delete_profile(self):
        '''Tests others don't have delete permission of Profile'''
        self.assertFalse(self.user.has_perm('profiles.delete_profile', obj=self.profile))

    def test_anonymous_cannot_delete_profile(self):
        '''Tests anonymous don't have delete permission of Profile'''
        self.assertFalse(self.anonymous.has_perm('profiles.delete_profile', obj=self.profile))
Example #12
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 #13
0
class AnnouncementAddPermissionTestCase(TestCase):
    def setUp(self):
        self.nerv = PersonaFactory(role='nerv')
        self.user = PersonaFactory()
        self.wille = PersonaFactory(role='wille')
        self.anonymous = AnonymousUser()

    def test_staffs_have_add_announcement_permission(self):
        '''
        Tests staffs have permission to add announcements
        '''
        self.assertTrue(self.nerv.has_perm('announcements.add_announcement'))

    def test_users_dont_have_add_announcement_permission(self):
        '''
        Tests users do not have permission to add announcements
        '''
        self.assertFalse(self.user.has_perm('announcements.add_announcement'))

    def test_wille_dont_have_add_announcement_permission(self):
        '''
        Tests wille users do not have permission to add announcements
        '''
        self.assertFalse(self.wille.has_perm('announcements.add_announcement'))

    def test_anonymous_dont_have_add_announcement_permission(self):
        '''
        Tests anonymous users do not have permission to add announcements
        '''
        self.assertFalse(self.anonymous.has_perm('announcements.add_announcement'))
Example #14
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 #15
0
class EntryDetailViewTestCase(TestCase):
    def setUp(self):
        self.user = PersonaFactory()
        self.user.set_password('password')
        self.user.save()

    def test_anonymous_user_can_view_public_entry(self):
        '''Tests anonymous user can view public entry'''
        entry = EntryFactory()
        r = self.client.get(entry.get_absolute_url())
        self.assertTemplateUsed(r, 'blogs/entry_detail.html')
        self.assertEqual(r.context_data['object'], entry)

    def test_authorized_user_can_view_public_entry(self):
        '''Tests authorized user can view public entry'''
        entry = EntryFactory()
        self.assertTrue(self.client.login(username=self.user, password='******'))
        r = self.client.get(entry.get_absolute_url())
        self.assertTemplateUsed(r, 'blogs/entry_detail.html')
        self.assertEqual(r.context_data['object'], entry)

    def test_anonymous_user_can_not_view_protected_entry(self):
        '''Tests anonymous user can not view protected entry'''
        entry = EntryFactory(pub_state='protected')
        r = self.client.get(entry.get_absolute_url())
        self.assertRedirects(r, '{0}?next={1}'.format(settings.LOGIN_URL, entry.get_absolute_url()))

    def test_authorized_user_can_view_protected_entry(self):
        '''Tests authorized user can view public entry'''
        entry = EntryFactory(pub_state='protected')
        self.assertTrue(self.client.login(username=self.user, password='******'))
        r = self.client.get(entry.get_absolute_url())
        self.assertTemplateUsed(r, 'blogs/entry_detail.html')
        self.assertEqual(r.context_data['object'], entry)

    def test_anonymous_user_can_not_view_draft_entry(self):
        '''Tests anonymous user can not view draft entry'''
        entry = EntryFactory(pub_state='draft')
        r = self.client.get(entry.get_absolute_url())
        self.assertRedirects(r, '{0}?next={1}'.format(settings.LOGIN_URL, entry.get_absolute_url()))

    def test_others_can_not_view_draft_entry(self):
        '''
        Tests others can not view draft entry
        User will redirect to '/entries/1/update/'
        '''
        entry = EntryFactory(pub_state='draft')
        self.assertTrue(self.client.login(username=self.user, password='******'))
        r = self.client.get(entry.get_absolute_url())
        self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/{}/1/update/'.format(entry.author.username))

    def test_organizer_can_view_draft_entry(self):
        '''Tests organizer can view draft entry on update view'''
        entry = EntryFactory(pub_state='draft', author=self.user)
        self.assertTrue(self.client.login(username=self.user, password='******'))
        r = self.client.get(entry.get_absolute_url())
        self.assertTemplateUsed(r, 'blogs/entry_form.html')
        self.assertEqual(r.context_data['object'], entry)
Example #16
0
    def test_member_cannot_join_project(self):
        '''Tests already member user cannot join to projects'''
        user = PersonaFactory()
        self.project.join(user)

        # django-permissionのキャッシュ対応
        user = Persona.objects.get(pk=user.pk)

        self.assertFalse(user.has_perm('projects.join_project', self.project))
Example #17
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 #18
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 #19
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 #20
0
class EventListViewTestCase(TestCase):
    def setUp(self):
        arguments_list = (
            (-3, -2, {'pub_state':'public'}), # 2000/9/1 ~ 2000/9/2
            (1, 2, {'pub_state':'public'}), # 2000/9/5 ~ 2000/9/6
            (-2, -1, {'pub_state':'protected'}), # 2000/9/3 ~ 2000/9/4
            (0, 1, {'pub_state':'protected'}), # 2000/9/4 ~ 2000/9/5
            (-3, -2, {'pub_state':'draft'}), # 2000/9/2 ~ 2000/9/3
            (1, 2, {'pub_state':'draft'}), # 2000/9/5 ~ 2000/9/6
        )
        self.events = [event_factory_with_relative(*args)
                       for args in arguments_list]
        self.user = PersonaFactory()
        self.user.set_password('password')
        self.user.save()

    def test_anonymous_can_view_only_public_events(self):
        '''
        Tests anonymous user can view public Events only.
        The protected events are not displayed.
        '''
        user = AnonymousUser()
        r = self.client.get('/events/')
        self.assertTemplateUsed('events/event_list.html')
        self.assertTrue('object_list', r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 1, 'object_list has one event')
        self.assertEqual(list[0], self.events[1], '2000/9/5 ~ 6 public')

    def test_authenticated_can_view_all_publish_events(self):
        '''
        Tests authenticated user can view all published events.
        '''
        self.assertTrue(self.client.login(username=self.user,
                                          password='******'))
        r = self.client.get('/events/')
        self.assertTemplateUsed('events/event_list.html')
        self.assertTrue('object_list', r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 2, 'object_list has two events')
        self.assertEqual(list[0], self.events[3], '2000/9/5 ~ 6 protected')
        self.assertEqual(list[1], self.events[1], '2000/9/5 ~ 6 public')

    def test_list_with_categories(self):
        """
        イベントリストでCategoryのfilterが有効になっている
        """
        category = CategoryFactory()
        event1 = EventFactory(category=category)
        event2 = EventFactory()
        self.assertTrue(self.client.login(username=self.user,
                                          password='******'))
        r = self.client.get('/events/?category={}'.format(category.pk))
        self.assertTemplateUsed(r, 'events/event_list.html')
        self.assertEqual(r.context['filter'].qs.count(), 1)
        self.assertTrue(event1 in r.context['filter'].qs)
Example #21
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 #22
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 #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(),
     )
Example #24
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 #25
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 #26
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 #27
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 #28
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 #29
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 #30
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 #31
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 #32
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 #33
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 #34
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 #35
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 #36
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 #37
0
class AnnouncementListViewTestCase(TestCase):
    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 test_anonymous_can_view_only_public_announcements(self):
        '''
        Tests anonymous user can view public Announcement only.
        The protected announcements are not displayed.
        '''
        user = AnonymousUser()
        r = self.client.get('/announcements/')
        self.assertTemplateUsed('announcements/announcement_list.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 1, 'object_list has one announcement')
        self.assertEqual(list[0], self.announcements[0])

    def test_wille_can_view_only_public_announcements(self):
        '''
        Tests wille user can view public Announcement only.
        The protected announcements are not displayed.
        '''
        self.assertTrue(
            self.client.login(username=self.wille, password='******'))
        r = self.client.get('/announcements/')
        self.assertTemplateUsed('announcements/announcement_list.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 1, 'object_list has one announcement')
        self.assertEqual(list[0], self.announcements[0])

    def test_authenticated_can_view_all_publish_announcements(self):
        '''
        Tests authenticated user can view all published announcements.
        '''
        self.assertTrue(
            self.client.login(username=self.user, password='******'))
        r = self.client.get('/announcements/')
        self.assertTemplateUsed('announcements/announcement_list.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 2, 'object_list has two announcements')
        self.assertTrue(self.announcements[1] in list)
        self.assertTrue(self.announcements[0] in list)

    def test_paginate_by(self):
        """
        paginator_byが5件にセットされている
        """
        self.assertEqual(AnnouncementListView.paginate_by, 5)
Example #38
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 #39
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 #40
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 #41
0
class EntryAuthorMonthArchiveViewTestCase(TestCase):
    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.entries = (
            EntryFactory(),
            EntryFactory(author=self.user),
            EntryFactory(pub_state='protected'),
            EntryFactory(pub_state='protected', author=self.user),
            EntryFactory(pub_state='draft'),
        )

    def test_anonymous_can_view_only_public_entries_of_the_author(self):
        '''
        Tests anonymous user can view public Entry written by specific author in the month only.
        The protected entries are not displayed.
        '''
        user = AnonymousUser()
        entry = self.entries[0]
        lt = get_local_time(entry.published_at)
        r = self.client.get('/blogs/{0}/{1}/{2}/'.format(self.user.username, lt.year, lt.month))
        self.assertTemplateUsed('blogs/entry_archive_month.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 1, 'object_list has one entry')
        self.assertEqual(list[0], self.entries[1])

    def test_wille_can_view_only_public_entries_of_the_author(self):
        '''
        Tests wille user can view public Entry written by specific author in the month only.
        The protected entries are not displayed.
        '''
        self.assertTrue(self.client.login(username=self.wille, password='******'))
        entry = self.entries[0]
        lt = get_local_time(entry.published_at)
        r = self.client.get('/blogs/{0}/{1}/{2}/'.format(self.user.username, lt.year, lt.month))
        self.assertTemplateUsed('blogs/entry_archive_month.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 1, 'object_list has one entry')
        self.assertEqual(list[0], self.entries[1])

    def test_authenticated_can_view_all_publish_entries_of_the_author(self):
        '''
        Tests authenticated user can view all published entries written by specific author in the month.
        '''
        entry = self.entries[0]
        self.assertTrue(self.client.login(username=self.user, password='******'))
        lt = get_local_time(entry.published_at)
        r = self.client.get('/blogs/{0}/{1}/{2}/'.format(self.user.username, lt.year, lt.month))
        self.assertTemplateUsed('blogs/entry_archive_month.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')
Example #42
0
class EntryMonthArchiveViewTestCase(TestCase):
    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_anonymous_can_view_only_public_entries(self):
        '''
        Tests anonymous user can view public Entry written in the month only.
        The protected entries are not displayed.
        '''
        user = AnonymousUser()
        entry = self.entries[0]
        lt = get_local_time(entry.published_at)
        r = self.client.get('/blogs/{0}/{1}/'.format(lt.year, lt.month))
        self.assertTemplateUsed('blogs/entry_archive_month.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 1, 'object_list has one entry')
        self.assertEqual(list[0], self.entries[0])

    def test_wille_can_view_only_public_entries(self):
        '''
        Tests wille user can view public Entry written in the month only.
        The protected entries are not displayed.
        '''
        self.assertTrue(
            self.client.login(username=self.wille, password='******'))
        entry = self.entries[0]
        lt = get_local_time(entry.published_at)
        r = self.client.get('/blogs/{0}/{1}/'.format(lt.year, lt.month))
        self.assertTemplateUsed('blogs/entry_archive_month.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 1, 'object_list has one entry')
        self.assertEqual(list[0], self.entries[0])

    def test_authenticated_can_view_all_publish_entries(self):
        '''
        Tests authenticated user can view all published entries written in the month.
        '''
        entry = self.entries[0]
        self.assertTrue(
            self.client.login(username=self.user, password='******'))
        lt = get_local_time(entry.published_at)
        r = self.client.get('/blogs/{0}/{1}/'.format(lt.year, lt.month))
        self.assertTemplateUsed('blogs/entry_archive_month.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[1], 'protected')
        self.assertEqual(list[1], self.entries[0], 'public')
Example #43
0
class ProductDeletePermissionTestCase(TestCase):
    def setUp(self):
        self.product = ProductFactory()
        self.user = PersonaFactory()
        self.wille = PersonaFactory(role='wille')
        self.anonymous = AnonymousUser()

    def test_anonymous_dont_have_delete_permission(self):
        '''
        Test anonymous users do not have delete product permission
        '''
        self.assertFalse(self.anonymous.has_perm('products.delete_product'))

    def test_wille_dont_have_delete_permission(self):
        '''
        Test wille users do not have delete product permission
        '''
        self.assertFalse(self.wille.has_perm('products.delete_product'))

    def test_general_user_have_delete_permission(self):
        '''
        Test general user have delete product permission
        '''
        self.assertTrue(self.user.has_perm('products.delete_product'))

    def test_anonymous_dont_have_delete_permission_with_object(self):
        '''
        Test anonymous users do not have delete product permission
        '''
        self.assertFalse(self.anonymous.has_perm('products.delete_product', self.product))

    def test_wille_dont_have_delete_permission_with_object(self):
        '''
        Test wille users do not have delete product permission
        '''
        self.assertFalse(self.wille.has_perm('products.delete_product', self.product))

    def test_other_user_dont_have_delete_permission_with_object(self):
        '''
        Test other user don't have delete product permission
        '''
        self.assertFalse(self.user.has_perm('products.delete_product', self.product))

    def test_administrators_have_delete_permission_with_object(self):
        '''
        Test administrators have delete product permission
        '''
        self.product.administrators.add(self.user)
        self.assertTrue(self.user.has_perm('products.delete_product', self.product))
Example #44
0
class AnnouncementListViewTestCase(TestCase):
    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 test_anonymous_can_view_only_public_announcements(self):
        '''
        Tests anonymous user can view public Announcement only.
        The protected announcements are not displayed.
        '''
        user = AnonymousUser()
        r = self.client.get('/announcements/')
        self.assertTemplateUsed('announcements/announcement_list.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 1, 'object_list has one announcement')
        self.assertEqual(list[0], self.announcements[0])

    def test_wille_can_view_only_public_announcements(self):
        '''
        Tests wille user can view public Announcement only.
        The protected announcements are not displayed.
        '''
        self.assertTrue(self.client.login(username=self.wille, password='******'))
        r = self.client.get('/announcements/')
        self.assertTemplateUsed('announcements/announcement_list.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 1, 'object_list has one announcement')
        self.assertEqual(list[0], self.announcements[0])

    def test_authenticated_can_view_all_publish_announcements(self):
        '''
        Tests authenticated user can view all published announcements.
        '''
        self.assertTrue(self.client.login(username=self.user, password='******'))
        r = self.client.get('/announcements/')
        self.assertTemplateUsed('announcements/announcement_list.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 2, 'object_list has two announcements')
        self.assertTrue(self.announcements[1] in list)
        self.assertTrue(self.announcements[0] in list)

    def test_paginate_by(self):
        """
        paginator_byが5件にセットされている
        """
        self.assertEqual(AnnouncementListView.paginate_by, 5)
Example #45
0
 def test_anonymous_dont_have_delete_announcement_permission_with_object(self):
     '''
     Tests anonymous users do not have permission to delete specific announcement
     '''
     self.assertFalse(self.anonymous.has_perm('announcements.delete_announcement', obj=self.announcement))
     self.wille = PersonaFactory(role='wille')
     self.anonymous = AnonymousUser()
     self.announcement = AnnouncementFactory()
Example #46
0
class EntryTodayArchiveViewTestCase(TestCase):
    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_anonymous_can_view_only_public_entries(self):
        '''
        Tests anonymous user can view public Entry written on today only.
        The protected entries are not displayed.
        '''
        entry = self.entries[0]
        user = AnonymousUser()
        r = self.client.get('/blogs/today/')
        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(), 1, 'object_list has one entry')
        self.assertEqual(list[0], self.entries[0])

    def test_wille_can_view_only_public_entries(self):
        '''
        Tests wille user can view public Entry written on today only.
        The protected entries are not displayed.
        '''
        self.assertTrue(self.client.login(username=self.wille, password='******'))
        entry = self.entries[0]
        r = self.client.get('/blogs/today/')
        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(), 1, 'object_list has one entry')
        self.assertEqual(list[0], self.entries[0])

    def test_authenticated_can_view_all_publish_entries(self):
        '''
        Tests authenticated user can view all published entries written on today.
        '''
        entry = self.entries[0]
        self.assertTrue(self.client.login(username=self.user, password='******'))
        r = self.client.get('/blogs/today/')
        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[1], 'protected')
        self.assertEqual(list[1], self.entries[0], 'public')
Example #47
0
class ProjectListViewTestCase(TestCase):
    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_anonymous_can_view_only_public_projects(self):
        '''
        Tests anonymous user can view public Project only.
        The protected projects are not displayed.
        '''
        user = AnonymousUser()
        r = self.client.get('/projects/')
        self.assertTemplateUsed('projects/project_list.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 1, 'object_list has one project')
        self.assertEqual(list[0], self.projects[0])

    def test_wille_can_view_only_public_projects(self):
        '''
        Tests wille user can view public Project only.
        The protected projects are not displayed.
        '''
        self.assertTrue(self.client.login(username=self.wille, password='******'))
        r = self.client.get('/projects/')
        self.assertTemplateUsed('projects/project_list.html')
        self.assertTrue('object_list' in r.context_data)
        list = r.context_data['object_list']
        self.assertEqual(list.count(), 1, 'object_list has one project')
        self.assertEqual(list[0], self.projects[0])

    def test_authenticated_can_view_all_publish_projects(self):
        '''
        Tests authenticated user can view all published projects.
        '''
        self.assertTrue(self.client.login(username=self.user, password='******'))
        r = self.client.get('/projects/')
        self.assertTemplateUsed('projects/project_list.html')
        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')
Example #48
0
class EntryAuthorYearArchiveViewTestCase(TestCase):
    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.entries = (
            EntryFactory(),
            EntryFactory(author=self.user),
            EntryFactory(pub_state='protected'),
            EntryFactory(pub_state='protected', author=self.user),
            EntryFactory(pub_state='draft'),
        )

    def test_anonymous_can_view_only_public_entries_of_the_author(self):
        '''
        Tests anonymous user can view public Entry written by specific author in the year only.
        The protected entries are not displayed.
        '''
        user = AnonymousUser()
        r = self.client.get('/blogs/{0}/{1}/'.format(self.user.username, self.entries[0].publish_at.year))
        self.assertTemplateUsed('blogs/entry_archive_year.html')
        self.assertTrue('date_list' in r.context_data)
        list = r.context_data['date_list']
        self.assertEqual(list.count(), 1, 'date_list has one month')

    def test_wille_can_view_only_public_entries_of_the_author(self):
        '''
        Tests wille user can view public Entry written by specific author in the year only.
        The protected entries are not displayed.
        '''
        self.assertTrue(self.client.login(username=self.wille, password='******'))
        r = self.client.get('/blogs/{0}/{1}/'.format(self.user.username, self.entries[0].publish_at.year))
        self.assertTemplateUsed('blogs/entry_archive_year.html')
        self.assertTrue('date_list' in r.context_data)
        list = r.context_data['date_list']
        self.assertEqual(list.count(), 1, 'date_list has one month')

    def test_authenticated_can_view_all_publish_entries_of_the_author(self):
        '''
        Tests authenticated user can view all published entries written by specific author in the year.
        '''
        self.assertTrue(self.client.login(username=self.user, password='******'))
        r = self.client.get('/blogs/{0}/{1}/'.format(self.user.username, self.entries[0].publish_at.year))
        self.assertTemplateUsed('blogs/entry_archive_year.html')
        self.assertTrue('date_list' in r.context_data)
        list = r.context_data['date_list']
        self.assertEqual(list.count(), 1, 'date_list has one month')
Example #49
0
class EntryDeleteViewTestCase(TestCase):
    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 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/')
        self.assertEqual(self.entry.title, 'かわずたんだよ☆')

    def test_other_user_cannot_delete_via_delete_view(self):
        '''作者以外のユーザーは記事の削除ができない'''
        self.assertTrue(self.client.login(username=self.other, password='******'))
        r = self.client.post('/blogs/author_kawaztan/1/delete/')
        self.assertRedirects(r, settings.LOGIN_URL + '?next=/blogs/author_kawaztan/1/delete/')
        self.assertEqual(self.entry.title, 'かわずたんだよ☆')

    def test_author_can_delete_via_delete_view(self):
        '''作者は記事を削除できる'''
        self.assertTrue(self.client.login(username=self.user, password='******'))
        r = self.client.post('/blogs/author_kawaztan/1/delete/')
        self.assertRedirects(r, '/blogs/')
        self.assertEqual(Entry.objects.count(), 0)
Example #50
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 #51
0
 def setUp(self):
     arguments_list = (
         (-3, -2, {'pub_state':'public'}), # 2000/9/1 ~ 2000/9/2
         (1, 2, {'pub_state':'public'}), # 2000/9/5 ~ 2000/9/6
         (-2, -1, {'pub_state':'protected'}), # 2000/9/3 ~ 2000/9/4
         (0, 1, {'pub_state':'protected'}), # 2000/9/4 ~ 2000/9/5
         (-3, -2, {'pub_state':'draft'}), # 2000/9/2 ~ 2000/9/3
         (1, 2, {'pub_state':'draft'}), # 2000/9/5 ~ 2000/9/6
     )
     self.events = [event_factory_with_relative(*args)
                    for args in arguments_list]
     self.user = PersonaFactory()
     self.user.set_password('password')
     self.user.save()
Example #52
0
class ProductCreatePermissionTestCase(TestCase):
    def setUp(self):
        self.product = ProductFactory()
        self.user = PersonaFactory()
        self.wille = PersonaFactory(role='wille')
        self.anonymous = AnonymousUser()

    def test_anonymous_dont_have_add_permission(self):
        '''
        Test anonymous users do not have add product permission
        '''
        self.assertFalse(self.anonymous.has_perm('products.add_product'))

    def test_wille_dont_have_add_permission(self):
        '''
        Test wille users do not have add product permission
        '''
        self.assertFalse(self.wille.has_perm('products.add_product'))

    def test_general_user_have_add_permission(self):
        '''
        Test general user have add product permission
        '''
        self.assertTrue(self.user.has_perm('products.add_product'))
Example #53
0
 def setUp(self):
     self.user = PersonaFactory()
     self.anonymous = AnonymousUser()
     self.profile = ProfileFactory()