示例#1
0
 def _make_key(self, data):
     """ Generate a unique identifier for an entry. This is better
     than SQL auto-increment because it is stable across mutltiple
     loads and thus creates stable URIs for entries.
     """
     uniques = [self.name]
     for field in self.fields:
         if not field.key:
             continue
         obj = data.get(field.name)
         if isinstance(obj, dict):
             obj = obj.get('name', obj.get('id'))
         uniques.append(obj)
     return hash_values(uniques)
示例#2
0
 def _make_key(self, data):
     """ Generate a unique identifier for an entry. This is better
     than SQL auto-increment because it is stable across mutltiple
     loads and thus creates stable URIs for entries.
     """
     uniques = [self.name]
     for field in self.fields:
         if not field.key:
             continue
         obj = data.get(field.name)
         if isinstance(obj, dict):
             obj = obj.get('name', obj.get('id'))
         uniques.append(obj)
     return hash_values(uniques)
示例#3
0
    def _cell_id_for_row(self, row, query_dimensions):
        cell_keys = []

        for dimension in query_dimensions:
            value = util.deep_get(row, dimension)

            if isinstance(value, dict):
                from_day = util.deep_get(value, 'from.day')
                if from_day:
                    cell_keys.append(from_day)
                    cell_keys.append(util.deep_get(value, 'to.day'))
                elif '_id' in value:
                    cell_keys.append(value['_id'])
                elif 'name' in value:
                    cell_keys.append(value['name'])
            else:
                cell_keys.append(value)

        return util.hash_values(map(lambda x: unicode(x).encode('utf8'), cell_keys))
示例#4
0
def test_hash_values():
    util.hash_values([u'fóo&bañ'])
示例#5
0
def test_hash_values():
    util.hash_values([u'fóo&bañ'])
示例#6
0
 def test_hash_values(self):
     hash_value = util.hash_values([u'fóo&bañ'])
     assert hash_value == 'a2a4c050e75206e5fe84dbb7fe525c5dde8c848d'
示例#7
0
def test_hash():
    h.assert_equal(hash_values(["foo", "bar", "baz"]),
                   '976cbe6da83475797cbb55f3fc50bf174b138a60')