Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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)
Exemple #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:])
Exemple #7
0
 def test_quantity_display(self):
     target = testing.factory_ticket(quantity=1000)
     self.assertEqual(target.quantity_display(), '1,000枚')
Exemple #8
0
 def test_fee_rate_large_event(self):
     target = testing.factory_ticket(quantity=100)
     self.assertEqual(target.fee_rate(), 0.01)
Exemple #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)
Exemple #10
0
 def test_fee_rate_small_event(self):
     target = testing.factory_ticket(quantity=49)
     self.assertEqual(target.fee_rate(), 0.05)
Exemple #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 以上でなければなりません。'])
Exemple #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)
Exemple #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)
Exemple #14
0
 def test_price_display(self):
     target = testing.factory_ticket(price=1000)
     self.assertEqual(target.price_display(), '1,000円')
Exemple #15
0
 def test_stock_amount_without_purchase(self):
     target = testing.factory_ticket(quantity=10)
     self.assertEqual(target.stock_amount(), 10)
Exemple #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)
Exemple #17
0
 def test_fee(self):
     target = testing.factory_ticket(quantity=10, price=100)
     self.assertEqual(target.fee(), 5)
Exemple #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)
Exemple #19
0
 def test_fee_rate_display(self):
     target = testing.factory_ticket(quantity=100)
     self.assertEqual(target.fee_rate_display(), '1%')
Exemple #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)
Exemple #21
0
 def test_fee_display(self):
     target = testing.factory_ticket(quantity=100, price=1000)
     self.assertEqual(target.fee_display(), '10円 / 枚')
Exemple #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'], ['在庫が不足しています'])
Exemple #23
0
 def test_stock_amount_display(self):
     target = testing.factory_ticket(quantity=10)
     self.assertEqual(target.stock_amount_display(), '10枚')
Exemple #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'], ['在庫が不足しています'])
Exemple #25
0
 def test_status_is_display(self):
     target = testing.factory_ticket(status=models.Ticket.STATUS_DISPLAY)
     self.assertTrue(target.status_is_display())
Exemple #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())
Exemple #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)