Example #1
0
def main():
    if Membership.objects.count() > 0 or Payment.objects.count() > 0:
        print "Database not empty, refusing to generate test data"
        sys.exit(1)
    # Approved members
    for i in xrange(1,1000):
        membership = create_dummy_member(i)
        membership.preapprove(user)
        membership.approve(user)
        create_payment(membership)
        transaction.commit()

    # Pre-approved members
    for i in xrange(1000,1100):
        membership = create_dummy_member(i)
        membership.preapprove(user)
        transaction.commit()

    # New applications
    for i in xrange(1100,1200):
        membership = create_dummy_member(i)
        transaction.commit()

    management.call_command('makebills')
    transaction.commit()
    for payment in Payment.objects.all():
        try:
            attach_payment_to_cycle(payment)
            transaction.commit()
        except:
            pass
Example #2
0
    def generate(self, approved, preapproved, new, duplicates, dissociated, dissociation_requested, deleted):
        if Membership.objects.count() > 0 or Payment.objects.count() > 0:
            self.stderr.write("Database not empty, refusing to generate test data")
            sys.exit(1)
        assert approved + preapproved + new > duplicates
        # Approved members
        initial_index = 1
        index = int(initial_index)

        for i in xrange(index, index + approved + dissociated + dissociation_requested + deleted):
            membership = self.create_dummy_member(i)
            membership.preapprove(self.user)
            membership.approve(self.user)
            self.create_payment(membership)
        index += approved + dissociated + dissociation_requested + deleted

        # Pre-approved members
        for i in xrange(index, index + preapproved):
            with transaction.atomic():
                membership = self.create_dummy_member(i)
                membership.preapprove(self.user)
        index += preapproved

        # New applications
        for i in xrange(index, index + new):
            membership = self.create_dummy_member(i)
        index += new

        # Make a few duplicates for duplicate detection GUI testing
        for i in xrange(index, index + duplicates):
            if approved > 0 and random() > 0.5:
                # About 50% of duplicates are existing members
                duplicate_source_id = randint(1, approved)
            else:
                # The rest are new applications
                duplicate_source_id = randint(index - 1 - duplicates, index - 1)
            duplicate_of = Membership.objects.get(id=duplicate_source_id)
            membership = self.create_dummy_member(i, duplicate_of=duplicate_of)
        index += duplicates

        management.call_command("makebills")
        for payment in Payment.objects.all():
            try:
                attach_payment_to_cycle(payment)
            except:
                pass

        # Some members disassociate.

        for i in xrange(initial_index, initial_index + dissociated + dissociation_requested + deleted):
            membership = Membership.objects.get(id=i)
            membership.request_dissociation(self.user)

        for i in xrange(initial_index, initial_index + dissociated + deleted):
            membership = Membership.objects.get(id=i)
            membership.dissociate(self.user)

        for i in xrange(initial_index, initial_index + deleted):
            membership = Membership.objects.get(id=i)
            membership.delete_membership(self.user)
Example #3
0
    def generate(self, approved, preapproved, new, duplicates, dissociated,
                 dissociation_requested, deleted):
        if Membership.objects.count() > 0 or Payment.objects.count() > 0:
            self.stderr.write(
                "Database not empty, refusing to generate test data")
            sys.exit(1)
        assert approved + preapproved + new > duplicates
        # Approved members
        initial_index = 0
        index = 1

        for i in xrange(
                index, index + approved + dissociated +
                dissociation_requested + deleted):
            membership = self.create_dummy_member(i)
            if initial_index == 0:
                initial_index = membership.pk
            membership.preapprove(self.user)
            membership.approve(self.user)
            self.create_payment(membership)
        index += approved + dissociated + dissociation_requested + deleted

        # Pre-approved members
        for i in xrange(index, index + preapproved):
            with transaction.atomic():
                membership = self.create_dummy_member(i)
                membership.preapprove(self.user)
        index += preapproved

        # New applications
        for i in xrange(index, index + new):
            membership = self.create_dummy_member(i)
        index += new

        # Make a few duplicates for duplicate detection GUI testing
        for i in xrange(index, index + duplicates):
            if approved > 0 and random() > 0.5:
                # About 50% of duplicates are existing members
                duplicate_source_id = randint(1, approved)
            else:
                # The rest are new applications
                duplicate_source_id = randint(index - 1 - duplicates,
                                              index - 1)
            duplicate_of = Membership.objects.get(id=duplicate_source_id)
            membership = self.create_dummy_member(i, duplicate_of=duplicate_of)
        index += duplicates

        management.call_command('makebills')
        for payment in Payment.objects.all():
            try:
                attach_payment_to_cycle(payment)
            except:
                pass

        # Some members disassociate.

        for i in xrange(
                initial_index, initial_index + dissociated +
                dissociation_requested + deleted):
            membership = Membership.objects.get(id=i)
            membership.request_dissociation(self.user)

        for i in xrange(initial_index, initial_index + dissociated + deleted):
            membership = Membership.objects.get(id=i)
            membership.dissociate(self.user)

        for i in xrange(initial_index, initial_index + deleted):
            membership = Membership.objects.get(id=i)
            membership.delete_membership(self.user)