54 lines
1.9 KiB
Python
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)
|