def create_rpx_key(self, rpx_id): """Creates RPX Key from rpx_id. Adds "key:" prefix as suggested by http://code.google.com/appengine/docs/python/datastore/modelclass.html#Model """ if not rpx_id: raise ValueError return dbutils.generate_key_name(rpx_id)
def testCreateRpxKey(self): """Tests create_rpx_key(). create_rpx_key() should make sure that the key name starts with legal characters as defined by http://code.google.com/appengine/docs/python/datastore/modelclass.html#Model """ rpx_id = "abcd1234" rpx_key = generate_key_name(rpx_id) self.assert_(RpxBackend.create_rpx_key(self.backend, rpx_id) == rpx_key) try: RpxBackend.create_rpx_key(self.backend, None) self.assert_(False) except: pass
def generate_index_key_names(self, values): if self.filters and not self.should_index(values): return [] # Remove unneeded values filters = tuple([f[0].split(' ')[0] for f in get_filters(*self.filters)]) for filter in filters: if filter not in (self.properties + self.integrate): del values[filter] key_names = [] property_values = values[self.properties[0]] if not isinstance(property_values, (list, tuple)): property_values = (property_values,) for property_value in property_values: parts = [] for property in sorted(values.keys()): if property == self.properties[0]: parts.extend((property, unicode(property_value))) else: parts.extend((property, unicode(values[property]))) key_names.append((property_value, generate_key_name(*parts))) return key_names