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