Пример #1
0
def test_add_preferences_adds_on_opt_in(minimal_database, subscription):
    preference = subscription.datetime[0]
    user = User(email='*****@*****.**', metadata={'department': 'dept'})
    user.put()

    updated_preferences = {preference: True}
    assert len(user.subscription_preferences) == 0
    added = add_preferences(user, updated_preferences, subscription.key)
    assert added.pop() == preference
    assert user.key.get().subscription_preferences[0].get(
    ).preference == preference
Пример #2
0
def test_add_preferences_adds_on_opt_in(session, subscription):
    preference = subscription.datetime[0]
    user = User(email='*****@*****.**', meta_data={'department': 'dept'})
    session.add(user)
    session.commit()

    updated_preferences = {preference.id: True}
    assert len(user.subscription_preferences) == 0
    added = add_preferences(user, updated_preferences, subscription.id)
    assert added.pop() == preference.id
    user = User.query.filter(User.id == user.id).one()
    assert user.subscription_preferences[0].preference == preference
Пример #3
0
def test_add_preferences_adds_multiple_on_opt_in(minimal_database,
                                                 subscription):
    preference_1 = subscription.datetime[0]
    preference_2 = subscription.datetime[1]
    user = User(email='*****@*****.**', metadata={'department': 'dept'})
    user.put()

    updated_preferences = {preference_1: True, preference_2: True}
    assert len(user.subscription_preferences) == 0
    added = add_preferences(user, updated_preferences, subscription.key)
    assert preference_1 in added
    assert preference_2 in added
    assert len(user.subscription_preferences) == 2
    assert user.key.get().subscription_preferences[0].get().preference in (
        preference_1, preference_2)
    assert user.key.get().subscription_preferences[1].get().preference in (
        preference_1, preference_2)
Пример #4
0
def test_add_preferences_adds_multiple_on_opt_in(session, subscription):
    preference_1 = subscription.datetime[0]
    preference_2 = subscription.datetime[1]
    user = User(email='*****@*****.**', meta_data={'department': 'dept'})
    session.add(user)
    session.commit()

    updated_preferences = {preference_1.id: True, preference_2.id: True}
    assert len(user.subscription_preferences) == 0
    added = add_preferences(user, updated_preferences, subscription.id)
    assert preference_1.id in added
    assert preference_2.id in added
    assert len(user.subscription_preferences) == 2
    user = User.query.filter(User.id == user.id).one()
    assert user.subscription_preferences[0].preference in (preference_1,
                                                           preference_2)
    assert user.subscription_preferences[1].preference in (preference_1,
                                                           preference_2)
Пример #5
0
def preferences_api_post(subscription):
    data = request.json
    user = get_user()
    if not user:
        return '400'

    subscription_key = ndb.Key(urlsafe=subscription)
    form_selection = {}
    for key, value in data.items():
        form_selection[ndb.Key(urlsafe=key)] = value

    removed = remove_preferences(user, form_selection, subscription_key)
    logging.info('Removed')
    logging.info(removed)

    added = add_preferences(user, form_selection, subscription_key)
    logging.info('Added')
    logging.info(added)

    return 'OK'
Пример #6
0
def preferences_api_post(subscription_id: int) -> str:
    data = request.json
    user = get_user(data.get('email'))
    del data['email']
    if not user:
        return '400'

    form_selection = {}
    for key, value in data.items():
        # Convert key (a table id) to an int
        form_selection[int(key)] = value

    removed = remove_preferences(user, form_selection, subscription_id)
    logging.info('Removed')
    logging.info(removed)

    added = add_preferences(user, form_selection, subscription_id)
    logging.info('Added')
    logging.info(added)

    return 'OK'