예제 #1
0
    def test_init_no_id(self):
        amap = Map(name="TEST", key_values={"key1": "val1", "key2": "val2"})

        self.assertIsNotNone(amap)
        self.assertIsNone(amap.id)
        self.assertEqual("TEST", amap.name)
        self.assertEqual({"key1": "val1", "key2": "val2"}, amap.key_values)
        self.assertEqual({'key_values': {'key1': 'val1', 'key2': 'val2'}, 'name': 'TEST'}, amap.to_document())
예제 #2
0
    def add_to_map(self, name, key, value, overwrite_existing=False):
        collection = self.collection()
        amap = collection.find_one({MongoMapsStore.NAME: name})
        if amap is not None:
            if key in amap[MongoMapsStore.KEYVALUES]:
                if overwrite_existing is True:
                    YLogger.info(self, "Updating map [%s] in Mongo [%s]=[%s]", name, key, value)
                    amap[MongoMapsStore.KEYVALUES][key] = value
                    result = collection.replace_one({MongoMapsStore.NAME: name}, amap)
                    return bool(result.modified_count > 0)
                else:
                    YLogger.error(self, "Existing value in map [%s] [%s] = [%s] in Mongo", name, key, value)
            else:
                amap[MongoMapsStore.KEYVALUES][key] = value
                result = collection.replace_one({MongoMapsStore.NAME: name}, amap)
                return bool(result.modified_count > 0)

        else:
            amap = Map(name, {key: value})
            return self.add_document(amap)

        return False
예제 #3
0
 def add_to_map(self, name, key, value, overwrite_existing=False):
     collection = self.collection()
     map = collection.find_one({MongoMapsStore.NAME: name})
     if map is not None:
         if key in map[MongoMapsStore.KEYVALUES]:
             if overwrite_existing is True:
                 YLogger.info(self, "Updating map in Mongo", name, key,
                              value)
                 map[MongoMapsStore.KEYVALUES][key] = value
                 collection.replace_one({MongoMapsStore.NAME: name}, map)
             else:
                 YLogger.error(
                     self,
                     "Existing value in map [%s] [%s] = [%s] in Mongo",
                     name, key, value)
                 return False
         else:
             map[MongoMapsStore.KEYVALUES][key] = value
             collection.replace_one({MongoMapsStore.NAME: name}, map)
     else:
         map = Map(name, {key: value})
         self.add_document(map)
     return True