Example #1
0
 def test_get(self):
     c1 = testing.factory_category(display_priority=10)
     c2 = testing.factory_category(display_priority=5)
     t1 = testing.factory_ticket(category=c1, start_date='2016-11-05')
     t2 = testing.factory_ticket(category=c1, start_date='2016-11-08')
     t3 = testing.factory_ticket(category=c2)
     res = self.client.get(self._getTarget())
     self.assertTemplateUsed(res, 'tickets/list.html')
     self.assertEqual(len(res.context['tickets']), 3)
     self.assertEqual(res.context['tickets'][0], t1)
     self.assertEqual(res.context['tickets'][1], t2)
     self.assertEqual(res.context['tickets'][2], t3)
Example #2
0
 def test_post(self):
     t = testing.factory_ticket(seller=self.user,
                                status=models.Ticket.STATUS_DISPLAY)
     res = self.client.post(self._getTarget(ticket_id=t.id))
     self.assertRedirects(res, reverse('tbpauth:mypage'))
     t.refresh_from_db()
     self.assertEqual(t.status, models.Ticket.STATUS_STOPPED)
Example #3
0
 def test_post(self):
     t = testing.factory_ticket(quantity=50)
     res = self.client.post(self._getTarget(ticket_id=t.id),
                            data={'amount': 50})
     self.assertRedirects(res, reverse('tickets:list'))
     self.assertEqual(len(self.client.session['cart']), 1)
     self.assertEqual(self.client.session['cart'][0]['ticket_id'], t.id)
     self.assertEqual(self.client.session['cart'][0]['amount'], 50)
Example #4
0
 def test_get(self):
     p = factory_purchase(user=self.user)
     p2 = factory_purchase(user=self.user)
     t3 = factory_ticket(seller=self.user, status=Ticket.STATUS_STOPPED,
                 start_date='2016-12-01')
     t2 = factory_ticket(seller=self.user, status=Ticket.STATUS_STOPPED,
                 start_date='2016-11-30')
     t1 = factory_ticket(seller=self.user, status=Ticket.STATUS_DISPLAY)  
     res = self.client.get(self._getTarget())
     self.assertEqual(len(res.context['purchases']), 2)
     self.assertTemplateUsed(res, 'tbpauth/mypage.html')
     self.assertEqual(res.context['profile_user'], self.user)
     self.assertEqual(res.context['purchases'][0], p)
     self.assertEqual(res.context['purchases'][1], p2)
     self.assertEqual(len(res.context['selling_tickets']), 3)
     self.assertEqual(res.context['selling_tickets'][0], t1)
     self.assertEqual(res.context['selling_tickets'][1], t2)
     self.assertEqual(res.context['selling_tickets'][2], t3)
Example #5
0
def factory_purchase(**kwargs):
    """ テスト用のPurchaseのデータを作る
    """
    d = {
        'amount': 10,
    }
    d.update(kwargs)
    if 'ticket' not in d:
        d['ticket'] = factory_ticket()
    if 'user' not in d:
        d['user'] = factory_user()
    return models.Purchase.objects.create(**d)
Example #6
0
    def test_get_paginate(self):
        c1 = testing.factory_category(display_priority=10)
        tickets = []
        for i in range(21):
            t = testing.factory_ticket(category=c1, start_date='2016-11-05')
            tickets.append(t)
        res = self.client.get(self._getTarget())
        self.assertTemplateUsed(res, 'tickets/list.html')
        self.assertEqual(len(res.context['tickets']), 20)
        self.assertEqual(list(res.context['tickets']), tickets[:20])

        res = self.client.get(self._getTarget(), data={'page': 2})
        self.assertTemplateUsed(res, 'tickets/list.html')
        self.assertEqual(len(res.context['tickets']), 1)
        self.assertEqual(list(res.context['tickets']), tickets[20:])
Example #7
0
 def test_quantity_display(self):
     target = testing.factory_ticket(quantity=1000)
     self.assertEqual(target.quantity_display(), '1,000枚')
Example #8
0
 def test_fee_rate_large_event(self):
     target = testing.factory_ticket(quantity=100)
     self.assertEqual(target.fee_rate(), 0.01)
Example #9
0
 def test_get_not_my_ticket(self):
     t = testing.factory_ticket(seller=factory_user())
     res = self.client.get(self._getTarget(ticket_id=t.id))
     self.assertEqual(res.status_code, 404)
Example #10
0
 def test_fee_rate_small_event(self):
     target = testing.factory_ticket(quantity=49)
     self.assertEqual(target.fee_rate(), 0.05)
Example #11
0
 def test_clean_amount_too_small(self):
     ticket = testing.factory_ticket(quantity=800)
     target = forms.TicketCartForm(ticket=ticket,
                                   data={'amount': 0})
     self.assertFalse(target.is_valid())
     self.assertEqual(target.errors['amount'], ['この値は 1 以上でなければなりません。'])
Example #12
0
 def test_fee_rate_with_extra_fee(self):
     category = testing.factory_category(extra_fee_rate=0.05)
     target = testing.factory_ticket(quantity=10, category=category)
     self.assertEqual(target.fee_rate(), 0.1)
Example #13
0
 def test_get(self):
     t = testing.factory_ticket()
     res = self.client.get(self._getTarget(ticket_id=t.id))
     self.assertTemplateUsed(res, 'tickets/detail.html')
     self.assertEqual(res.context['ticket'], t)
     self.assertEqual(res.context['form'].ticket, t)
Example #14
0
 def test_price_display(self):
     target = testing.factory_ticket(price=1000)
     self.assertEqual(target.price_display(), '1,000円')
Example #15
0
 def test_stock_amount_without_purchase(self):
     target = testing.factory_ticket(quantity=10)
     self.assertEqual(target.stock_amount(), 10)
Example #16
0
 def test_stock_amount(self):
     target = testing.factory_ticket(quantity=10)
     factory_purchase(amount=4, ticket=target)
     factory_purchase(amount=5, ticket=target)
     self.assertEqual(target.stock_amount(), 1)
Example #17
0
 def test_fee(self):
     target = testing.factory_ticket(quantity=10, price=100)
     self.assertEqual(target.fee(), 5)
Example #18
0
 def test_get_paginate_too_big_page(self):
     t1 = testing.factory_ticket()
     res = self.client.get(self._getTarget(), data={'page': 999999})
     self.assertTemplateUsed(res, 'tickets/list.html')
     self.assertEqual(len(res.context['tickets']), 1)
     self.assertEqual(res.context['tickets'][0], t1)
Example #19
0
 def test_fee_rate_display(self):
     target = testing.factory_ticket(quantity=100)
     self.assertEqual(target.fee_rate_display(), '1%')
Example #20
0
 def test_get_sold_out(self):
     t = testing.factory_ticket(status=models.Ticket.STATUS_SOLD_OUT)
     res = self.client.get(self._getTarget(ticket_id=t.id))
     self.assertEqual(res.status_code, 404)
Example #21
0
 def test_fee_display(self):
     target = testing.factory_ticket(quantity=100, price=1000)
     self.assertEqual(target.fee_display(), '10円 / 枚')
Example #22
0
 def test_post_invalid(self):
     t = testing.factory_ticket(quantity=50)
     res = self.client.post(self._getTarget(ticket_id=t.id),
                            data={'amount': 51})
     self.assertEqual(res.status_code, 200)
     self.assertEqual(res.context['form'].errors['amount'], ['在庫が不足しています'])
Example #23
0
 def test_stock_amount_display(self):
     target = testing.factory_ticket(quantity=10)
     self.assertEqual(target.stock_amount_display(), '10枚')
Example #24
0
 def test_clean_amount_too_big(self):
     ticket = testing.factory_ticket(quantity=800)
     target = forms.TicketCartForm(ticket=ticket,
                                   data={'amount': 801})
     self.assertFalse(target.is_valid())
     self.assertEqual(target.errors['amount'], ['在庫が不足しています'])
Example #25
0
 def test_status_is_display(self):
     target = testing.factory_ticket(status=models.Ticket.STATUS_DISPLAY)
     self.assertTrue(target.status_is_display())
Example #26
0
 def test_clean_amount(self):
     ticket = testing.factory_ticket(quantity=800)
     target = forms.TicketCartForm(ticket=ticket,
                                   data={'amount': 800})
     self.assertTrue(target.is_valid())
Example #27
0
 def test_get(self):
     t = testing.factory_ticket(seller=self.user)
     res = self.client.get(self._getTarget(ticket_id=t.id))
     self.assertTemplateUsed(res, 'tickets/manage.html')
     self.assertEqual(res.context['ticket'], t)