Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/testing/unit/tests/test_regression.py

    r10655 r11591  
    77import subprocess 
    88 
     9import Orange 
    910from Orange.utils import environ 
    1011from Orange.testing import testing 
     
    1213 
    1314class TestRegression(unittest.TestCase): 
    14  
    1515    PLATFORM = sys.platform 
    1616    PYVERSION = sys.version[:3] 
    1717    STATES = ["OK", "timedout", "changed", "random", "error", "crash"] 
     18    maxDiff = None 
     19 
     20    def __init__(self, methodName='runTest'): 
     21        super(TestRegression, self).__init__(methodName) 
     22        self.orange_dir = os.path.dirname(Orange.__file__) 
     23        self.orange_dir = os.path.join(self.orange_dir, '..') 
     24        self.orange_dir = os.path.realpath(self.orange_dir) 
    1825 
    1926    def setUp(self): 
    20         pass 
     27        sys.path.append(self.orange_dir) 
     28 
     29    def tearDown(self): 
     30        del sys.path[-1] 
    2131 
    2232    def test_regression_on(self, roottest, indir, outdir, name): 
     
    3848        stdout, stderr = p.communicate() 
    3949        rv = stdout.strip().lower() 
     50        if rv == 'error': 
     51            self.assertEqual(stderr.split('\n'), []) 
     52        elif rv == 'changed': 
     53            expected_results = self.get_expected_results(outdir, name) 
     54            actual_results = self.get_actual_results(outdir, name) 
     55            self.assertEqual(actual_results, expected_results) 
     56 
     57 
    4058        self.assertEqual(rv, "ok", "Regression test %s: %s" % (rv, name) \ 
    4159                        if stderr == "" else \ 
    4260                        "Regression test %s: %s\n\n%s" % (rv, name, stderr)) 
    4361        os.chdir(tmpdir) 
     62 
     63    def get_expected_results(self, outputdir, name): 
     64        expected_results = "%s/%s.%s.%s.txt" % (outputdir, name, sys.platform, sys.version[:3]) 
     65        if not os.path.exists(expected_results): 
     66            expected_results = "%s/%s.%s.txt" % (outputdir, name, sys.platform) 
     67            if not os.path.exists(expected_results): 
     68                expected_results = "%s/%s.txt" % (outputdir, name) 
     69 
     70        with open(expected_results, 'r') as results: 
     71            return results.read().split('\n') 
     72 
     73    def get_actual_results(self, outputdir, name): 
     74        for state in TestRegression.STATES: 
     75            actual_results = "%s/%s.%s.%s.%s.txt" % ( 
     76                outputdir, name, TestRegression.PLATFORM, 
     77                TestRegression.PYVERSION, state) 
     78 
     79            if os.path.exists(actual_results): 
     80                with open(actual_results, 'r') as results: 
     81                    return results.read().split('\n') 
     82 
    4483 
    4584root = os.path.normpath(os.path.join(environ.install_dir, "..")) 
Note: See TracChangeset for help on using the changeset viewer.