def test_address_invalid_client(): # Empty Address Environment.prefs['filter_networks'] = '10.20.30.40' assert Filters.is_valid_address({'address': None}) is False # Malformed Address Environment.prefs['filter_networks'] = '10.20.30.40' assert Filters.is_valid_address({'address': '10.20.30'}) is False
def test_address_invalid_filter(): # Empty Filter Environment.prefs['filter_networks'] = ',' assert Filters.is_valid_address({'address': '10.20.30.40'}) is False # Malformed Filter Environment.prefs['filter_networks'] = '10.20.30/24' assert Filters.is_valid_address({'address': '10.20.30.40'}) is False
def test_address_basic(): # Filter Address Environment.prefs['filter_networks'] = '10.20.30.40' assert Filters.is_valid_address({'address': '10.20.30.40'}) is True # Filter Subnet Environment.prefs['filter_networks'] = '10.20.30.0/24' assert Filters.is_valid_address({'address': '10.20.30.40'}) is True
def test_address_invalid_filter(): # Empty Filter Environment.prefs["filter_networks"] = "," assert Filters.is_valid_address({"address": "10.20.30.40"}) is False # Malformed Filter Environment.prefs["filter_networks"] = "10.20.30/24" assert Filters.is_valid_address({"address": "10.20.30.40"}) is False
def test_address_invalid_client(): # Empty Address Environment.prefs["filter_networks"] = "10.20.30.40" assert Filters.is_valid_address({"address": None}) is False # Malformed Address Environment.prefs["filter_networks"] = "10.20.30.40" assert Filters.is_valid_address({"address": "10.20.30"}) is False
def test_address_basic(): # Filter Address Environment.prefs["filter_networks"] = "10.20.30.40" assert Filters.is_valid_address({"address": "10.20.30.40"}) is True # Filter Subnet Environment.prefs["filter_networks"] = "10.20.30.0/24" assert Filters.is_valid_address({"address": "10.20.30.40"}) is True
def match(result, client, player): # Apply global filters if not Filters.is_valid_client(player) or\ not Filters.is_valid_address(client): # Client didn't pass filters, update `account` attribute and return result['account'] = None return True, result # Find matching `ClientRule` address = client['address'] if client else None rule = (ClientRule .select() .where( (ClientRule.key == player['key']) | (ClientRule.key == '*') | (ClientRule.key == None), (ClientRule.name == player['title']) | (ClientRule.name == '*') | (ClientRule.name == None), (ClientRule.address == address) | (ClientRule.address == '*') | (ClientRule.address == None) ) .order_by( ClientRule.priority.asc() ) .first() ) log.debug('Activity matched against rule: %r', rule) if rule: # Process rule if rule.account_id is not None: result['account'] = rule.account_id else: return True, result else: result['account'] = None return False, result