Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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 == []
Ejemplo n.º 3
0
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)