def do_test_load(self, config='', other_files={},
                     stdout_re=None, stderr_re=None):
        configFile = os.path.join('configdir', 'master.cfg')
        with open(configFile, "w") as f:
            f.write(config)
        for filename, contents in other_files.iteritems():
            if isinstance(filename, type(())):
                fn = os.path.join('configdir', *filename)
                dn = os.path.dirname(fn)
                if not os.path.isdir(dn):
                    os.makedirs(dn)
            else:
                fn = os.path.join('configdir', filename)
            with open(fn, "w") as f:
                f.write(contents)

        old_stdout, old_stderr = sys.stdout, sys.stderr
        stdout = sys.stdout = cStringIO.StringIO()
        stderr = sys.stderr = cStringIO.StringIO()
        try:
            checkconfig._loadConfig(
                basedir='configdir', configFile="master.cfg", quiet=False)
        finally:
            sys.stdout, sys.stderr = old_stdout, old_stderr
        if stdout_re:
            stdout = stdout.getvalue()
            self.failUnless(stdout_re.search(stdout), stdout)
        if stderr_re:
            stderr = stderr.getvalue()
            self.failUnless(stderr_re.search(stderr), stderr)
예제 #2
0
    def do_test_load(self,
                     config='',
                     other_files={},
                     stdout_re=None,
                     stderr_re=None):
        configFile = os.path.join('configdir', 'master.cfg')
        with open(configFile, "w") as f:
            f.write(config)
        for filename, contents in iteritems(other_files):
            if isinstance(filename, type(())):
                fn = os.path.join('configdir', *filename)
                dn = os.path.dirname(fn)
                if not os.path.isdir(dn):
                    os.makedirs(dn)
            else:
                fn = os.path.join('configdir', filename)
            with open(fn, "w") as f:
                f.write(contents)

        old_stdout, old_stderr = sys.stdout, sys.stderr
        stdout = sys.stdout = NativeStringIO()
        stderr = sys.stderr = NativeStringIO()
        try:
            checkconfig._loadConfig(basedir='configdir',
                                    configFile="master.cfg",
                                    quiet=False)
        finally:
            sys.stdout, sys.stderr = old_stdout, old_stderr
        if stdout_re:
            stdout = stdout.getvalue()
            self.assertTrue(stdout_re.search(stdout), stdout)
        if stderr_re:
            stderr = stderr.getvalue()
            self.assertTrue(stderr_re.search(stderr), stderr)