コード例 #1
0
try:
    for a in model_lists:
        logger.debug('id: %d' % a['id'])
        if a[opts.field]:
            assert a['parent_left'] > models[a[
                opts.field][0]]['parent_left'], '%s > %s' % (
                    a['parent_left'], models[a[opts.field][0]]['parent_left'])
            assert a['parent_right'] < models[a[
                opts.field][0]]['parent_right'], '%s > %s' % (
                    a['parent_right'],
                    models[a[opts.field][0]]['parent_right'])
        assert a['parent_left'] < a['parent_right']
        for a2 in model_lists:
            assert not ((a2['parent_right'] > a['parent_left']) and
                        (a2['parent_left'] < a['parent_left']) and
                        (a2['parent_right'] < a['parent_right']))
            if a2[opts.field] == a['id']:
                assert (a2['parent_left'] > a['parent_left']) and (
                    a2['parent_right'] < a['parent_right'])
    logger.info('No problem found')
except AssertionError, e:
    logger.error('Fail: %s' % str(e))
    if opts.fix:
        logger.info('Begin to fix the problem')
        model._parent_store_compute()
        logger.info('End fix')

logger.info('Check End and complete')

# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
コード例 #2
0
    sys.exit(1)

model = Object(cnx, opts.model)
model_ids = model.search([])
model_lists = model.read(model_ids, [opts.field,'parent_left','parent_right'])
models = dict(map(lambda x: (x['id'],x), model_lists))
try:
    for a in model_lists:
        logger.debug('id: %d' % a['id'])
        if a[opts.field]:
            assert a['parent_left'] > models[a[opts.field][0]]['parent_left'], '%s > %s' % (a['parent_left'], models[a[opts.field][0]]['parent_left'])
            assert a['parent_right'] < models[a[opts.field][0]]['parent_right'], '%s > %s' % (a['parent_right'], models[a[opts.field][0]]['parent_right'])
        assert a['parent_left'] < a['parent_right']
        for a2 in model_lists:
            assert not ((a2['parent_right']>a['parent_left']) and 
                (a2['parent_left']<a['parent_left']) and 
                (a2['parent_right']<a['parent_right']))
            if a2[opts.field]==a['id']:
                assert (a2['parent_left']>a['parent_left']) and (a2['parent_right']<a['parent_right'])
    logger.info('No problem found')
except AssertionError, e:
    logger.error('Fail: %s' % str(e))
    if opts.fix:
        logger.info('Begin to fix the problem')
        model._parent_store_compute()
        logger.info('End fix')

logger.info('Check End and complete')

# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: