adding tests for bids

pull/3/head
lance 5 years ago
parent 3ddc7cfefb
commit 88f1e5db30

@ -2,12 +2,14 @@ from secrets import token_urlsafe
from monero.seed import Seed from monero.seed import Seed
from django.test import TestCase from django.test import TestCase
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.test.client import Client
from bids.models import ItemBid from bids.models import ItemBid
from items.models import Item from items.models import Item
class ItemBidModelsTestCase(TestCase): class ItemBidModelsTestCase(TestCase):
def setUp(self): def setUp(self):
self.client = Client()
self.seller_password = token_urlsafe(32) self.seller_password = token_urlsafe(32)
self.buyer_password = token_urlsafe(32) self.buyer_password = token_urlsafe(32)
@ -40,3 +42,7 @@ class ItemBidModelsTestCase(TestCase):
obj_name = f'{test_itembid.id} - {test_itembid.item.name} - {test_itembid.bidder} > {test_itembid.item.owner}' obj_name = f'{test_itembid.id} - {test_itembid.item.name} - {test_itembid.bidder} > {test_itembid.item.owner}'
self.assertTrue(isinstance(test_itembid, ItemBid)) self.assertTrue(isinstance(test_itembid, ItemBid))
self.assertEqual(test_itembid.__str__(), obj_name) self.assertEqual(test_itembid.__str__(), obj_name)

@ -0,0 +1,63 @@
from secrets import token_urlsafe
from monero.seed import Seed
from django.test import TestCase
from django.contrib.auth.models import User
from django.core.paginator import Page
from django.shortcuts import reverse
from django.test.client import Client
from items.models import Item
from bids.models import ItemBid
from bids.views import list_bids
class ItemBidModelsTestCase(TestCase):
def setUp(self):
self.client = Client()
self.seller_password = token_urlsafe(32)
self.buyer_password = token_urlsafe(32)
self.seller = User.objects.create_user(
'seller', password=self.seller_password
)
self.buyer = User.objects.create_user(
'buyer', password=self.buyer_password
)
self.payout_address = Seed().public_address()
self.return_address = Seed().public_address()
self.whereabouts = 'Los Angeles, CA'
self.test_item = Item.objects.create(
owner=self.seller,
name='Test Item',
description='Test item',
ask_price_xmr=0.3,
payout_address=self.payout_address,
whereabouts=self.whereabouts
)
def test_list_bids_requires_auth(self):
response = self.client.get(reverse('list_bids'))
request = response.wsgi_request
response = list_bids(request)
self.assertTrue(response.url.startswith(reverse('login')))
self.assertEqual(response.status_code, 302)
def test_list_bids_returns_pagination(self):
ItemBid.objects.create(
item=self.test_item,
bidder=self.buyer,
bid_price_xmr=0.1,
return_address=self.return_address
)
self.client.login(username='buyer', password=self.buyer_password)
response = self.client.get(reverse('list_bids'))
response_w_str_arg = self.client.get(reverse('list_bids') + "?page=bar")
response_w_empty_pg = self.client.get(reverse('list_bids') + "?page=9001")
self.client.logout()
self.assertTrue(isinstance(response.context['bids'], Page), 'Paginated object not returned')
self.assertTrue(isinstance(response_w_str_arg.context['bids'], Page), 'Paginated object not returned')
self.assertTrue(isinstance(response_w_empty_pg.context['bids'], Page), 'Paginated object not returned')
def test_list_bids_returns_only_user_bids(self):
pass