achievements tracking

This commit is contained in:
ducoterra
2020-04-26 20:51:56 -04:00
parent 0cb3896e4b
commit 43c48d5216
9 changed files with 177 additions and 77 deletions

View File

@@ -1,5 +1,5 @@
from django.contrib.auth.models import AnonymousUser, User
from django.test import RequestFactory, TestCase
from django.test import RequestFactory, TestCase, Client
from .views import button
@@ -11,23 +11,31 @@ class SimpleTest(TestCase):
username='testuser', email='test@test.test', password='testpass')
def test_button(self):
# Create an instance of a GET request.
request = self.factory.get('/snippets')
request.user = self.user
request.session = self.client.session
response = button(request)
# Test initial load
c = Client()
response = c.get('/button')
self.assertEqual(response.status_code, 301)
response = c.get('/button/')
self.assertEqual(response.status_code, 200)
request = self.factory.post(
'/button',
data={},
content_type='application/json'
)
request.session = self.client.session
response = button(request)
self.assertEqual(response.status_code, 200)
self.assertEqual(request.session.get('pressed'), 1)
self.assertEqual(response.context.get("achievement"), {})
response = button(request)
# Test first achievement
response = c.post('/button/', {})
self.assertEqual(response.status_code, 200)
self.assertEqual(request.session.get('pressed'), 2)
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('/button/', {})
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('/button/', {})
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)