diff --git a/karrot/management/commands/send_push.py b/karrot/management/commands/send_push.py deleted file mode 100644 index b7dff438a..000000000 --- a/karrot/management/commands/send_push.py +++ /dev/null @@ -1,27 +0,0 @@ -from django.core.management import BaseCommand - -from karrot.subscriptions.models import WebPushSubscription -from karrot.subscriptions.utils import PushNotifyOptions -from karrot.subscriptions.web_push import notify_subscribers - - -class Command(BaseCommand): - def add_arguments(self, parser): - parser.add_argument('--title', help='push message title') - parser.add_argument('body', metavar='body', type=str, nargs='+', help='body of message') - - def handle(self, *args, **options): - title = options.get('title', 'Push title') - body = options.get('body', 'A nice push message') - - options: PushNotifyOptions = { - "click_action": "https://nicksellen.co.uk", - "message_title": title, - "message_body": body, - "image_url": "/media/__sized__/group_photos/photo_8s1U3PJ-thumbnail-200x200-70.jpg" - } - - notify_subscribers( - WebPushSubscription.objects.all(), - options, - ) diff --git a/karrot/subscriptions/factories.py b/karrot/subscriptions/factories.py index c0395a019..a79715626 100644 --- a/karrot/subscriptions/factories.py +++ b/karrot/subscriptions/factories.py @@ -1,34 +1,10 @@ -import base64 -import os - from factory import LazyAttribute, SubFactory from factory.django import DjangoModelFactory from karrot.subscriptions.models import WebPushSubscription from karrot.users.factories import UserFactory -from cryptography.hazmat.primitives.asymmetric import ec -from cryptography.hazmat.backends import default_backend from karrot.utils.tests.fake import faker -TEST_VAPID_PRIVATE_KEY = ( - "MHcCAQEEIPeN1iAipHbt8+/KZ2NIF8NeN24jqAmnMLFZEMocY8RboAoGCCqGSM49" - "AwEHoUQDQgAEEJwJZq/GN8jJbo1GGpyU70hmP2hbWAUpQFKDByKB81yldJ9GTklB" - "M5xqEwuPM7VuQcyiLDhvovthPIXx+gsQRQ==" -) - - -# Adapted from https://github.com/web-push-libs/pywebpush/blob/992efed89454629e741f8540f690bef681b17f2d/pywebpush/tests/test_webpush.py#L27 -def _gen_subscription_info(self, recv_key=None, endpoint="https://example.com/"): - if not recv_key: - recv_key = ec.generate_private_key(ec.SECP256R1, default_backend()) - return { - "endpoint": endpoint, - "keys": { - 'auth': base64.urlsafe_b64encode(os.urandom(16)).strip(b'='), - 'p256dh': self._get_pubkey_str(recv_key), - } - } - class WebPushSubscriptionFactory(DjangoModelFactory): class Meta: diff --git a/karrot/users/factories.py b/karrot/users/factories.py index 964bf4ba6..729b70408 100644 --- a/karrot/users/factories.py +++ b/karrot/users/factories.py @@ -5,13 +5,6 @@ from karrot.utils.tests.fake import faker -def set_password(obj, *args, **kwargs_): - if hasattr(obj, 'set_password'): - obj.set_password(obj.display_name) - else: - print('HMMM', obj) - - class UserFactory(DjangoModelFactory): class Meta: model = get_user_model() @@ -25,7 +18,7 @@ class Meta: description = LazyAttribute(lambda _: faker.text()) # Use display_name as password, as it is readable - password = PostGeneration(set_password) + password = PostGeneration(lambda obj, *args, **kwargs: obj.set_password(obj.display_name)) @classmethod def _create(cls, model_class, *args, **kwargs):