Пример #1
0
    def test_05_save_entity(self):
        connection = MongoDatabaseAPI("localhost", DB_NAME)
        connection.connect()
        #   Given wrong record type to save
        self.assertRaises(BIValueError, connection.save_entity, MongoDatabaseAPI.ET_RESOURCE, "not a dict value")

        #   Insert new record("_id" exist in incoming dictionary but not in DB)
        new_record = {"_id" : objectid.ObjectId("5010cb8137adc7191b000000"), "res_type" : "printer", "res_status" : "active", "owner" : "Priocom", "external_system" : "", "description" : "Printer in the Brannigan Team workroom", "additional_parameters" : {"Vendor" : "Canon", "model" : "iR1018"}}
        
        id = connection.save_entity(MongoDatabaseAPI.ET_RESOURCE, new_record)
        conn = Connection()
        result = conn[DB_NAME][MongoDatabaseAPI.ET_RESOURCE].find_one({'_id': objectid.ObjectId(id)})
        self.assertEqual(new_record, result)

        #   Insert another new record(no "_id" key in incoming dictionary)
        new_record = {"res_type" : "printer", "res_status" : "active", "owner" : "Priocom", "external_system" : "", "description" : "Printer in the Brannigan Team workroom", "additional_parameters" : {"Vendor" : "Canon", "model" : "iR1018"}}
        id = connection.save_entity(MongoDatabaseAPI.ET_RESOURCE, new_record)
        conn = Connection()
        result = conn[DB_NAME][MongoDatabaseAPI.ET_RESOURCE].find_one({'_id': objectid.ObjectId(id)})
        self.assertEqual(new_record, result)

        #   Update existing record(change res_status and additional_parameters:model)
        new_record = {"_id": id, "res_type" : "printer", "res_status" : "down", "owner" : "Priocom", "external_system" : "", "description" : "Printer in the Brannigan Team workroom", "additional_parameters" : {"Vendor" : "Canon", "model" : "iR1022"}}
        id = connection.save_entity(MongoDatabaseAPI.ET_RESOURCE, new_record)
        result = conn[DB_NAME][MongoDatabaseAPI.ET_RESOURCE].find_one({'_id': objectid.ObjectId(id)})
        self.assertEqual(new_record, result)

        conn.disconnect()
        connection.close()