Esempio n. 1
0
def run_one_test(test,verbose=True,update=False):
    """ Run a given test name """
    child_logger = logger.getChild('run_one_test')
    try:
        if verbose:
            ch = logging.StreamHandler()
            ch.setLevel(logging.DEBUG)
            child_logger.addHandler(ch)

        child_logger.info('\nLaunching all tests')
        start = time.time()

        test_start =time.time()
        for potential,element_set in potential_module.supported_atoms.iteritems():
            child_logger.info('\nRunning potential=%r',potential)
            potential_start = time.time()
            for element in element_set:

                
                #figure out if we need to run the test
                test_needed = True
                if db.results_exist(potential=potential,
                                        element=element,
                                        test=test):
                    child_logger.info('Test %r,%r,%r exists',test,potential,element)
                    if new_results_needed(potential,element,test):
                        child_logger.info('New test needs computing')
                        test_needed = True
                    else:
                        test_needed = False
                if update:
                    test_needed=True
                 
                    
                if test_needed:
                    test_start = time.time()
                    child_logger.info('\nRunning element=%r',element)
                    try:
                        run_test(test=test,
                                potential=potential,
                                element=element,
                                verbose=verbose)
                    except ImportError as e:
                        child_logger.error('TRACEBACK: %s',traceback.format_exc())
                        child_logger.error("test=%r doesn't seem to exist",test)
                        raise
                    except Exception as e:
                        #Some other Error, log it.
                        child_logger.error('\nERROR on test=%r, potential=%r, element=%r, info:%r',
                                            test,potential,element,e)
                        child_logger.error('TRACEBACK: %s',traceback.format_exc())
        
                    child_logger.info('Element %r Run took %r seconds',element,time.time()-test_start)
                else:
                    child_logger.info('Unessesary test %r,%r,%r',test,potential,element)
            child_logger.info('Potential %r run took %r seconds',potential,time.time()-potential_start)
        child_logger.info('Test %r run took %r seconds',test,time.time()-test_start)

    finally:
        child_logger.removeHandler(ch)
Esempio n. 2
0
def new_results_needed(potential,element,test):
    """ Do we need new test results """
    if not db.results_exist(potential,element,test):
        return True
    test_time = test_timestamp(test)
    results_time = db.results_timestamp(potential,element,test)
    return test_time > results_time