def test_numeric_inputs(self): # Numeric key self.assertEqual(safe_key(1, 'prefix', 'version'), 'prefix:version:1') # Numeric prefix self.assertEqual(safe_key('test', 5, 'version'), '5:version:test') # Numeric version self.assertEqual(safe_key('test', 'prefix', 5), 'prefix:5:test')
def test_long_key_prefix_version(self): # Long key key = safe_key('a' * 300, 'prefix', 'version') self.assertTrue(self._is_valid_key(key)) # Long prefix key = safe_key('key', 'a' * 300, 'version') self.assertTrue(self._is_valid_key(key)) # Long version key = safe_key('key', 'prefix', 'a' * 300) self.assertTrue(self._is_valid_key(key))
def test_safe_key_version_unicode(self): for unicode_char in self.UNICODE_CHAR_CODES: # Generate a version with that character version = unichr(unicode_char) # Make the key safe key = safe_key('test', '', version) # The key should now be valid self.assertTrue(self._is_valid_key(key), msg="Failed for unicode character {0}".format(unicode_char))
def test_safe_key_long(self): # Choose lengths close to memcached's cutoff (250) for length in [248, 249, 250, 251, 252]: # Generate a key of that length key = 'a' * length # Make the key safe key = safe_key(key, '', '') # The key should now be valid self.assertTrue(self._is_valid_key(key), msg="Failed for key length {0}".format(length))
def test_safe_key(self): key = safe_key('test', 'prefix', 'version') self.assertEqual(key, 'prefix:version:test')