This repository has been archived on 2021-04-21. You can view files and clone it, but cannot push or open issues or pull requests.
decentral1se aaf365dba2
Add webpush model checks into sub test
Let the formatter have its way also.
2021-04-15 09:42:16 +02:00

46 lines
1.4 KiB
Python

import json
from django.contrib.auth import get_user_model
from django.test import Client, TestCase
from django.urls import reverse
from webpush.models import PushInformation, SubscriptionInfo
class TestAcceptSubscription(TestCase):
def setUp(self):
self.client = Client()
self.user = get_user_model().objects.create(
username="john", email="jlennon@beatles.com", password="glass onion"
)
self.client.force_login(self.user)
def tearDown(self):
self.user.delete()
def test_accept_sub(self):
payload = {
"status_type": "subscribe",
"subscription": {
"endpoint": "https://example.com",
"keys": {"auth": "barfoo", "p256dh": "foobar"},
},
"browser": "firefox",
}
url = reverse("save_webpush_info")
response = self.client.post(
url, data=json.dumps(payload), content_type="application/json"
)
self.assertEqual(response.status_code, 201)
sub_info = SubscriptionInfo.objects.get()
self.assertEqual(sub_info.browser, "firefox")
self.assertEqual(sub_info.endpoint, "https://example.com")
self.assertEqual(sub_info.auth, "barfoo")
self.assertEqual(sub_info.p256dh, "foobar")
push_info = PushInformation.objects.get()
self.assertEqual(push_info.user, self.user)
self.assertEqual(push_info.subscription, sub_info)