Files
button/api/tests.py
2020-04-26 12:05:03 -04:00

54 lines
1.9 KiB
Python

from django.contrib.auth.models import AnonymousUser, User
from django.test import RequestFactory, TestCase
from django.db.utils import IntegrityError
from .views import *
class SimpleTest(TestCase):
def setUp(self):
# Every test needs access to the request factory.
self.factory = RequestFactory()
# self.user = User.objects.create_user(
# username='testuser', email='test@test.test', password='testpass')
def test_list_visitors(self):
# Create an instance of a GET request.
request = self.factory.get('/visitors')
# Recall that middleware are not supported. You can simulate a
# logged-in user by setting request.user manually.
# request.user = self.user
# Or you can simulate an anonymous user by setting request.user to
# an AnonymousUser instance.
# request.user = AnonymousUser()
# Test my_view() as if it were deployed at /customer/details
response = VisitorList.as_view()(request)
# Use this syntax for class-based views.
# response = MyView.as_view()(request)
self.assertEqual(response.status_code, 200)
def test_add_visitor(self):
request = self.factory.post('/visitors', data={
'name': 'test',
},
content_type='application/json'
)
response = VisitorList.as_view()(request)
self.assertEqual(response.status_code, 201)
vis = Visitor.objects.get(name='test')
self.assertEqual(vis.clicked, 0)
self.assertIsNone(vis.first_pressed)
self.assertIsNone(vis.last_pressed)
with self.assertRaises(IntegrityError):
request = self.factory.post('/visitors', data={
'name': 'test',
},
content_type='application/json'
)
response = VisitorList.as_view()(request)