inital checkin

This commit is contained in:
2026-01-20 05:22:38 -06:00
parent 9784e14c77
commit c43603bfb5
75 changed files with 4327 additions and 0 deletions

73
tests/test_core.py Normal file
View File

@@ -0,0 +1,73 @@
import pytest
from django.urls import reverse
from users.models import User
from store.models import Game, Set, Card, CardListing, Cart
from decks.models import Deck, DeckCard
@pytest.mark.django_db
class TestModels:
def test_user_profile_created_signal(self):
user = User.objects.create_user('testuser', 'test@example.com', 'password')
assert hasattr(user, 'profile')
assert user.profile.is_pro is False
def test_cart_total_price(self, db):
user = User.objects.create_user('cartuser', 'c@e.com', 'pass')
cart = Cart.objects.create(user=user)
game = Game.objects.create(name="G", slug="g")
set_ = Set.objects.create(game=game, name="S")
card = Card.objects.create(set=set_, name="C")
listing = CardListing.objects.create(card=card, price=10.00, quantity=5)
cart.items.create(listing=listing, quantity=2)
assert cart.total_price == 20.00
@pytest.mark.django_db
class TestStoreViews:
def test_card_list_view(self, client):
url = reverse('store:card_list')
response = client.get(url)
assert response.status_code == 200
def test_add_to_cart_requires_login(self, client):
listing = CardListing.objects.create(
card=Card.objects.create(
set=Set.objects.create(
game=Game.objects.create(name="G", slug="g"),
name="S"
),
name="C"
),
price=10.00
)
url = reverse('store:add_to_cart', args=[listing.id])
response = client.post(url)
assert response.status_code == 302 # Redirect to login
@pytest.mark.django_db
class TestDeckViews:
@pytest.fixture
def pro_user(self):
u = User.objects.create_user('pro', 'pro@e.com', 'pass')
u.profile.is_pro = True
u.profile.save()
return u
@pytest.fixture
def basic_user(self):
return User.objects.create_user('basic', 'basic@e.com', 'pass')
def test_deck_builder_access_pro(self, client, pro_user):
client.force_login(pro_user)
deck = Deck.objects.create(user=pro_user, name="Pro Deck", game=Game.objects.create(name="G", slug="g"))
url = reverse('decks:deck_builder', args=[deck.id])
response = client.get(url)
assert response.status_code == 200
def test_deck_builder_access_basic(self, client, basic_user):
client.force_login(basic_user)
# Basic user tries to access create page
url = reverse('decks:deck_create')
response = client.get(url)
assert response.status_code == 302 # Redirect expected