Пример #1
0
    def match(cls, result, user):
        # Apply global filters
        if not Filters.is_valid_user(user):
            # User didn't pass filters, update `account` attribute and return
            result['account'] = None

            return True, result

        # Find matching `UserRule`
        rule = (UserRule.select().where((UserRule.name == user['title'])
                                        | (UserRule.name == '*')
                                        | (UserRule.name == None)).order_by(
                                            UserRule.priority.asc()).first())

        log.debug('Activity matched against rule: %r', rule)

        if rule:
            # Process rule
            if rule.account_function is not None:
                result['account'] = cls.account_function(user, rule)
            elif rule.account_id is not None:
                result['account'] = rule.account_id
            else:
                return True, result
        else:
            result['account'] = None

        return False, result
Пример #2
0
    def match(cls, result, user):
        # Apply global filters
        if not Filters.is_valid_user(user):
            # User didn't pass filters, update `account` attribute and return
            result['account'] = None

            return True, result

        # Find matching `UserRule`
        rule = (UserRule
            .select()
            .where(
                (UserRule.name == user['title']) |
                (UserRule.name == '*') |
                (UserRule.name == None)
            )
            .order_by(
                UserRule.priority.asc()
            )
            .first()
        )

        log.debug('Activity matched against rule: %r', rule)

        if rule:
            # Process rule
            if rule.account_function is not None:
                result['account'] = cls.account_function(user, rule)
            elif rule.account_id is not None:
                result['account'] = rule.account_id
            else:
                return True, result
        else:
            result['account'] = None

        return False, result
def test_user_empty():
    Environment.prefs['scrobble_names'] = ''

    assert Filters.is_valid_user({'title': 'one'}) is True
def test_user_inverted():
    Environment.prefs['scrobble_names'] = 'one, -two'

    assert Filters.is_valid_user({'title': 'one'}) is True
    assert Filters.is_valid_user({'title': 'two'}) is False
def test_missing_preference():
    Environment.prefs['scrobble_names'] = None

    assert Filters.is_valid_user({'title': 'one'}) is True
Пример #6
0
def test_user_empty():
    Environment.prefs["scrobble_names"] = ""

    assert Filters.is_valid_user({"title": "one"}) is True
Пример #7
0
def test_user_inverted():
    Environment.prefs["scrobble_names"] = "one, -two"

    assert Filters.is_valid_user({"title": "one"}) is True
    assert Filters.is_valid_user({"title": "two"}) is False
Пример #8
0
def test_missing_preference():
    Environment.prefs["scrobble_names"] = None

    assert Filters.is_valid_user({"title": "one"}) is True