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
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
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)
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)
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'
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'