Ejemplo n.º 1
0
    def test_from_document(self):
        amap1 = Map.from_document({
            'key_values': {
                'key1': 'val1',
                'key2': 'val2'
            },
            'name': 'TEST'
        })
        self.assertIsNotNone(amap1)
        self.assertIsNone(amap1.id)
        self.assertEqual("TEST", amap1.name)
        self.assertEqual({"key1": "val1", "key2": "val2"}, amap1.key_values)

        amap2 = Map.from_document({
            '_id': '666',
            'key_values': {
                'key1': 'val1',
                'key2': 'val2'
            },
            'name': 'TEST'
        })
        self.assertIsNotNone(amap2)
        self.assertIsNotNone(amap2.id)
        self.assertEqual('666', amap2.id)
        self.assertEqual("TEST", amap2.name)
        self.assertEqual({"key1": "val1", "key2": "val2"}, amap2.key_values)
Ejemplo n.º 2
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())
Ejemplo n.º 3
0
 def test_repr_no_id(self):
     amap1 = Map.from_document({
         'key_values': {
             'key1': 'val1',
             'key2': 'val2'
         },
         'name': 'TEST'
     })
     self.assertEquals("<Map(id='n/a', name='TEST', values='key1, key2')>",
                       str(amap1))
Ejemplo n.º 4
0
 def test_repr_with_id(self):
     amap2 = Map.from_document({
         '_id': '666',
         'key_values': {
             'key1': 'val1',
             'key2': 'val2'
         },
         'name': 'TEST'
     })
     self.assertEquals("<Map(id='666', name='TEST', values='key1, key2')>",
                       str(amap2))
Ejemplo n.º 5
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
Ejemplo n.º 6
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