Source code for squaresdb.gate.tests

import logging

from django.contrib.auth import get_user_model
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType
from django.test import Client
from django.test import TestCase
from django.urls import reverse

import squaresdb.gate.models as gate_models

logger = logging.getLogger(__name__)

[docs] def get_user(perm): user = get_user_model().objects.create_user(username='user', password='pass') content_type = ContentType.objects.get_for_model(gate_models.Attendee) permission = Permission.objects.get(content_type=content_type, codename=perm) user.user_permissions.add(permission) user.save() return user
[docs] class SigninTestCase(TestCase): fixtures = ['people.json', 'sample.json']
[docs] def setUp(self): self.user = get_user('signin_app')
[docs] def test_render_index(self): client = Client() client.force_login(self.user) path = reverse('gate:index') with self.assertNumQueries(7): response = client.get(path) logger.info(response) self.assertEqual(response.status_code, 200) self.assertContains(response, "Current Dances")
[docs] def test_render_sub_period(self): client = Client() client.force_login(self.user) path = reverse('gate:sub-period', args=('2019-spring',)) with self.assertNumQueries(7): response = client.get(path) logger.info(response) self.assertEqual(response.status_code, 200) self.assertContains(response, "Spring 2019")
[docs] def test_render_dance(self): client = Client() client.force_login(self.user) path = reverse('gate:signin-dance', args=(2,)) with self.assertNumQueries(17): response = client.get(path) logger.info(response) self.assertEqual(response.status_code, 200) self.assertContains(response, "Squares Signin for ")
[docs] class BooksTestCase(TestCase): fixtures = ['people.json', 'sample.json']
[docs] def setUp(self): self.user = get_user('books_app')
[docs] def test_render_books(self): client = Client() client.force_login(self.user) path = reverse('gate:books-dance', args=(2,)) with self.assertNumQueries(16): response = client.get(path) logger.info(response) self.assertEqual(response.status_code, 200) self.assertContains(response, "Payments")
[docs] class AdminTestCase(TestCase): fixtures = ['people.json', 'sample.json']
[docs] def setUp(self): self.user = get_user('view_attendee') self.user.is_staff = True content_type = ContentType.objects.get_for_model(gate_models.SubscriptionPayment) permission = Permission.objects.get(content_type=content_type, codename='view_subscriptionpayment') self.user.user_permissions.add(permission) self.user.save()
[docs] def test_admin_subscriptionpay(self): client = Client() client.force_login(self.user) path = reverse('admin:gate_subscriptionpayment_changelist', ) with self.assertNumQueries(14): response = client.get(path) logger.info(response) self.assertEqual(response.status_code, 200) self.assertContains(response, "Select subscription payment to ")