def test_filter_subscriptions_by_user_data_all(database): database.sub.rule_logic = 'all' rule1 = Rule(name="department", value="a").put() rule2 = Rule(name="location", value="c").put() database.sub.user_rules = [rule1, rule2] database.sub.put() preference = UserSubscriptionPreferences(subscription=database.sub.key, preference=database.prefs[0].key) preference.put() user = User(email='*****@*****.**', subscription_preferences=[preference.key]) user.metadata = {"department": "a", "location": "b"} user.put() merged_preferences = merge_subscriptions_with_preferences(user) subscriptions = filter_subscriptions_by_user_data(merged_preferences, user) assert subscriptions == [] user.metadata = {'department': 'a', 'location': 'c'} user.put() merged_preferences = merge_subscriptions_with_preferences(user) subscriptions = filter_subscriptions_by_user_data(merged_preferences, user) assert len(subscriptions) == 1 assert subscriptions[0]['id'] == database.sub.key.urlsafe()
def test_filter_subscriptions_by_user_data(database): preference = UserSubscriptionPreferences( subscription=database.sub.key, preference=database.prefs[0].key ) preference.put() user = User( email='*****@*****.**', subscription_preferences=[preference.key] ) user.metadata = {"department": "a"} user.put() rule = Rule(name="department", value="a").put() database.sub.rules = [rule] database.sub.put() merged_preferences = merge_subscriptions_with_preferences(user) subscriptions = filter_subscriptions_by_user_data(merged_preferences, user) assert len(subscriptions) == 1 assert subscriptions[0]['id'] == database.sub.key.urlsafe() user.metadata = {"department": "b"} user.put() merged_preferences = merge_subscriptions_with_preferences(user) subscriptions = filter_subscriptions_by_user_data(merged_preferences, user) assert subscriptions == []
def test_filter_subscriptions_by_user_data_without_rules(database): database.sub.rule_logic = 'all' database.sub.user_rules = [] database.sub.put() preference = UserSubscriptionPreferences(subscription=database.sub.key, preference=database.prefs[0].key) preference.put() user = User(email='*****@*****.**', subscription_preferences=[preference.key]) user.metadata = {"department": "a", "location": "b"} user.put() merged_preferences = merge_subscriptions_with_preferences(user) with pytest.raises(AssertionError): filter_subscriptions_by_user_data(merged_preferences, user)