Changeset 4334


Ignore:
Timestamp:
07/07/11 07:36:54 (3 years ago)
Author:
tekl
Message:

Change diet test to not use subprocesses - fixes Jenkins

File:
1 edited

Legend:

Unmodified
Added
Removed
  • coopr.pyomo/trunk/coopr/pyomo/tests/examples/diet/test_diet.py

    r4330 r4334  
    44import pyutilib.th as unittest 
    55from pyutilib.misc.pyyaml_util import * 
     6import coopr.pyomo.scripting.pyomo as pyomo 
    67 
    78currdir = os.path.dirname(os.path.abspath(__file__)) 
     
    3940            args = list(map(str, args)) 
    4041 
    41             args.insert(0, 'pyomo') 
    4242            outputpath = kwargs.pop('outputpath', os.path.join(exdir, 'results.yml')) 
    43             args.extend(['--save-results', outputpath]) 
    44             print "Running:", ' '.join(args) 
     43            args.extend(['--quiet', '--save-results', outputpath]) 
     44            print "Args:", ' '.join(args) 
    4545 
    46             proc = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=exdir) 
    47             outdata, errdata = proc.communicate() 
    48             if proc.returncode == 0 and os.path.exists(outputpath): 
    49                 return outputpath 
    50             else: 
    51                 print("Output:") 
    52                 print outdata 
    53                 print("Error message:") 
    54                 print errdata 
    55                 self.fail("Pyomo process failed with return code " + str(proc.returncode)) 
     46            old_path = os.getcwd() 
     47            os.chdir(exdir) 
     48            output = pyomo.run(args) 
     49            os.chdir(old_path) 
     50            return outputpath 
    5651 
    5752        def s(self, args): 
    5853            self.skipTest("Pyomo was not available or returned an error; please ensure it is in your $PATH") 
    59  
    60         # locate pyomo executable and assign appropriate helper based on success 
    61         proc = subprocess.Popen(["pyomo"], stdout=subprocess.PIPE) 
    62         try: 
    63             proc.wait() 
    64             if proc.returncode == 0: 
    65                 cls.pyomo = p 
    66             else: 
    67                 cls.pyomo = s 
    68         except OSError: 
    69             cls.pyomo = s 
     54         
     55        cls.pyomo = p 
    7056 
    7157    def test_pyomo_dat(self): 
     
    7460        baseline_file = os.path.join(currdir, 'baselines', 'diet1_pyomo_dat.yml') 
    7561        compare_yaml_files(baseline_file, results_file) 
     62 
     63        os.remove(results_file) 
    7664 
    7765    @unittest.skipUnless(module_available('pyodbc'), "PyODBC is not installed") 
     
    8270        compare_yaml_files(baseline_file, results_file) 
    8371 
     72        os.remove(results_file) 
     73 
    8474    @unittest.skipUnless(module_available('pyodbc'), "Requires PyODBC") 
    8575    def test_equality(self): 
     
    8878 
    8979        compare_yaml_files(dat_results_file, mdb_results_file) 
     80 
     81        os.remove(dat_results_file) 
     82        os.remove(mdb_results_file) 
Note: See TracChangeset for help on using the changeset viewer.