예제 #1
0
    def handle(self, *args, **options):
        self.stdout.write('Starting fill db')

        site = Site.objects.get(pk=1)
        site.domain = site.name = settings.DOMAIN
        site.save()

        user = User.objects.create_superuser(email='*****@*****.**', password='')
        user.set_password('admin')
        user.save()

        accounts = AccountFactory.create_batch(2)
        for account in Account.objects.all():
            admin = AdminFactory(accounts=[account])
            membership = admin.get_membership(account)
            BillingSettingsFactory(account=account)
            board_of_directors = CommitteeFactory(name=_('Board of Directors'), account=account)
            membership.committees.add(board_of_directors)
        UserFactory.create_batch(5, accounts=accounts)
        for account in Account.objects.all():
            CommitteeFactory.create_batch(10, account=account)
        for membership in Membership.objects.filter(user__in=User.objects.select_related().exclude(is_superuser=True)):
            membership.committees.add(*random.sample(set(Committee.objects.filter(account_id=membership.account_id)), 2))
        MeetingFactory.create_batch(10)
        DocumentFactory.create_batch(5)

        self.stdout.write('Completed fill db')
예제 #2
0
 def test_add_existed_member_with_invitation(self):
     self.account = AccountFactory()
     self.admin = AdminFactory(accounts=[self.account])
     self.login_admin()
     old_acc = list(self.user.accounts.all().values_list('id', flat=True))
     old_acc.append(get_current_account(self).id)
     url = reverse('member_create',
                   kwargs={'url': get_current_account(self).url})
     data = {
         'first_name': lorem_ipsum.words(1, False).capitalize()[:50],
         'last_name': lorem_ipsum.words(1, False).capitalize()[:50],
         'email': self.user.email,
         'password': User.objects.make_random_password(),
         'date_joined_board': '{:%b. %d, %Y}'.format(timezone.now()),
         'timezone': us_timezones[0],
         'account': get_current_account(self),
         'role': Membership.ROLES.member,
         'invitation': True
     }
     response = self.client.post(url, data, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, _('Member was added successfully.'))
     self.assertItemsEqual(
         list(self.user.accounts.all().values_list('id', flat=True)),
         old_acc)
예제 #3
0
 def test_members_count(self):
     self.account = AccountFactory()
     self.admin = AdminFactory(accounts=[self.account])
     self.login_admin()
     resp = self.client.get(
         reverse('board_members', kwargs={'url': self.account.url}))
     self.assertContains(resp, 'class="member"', 1)
     UserFactory.create_batch(5, accounts=[self.account])
     resp = self.client.get(
         reverse('board_members', kwargs={'url': self.account.url}))
     self.assertContains(resp, 'class="member"', 6)
     self.account = AccountFactory()
     self.user = UserFactory(accounts=[self.account])
     resp = self.client.get(
         reverse('board_members', kwargs={'url': self.account.url}))
     self.assertContains(resp, 'class="member"', 6)
     self.client.logout()
     self.login_member()
     self.membership = self.user.get_membership(account=self.account)
     resp = self.client.get(
         reverse('board_members', kwargs={'url': self.account.url}))
     self.assertContains(resp, 'class="member"', 1)
     self.assertNotContains(resp, 'data-chairman="true"')
     CommitteeFactory(chairman=self.membership)
     resp = self.client.get(
         reverse('board_members', kwargs={'url': self.account.url}))
     self.assertContains(resp, 'class="member"', 1)
     self.assertContains(resp, 'data-chairman="true"')
예제 #4
0
 def test_wrong_data(self):
     self.account = AccountFactory()
     self.admin = AdminFactory(accounts=[self.account])
     self.login_admin()
     url = reverse('member_create',
                   kwargs={'url': get_current_account(self).url})
     data = {'email': self.user.email, 'account': get_current_account(self)}
     response = self.client.post(url, data, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, _('This field is required.'), 3)
예제 #5
0
파일: filldb.py 프로젝트: Axik/eapu
    def handle(self, *args, **options):
        sys.stdout.write('Starting fill db\r\n')

        site = Site.objects.get(pk=1)
        site.domain = site.name = settings.DOMAIN
        site.save()

        AdminFactory()

        sys.stdout.write('Completed fill db\r\n')
예제 #6
0
 def test_delete_news_forbidden(self):
     self.login_admin()
     new_acc = AccountFactory()
     AdminFactory(accounts=[new_acc])
     news2 = NewsFactory(account=new_acc)
     url = reverse('news:delete',
                   kwargs={
                       'pk': news2.pk,
                       'url': get_current_account(self).url
                   })
     response = self.ajax(url)
     self.assertEqual(response.status_code, 404)
예제 #7
0
    def init_second_account(self):
        """Smaller account to have one. Just Board and users, no data."""
        from profiles.models import Membership
        from accounts.factories import AccountFactory
        from profiles.factories import AdminFactory, UserFactory

        self.account2 = AccountFactory()
        self.admin2 = AdminFactory(accounts=[self.account2])

        UserFactory.create_batch(5, accounts=[self.account2])

        self.membership2 = Membership.objects.filter(role=Membership.ROLES.member, account=self.account2)[0]
        self.membership_admin2 = Membership.objects.filter(is_admin=True, account=self.account2)[0]
        self.user2 = self.membership.user
예제 #8
0
파일: filldb.py 프로젝트: Axik/rayoni
    def handle(self, *args, **options):
        sys.stdout.write('Starting fill db\r\n')

        site = Site.objects.get(pk=1)
        site.domain = site.name = settings.DOMAIN
        site.save()

        AdminFactory()
        users = UserFactory.create_batch(50)
        posts = PostFactory.create_batch(20)
        for post in posts:
            likes = random.randint(1, 50)
            post.liked_users.add(*users[:likes])
        CommentFactory.create_batch(100)

        sys.stdout.write('Completed fill db\r\n')
예제 #9
0
 def test_wrong_email(self):
     self.account = AccountFactory()
     self.admin = AdminFactory(accounts=[self.account])
     self.login_admin()
     url = reverse('member_create',
                   kwargs={'url': get_current_account(self).url})
     data = {
         'first_name': lorem_ipsum.words(1, False).capitalize()[:50],
         'last_name': lorem_ipsum.words(1, False).capitalize()[:50],
         'email': u'{}_{}'.format(self.account.id,
                                  lorem_ipsum.words(1, False)),
         'password': User.objects.make_random_password(),
         'date_joined_board': '{:%b. %d, %Y}'.format(timezone.now()),
         'timezone': us_timezones[0],
         'account': get_current_account(self),
         'role': Membership.ROLES.member,
         'invitation': True
     }
     response = self.client.post(url, data, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, _('Enter a valid email address.'))
예제 #10
0
    def create_init_data(self):
        from committees.models import Committee
        from profiles.models import User, Membership
        from accounts.factories import AccountFactory
        from profiles.factories import AdminFactory, UserFactory
        from meetings.factories import MeetingFactory
        from committees.factories import CommitteeFactory
        from django.contrib.contenttypes.models import ContentType
        from dashboard.models import RecentActivity
        from meetings.models import Meeting

        self.create_manual_migrations_if_needed()

        self.account = AccountFactory()
        self.admin = AdminFactory(accounts=[self.account])

        UserFactory.create_batch(5, accounts=[self.account])
        CommitteeFactory.create_batch(5)

        for membership in Membership.objects.filter(user__in=User.objects.select_related().exclude(is_superuser=True)):
            membership.committees.add(*random.sample(set(Committee.objects.filter(account_id=membership.account_id)), 2))

        # Set last membership as comittee chairman (comittee_set)
        membership.committee_set.add(*random.sample(set(Committee.objects.filter(account_id=membership.account_id)), 1))
        self.meetings = MeetingFactory.create_batch(2)

        # Document creation is broken and needs fixing
        # for meeting in self.meetings:
        #     DocumentFactory.create_batch(2, meeting=meeting)
        self.membership = Membership.objects.filter(is_admin=False, account=self.account).order_by('pk')[0]
        self.membership_admin = Membership.objects.filter(is_admin=True, account=self.account)[0]

        self.user = self.membership.user

        for meeting in self.meetings:
            RecentActivity.objects.create(init_user=self.user,
                                          account=self.account,
                                          content_type=ContentType.objects.get_for_model(Meeting),
                                          object_id=meeting.id,
                                          action_flag=RecentActivity.ADDITION)
예제 #11
0
 def test_member_create_with_invitation(self):
     self.account = AccountFactory()
     self.admin = AdminFactory(accounts=[self.account])
     self.user = UserFactory(accounts=[self.account])
     self.login_admin()
     url = reverse('member_create',
                   kwargs={'url': get_current_account(self).url})
     data = {
         'first_name':
         lorem_ipsum.words(1, False).capitalize()[:50],
         'last_name':
         lorem_ipsum.words(1, False).capitalize()[:50],
         'email':
         u'{}_{}@example.com'.format(
             self.account.id,
             lorem_ipsum.words(38, False)[:75 - len(str(self.account.id)) -
                                          len('*****@*****.**')].replace(
                                              ' ', '_')),
         'password':
         User.objects.make_random_password(),
         'date_joined_board':
         '{:%b. %d, %Y}'.format(timezone.now()),
         'timezone':
         us_timezones[0],
         'account':
         get_current_account(self),
         'role':
         Membership.ROLES.member,
         'invitation':
         True
     }
     response = self.client.post(url, data, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, _('Member was added successfully.'))
     new_user = User.objects.all().order_by('-pk')[0]
     self.assertEqual(new_user.email, data['email'])
     self.assertEqual(len(mail.outbox), 0)