Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
apns23 / test / test_payload.py
Size: Mime:
import pytest

from apns23.payload import Payload, PayloadAlert


@pytest.fixture
def payload_alert():
    return PayloadAlert(
        title='title',
        title_localized_key='loc_k',
        title_localized_args='loc_a',
        body='body',
        body_localized_key='body_loc_k',
        body_localized_args='body_loc_a',
        action_localized_key='ac_loc_k',
        action='send',
        launch_image='img'
    )


def test_payload_alert(payload_alert):
    assert payload_alert.dict() == {
        'title': 'title',
        'title-loc-key': 'loc_k',
        'title-loc-args': 'loc_a',
        'body': 'body',
        'loc-key': 'body_loc_k',
        'loc-args': 'body_loc_a',
        'action-loc-key': 'ac_loc_k',
        'action': 'send',
        'launch-image': 'img'
    }


def test_payload():
    payload = Payload(
        alert='my_alert', badge=2, sound='chime',
        content_available=1, mutable_content=3,
        category='my_category', url_args='args', custom={'extra': 'something'}, thread_id=42)
    assert payload.dict() == {
        'aps': {
            'alert': 'my_alert',
            'badge': 2,
            'sound': 'chime',
            'content-available': 1,
            'mutable-content': 1,
            'thread-id': 42,
            'category': 'my_category',
            'url-args': 'args'
        },
        'extra': 'something'
    }


def test_payload_with_payload_alert(payload_alert):
    payload = Payload(
        alert=payload_alert, badge=2, sound='chime',
        content_available=1, mutable_content=1,
        category='my_category', url_args='args', custom={'extra': 'something'}, thread_id=42)
    assert payload.dict() == {
        'aps': {
            'alert': {
                'title': 'title',
                'title-loc-key': 'loc_k',
                'title-loc-args': 'loc_a',
                'body': 'body',
                'loc-key': 'body_loc_k',
                'loc-args': 'body_loc_a',
                'action-loc-key': 'ac_loc_k',
                'action': 'send',
                'launch-image': 'img'
            },
            'badge': 2,
            'sound': 'chime',
            'content-available': 1,
            'mutable-content': 1,
            'thread-id': 42,
            'category': 'my_category',
            'url-args': 'args',
        },
        'extra': 'something'
    }


def test_payload():
    payload = Payload(alert="Testing Notif", custom={'foo': 'bar'}, sound='')
    assert payload.dict() == {
        'aps': {
            'alert': 'Testing Notif',
            'sound': '',
            'content-available': 0,
        },
        'foo': 'bar'
    }