Beispiel #1
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"')
    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')
    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
    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)
Beispiel #5
0
    def test_limit_members(self):
        self.login_admin()
        UserFactory.create_batch(3, accounts=[self.account])
        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,
            _('Limit of members amount for your billing plan is exceeded, '
              'you can upgrade it in your profile!'))
Beispiel #6
0
    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')