from django.contrib.auth.models import AnonymousUser, User from django.test import RequestFactory, TestCase, Client from .views import button 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_button(self): # Test initial load c = Client() response = c.get('/') self.assertEqual(response.status_code, 200) self.assertEqual(response.context.get("achievement"), {}) # Test first achievement response = c.post('/', {}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json().get("pressed"), 1) self.assertEqual(response.json().get("achievement"), "Clicked!") self.assertEqual(c.session.get('pressed'), 1) # Test second achievement response = c.post('/', {}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json().get("pressed"), 2) self.assertEqual(response.json().get("achievement"), "Clicked Twice!") self.assertEqual(c.session.get('pressed'), 2) # Test no achievement response = c.post('/', {}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json().get("pressed"), 3) self.assertEqual(response.json().get("achievement"), None) self.assertEqual(c.session.get('pressed'), 3)