def setUp(self): self.rand = random.Random(None) self.locked_event = randgen.generate_event(self.rand, start_time=long_ago_noon) self.event = randgen.generate_event(self.rand, start_time=today_noon) self.event.save() self.runs = randgen.generate_runs(self.rand, self.event, 20, scheduled=True) opened_bids = randgen.generate_bids(self.rand, self.event, 15, state='OPENED') self.opened_bids = opened_bids[0] + opened_bids[1] closed_bids = randgen.generate_bids(self.rand, self.event, 5, state='CLOSED') self.closed_bids = closed_bids[0] + closed_bids[1] hidden_bids = randgen.generate_bids(self.rand, self.event, 5, state='HIDDEN') self.hidden_bids = hidden_bids[0] + hidden_bids[1] pending_bids = randgen.generate_bids(self.rand, self.event, 5, state='PENDING') self.pending_bids = pending_bids[0] + pending_bids[1] self.accepted_prizes = randgen.generate_prizes(self.rand, self.event, 5) self.pending_prizes = randgen.generate_prizes( self.rand, self.event, 5, state='PENDING' ) self.donations = randgen.generate_donations( self.rand, self.event, 200, bid_targets_list=[b for b in self.opened_bids if b.istarget], ) models.Donation.objects.filter( pk__in=(d.id for d in self.donations[:40]) ).update(readstate='PENDING') models.Donation.objects.filter( pk__in=(d.id for d in self.donations[40:80]) ).update(commentstate='PENDING') models.Donation.objects.filter( pk__in=(d.id for d in self.donations[80:120]) ).update(readstate='READY') self.pending_donations = randgen.generate_donations( self.rand, self.event, 50, domain='PAYPAL', transactionstate='PENDING' ) self.prizes = randgen.generate_prizes(self.rand, self.event, 30) self.hidden_user = User.objects.create(username='******') self.hidden_user.user_permissions.add( Permission.objects.get(name='Can view hidden bids') ) self.prize_user = User.objects.create(username='******') self.prize_user.user_permissions.add( Permission.objects.get(name='Can change prize') ) self.locked_user = User.objects.create(username='******') self.locked_user.user_permissions.add( Permission.objects.get(name='Can edit locked events') ) self.donation_user = User.objects.create(username='******') self.donation_user.user_permissions.add( Permission.objects.get(name='Can view pending donations') ) self.donation_user.user_permissions.add( Permission.objects.get(name='Can view all comments') )
def setUp(self): self.eventStart = parse_date("2014-01-01 16:00:00").replace(tzinfo=pytz.utc) self.rand = random.Random(None) self.event = randgen.generate_event(self.rand, self.eventStart) self.event.save() self.runs, self.eventEnd = randgen.generate_runs(self.rand, self.event, 50, self.eventStart) return
def setUp(self): self.rand = random.Random(None) self.event = randgen.generate_event(self.rand) self.event.save() self.eventStart = datetime.datetime.combine( self.event.date, datetime.time(hour=12)).replace(tzinfo=pytz.utc) return
def setUp(self): self.super_user = User.objects.create_superuser( 'admin', '*****@*****.**', 'password') self.rand = random.Random(None) self.event = randgen.generate_event(self.rand) self.event.save() self.prize = randgen.generate_prize(self.rand, event=self.event) self.prize.save() self.donor = randgen.generate_donor(self.rand) self.donor.save() self.prize_winner = models.PrizeWinner.objects.create( winner=self.donor, prize=self.prize) self.donor_prize_entry = models.DonorPrizeEntry.objects.create( donor=self.donor, prize=self.prize)
def test_search_with_offset_and_limit(self): event = randgen.generate_event(self.rand, today_noon) event.save() randgen.generate_runs(self.rand, event, 5) randgen.generate_donations(self.rand, event, 50, transactionstate='COMPLETED') request = self.factory.get( '/api/v1/search', dict(type='donation', offset=10, limit=10), ) request.user = self.anonymous_user data = self.parseJSON(tracker.views.api.search(request)) donations = models.Donation.objects.all() self.assertEqual(len(data), 10) self.assertListEqual([d['pk'] for d in data], [d.id for d in donations[10:20]]) request = self.factory.get('/api/v1/search', dict(type='donation', limit=30),) request.user = self.anonymous_user # bad request if limit is set above server config self.parseJSON(tracker.views.api.search(request), status_code=400)
def test_event_annotations(self): models.Donation.objects.create(event=self.event, amount=10, domainId='123456') models.Donation.objects.create( event=self.event, amount=5, domainId='123457', transactionstate='COMPLETED' ) # there was a bug where events with only pending donations wouldn't come back in the search models.Donation.objects.create( event=self.locked_event, amount=10, domainId='123458' ) # make sure empty events show up too extra_event = randgen.generate_event(self.rand, today_noon) extra_event.save() request = self.factory.get('/api/v1/search', dict(type='event')) request.user = self.add_user data = self.parseJSON(tracker.views.api.search(request)) self.assertEqual(len(data), 3) self.assertModelPresent( { 'pk': self.event.id, 'model': 'tracker.event', 'fields': {'amount': 5.0, 'count': 1, 'max': 5.0, 'avg': 5.0}, }, data, partial=True, ) self.assertModelPresent( { 'pk': self.locked_event.id, 'model': 'tracker.event', 'fields': {'amount': 0.0, 'count': 0, 'max': 0.0, 'avg': 0.0}, }, data, partial=True, ) self.assertModelPresent( { 'pk': extra_event.id, 'model': 'tracker.event', 'fields': {'amount': 0.0, 'count': 0, 'max': 0.0, 'avg': 0.0}, }, data, partial=True, )
def setUp(self): self.rand = random.Random(None) self.event = randgen.generate_event(self.rand) self.event.save()
def setUp(self): self.rand = random.Random(None) self.event = randgen.generate_event(self.rand, startTime=today_noon) self.event.save()