~lnxtorez/lava-test/add-pm-qa-definition

« back to all changes in this revision

Viewing changes to abrek/testdef.py

  • Committer: Paul Larson
  • Date: 2010-10-07 15:44:19 UTC
  • mfrom: (40.2.1 testloader-fixes)
  • Revision ID: paul.larson@canonical.com-20101007154419-khbxfe0hlixqz3eo
Fix a strange problem that can happen during unit tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
    """
46
46
    def __init__(self, testname, version="", installer=None, runner=None,
47
47
                 parser=None):
48
 
        self.config = get_config()
49
48
        self.testname = testname
50
49
        self.version = version
51
50
        self.installer = installer
52
51
        self.runner = runner
53
52
        self.parser = parser
54
 
        self.installdir = os.path.join(self.config.installdir, self.testname)
55
53
        self.origdir = os.path.abspath(os.curdir)
56
54
 
57
55
    def install(self):
65
63
        if not self.installer:
66
64
            raise RuntimeError("no installer defined for '%s'" %
67
65
                                self.testname)
68
 
        if os.path.exists(self.installdir):
 
66
        config = get_config()
 
67
        installdir = os.path.join(config.installdir, self.testname)
 
68
        if os.path.exists(installdir):
69
69
            raise RuntimeError("%s is already installed" % self.testname)
70
 
        os.makedirs(self.installdir)
71
 
        os.chdir(self.installdir)
 
70
        os.makedirs(installdir)
 
71
        os.chdir(installdir)
72
72
        try:
73
73
            self.installer.install()
74
74
        except Exception as strerror:
86
86
        not removed by this.
87
87
        """
88
88
        os.chdir(self.origdir)
89
 
        path = os.path.join(self.config.installdir, self.testname)
 
89
        config = get_config()
 
90
        path = os.path.join(config.installdir, self.testname)
90
91
        if os.path.exists(path):
91
92
            shutil.rmtree(path)
92
93
 
112
113
        if not self.runner:
113
114
            raise RuntimeError("no test runner defined for '%s'" %
114
115
                                self.testname)
 
116
        config = get_config()
 
117
        installdir = os.path.join(config.installdir, self.testname)
115
118
        resultname = (self.testname +
116
119
                     str(time.mktime(datetime.utcnow().timetuple())))
117
 
        self.resultsdir = os.path.join(self.config.resultsdir, resultname)
 
120
        self.resultsdir = os.path.join(config.resultsdir, resultname)
118
121
        os.makedirs(self.resultsdir)
119
 
        os.chdir(self.installdir)
 
122
        os.chdir(installdir)
120
123
        self.runner.run(self.resultsdir, quiet=quiet)
121
124
        self._savetestdata()
122
125
 
124
127
        if not self.parser:
125
128
            raise RuntimeError("no test parser defined for '%s'" %
126
129
                                self.testname)
127
 
        self.resultsdir = os.path.join(self.config.resultsdir, resultname)
128
 
        os.chdir(self.resultsdir)
 
130
        config = get_config()
 
131
        resultsdir = os.path.join(config.resultsdir, resultname)
 
132
        os.chdir(resultsdir)
129
133
        self.parser.parse()
130
134
 
131
135