31 import warnings |
31 import warnings |
32 import tempfile |
32 import tempfile |
33 import getpass |
33 import getpass |
34 from hashlib import sha1 # pylint: disable=E0611 |
34 from hashlib import sha1 # pylint: disable=E0611 |
35 from datetime import timedelta |
35 from datetime import timedelta |
36 from os.path import (abspath, join, exists, split, isabs, isdir) |
36 from os.path import (abspath, realpath, join, exists, split, isabs, isdir) |
37 from functools import partial |
37 from functools import partial |
38 |
38 |
39 from logilab.common.date import strptime |
39 from logilab.common.date import strptime |
40 from logilab.common.decorators import cached, clear_cache |
40 from logilab.common.decorators import cached, clear_cache |
41 |
41 |
547 for datadir in cls.__CTL: |
547 for datadir in cls.__CTL: |
548 subprocess.call(['pg_ctl', 'stop', '-D', datadir, '-m', 'fast']) |
548 subprocess.call(['pg_ctl', 'stop', '-D', datadir, '-m', 'fast']) |
549 |
549 |
550 def __init__(self, *args, **kwargs): |
550 def __init__(self, *args, **kwargs): |
551 super(PostgresTestDataBaseHandler, self).__init__(*args, **kwargs) |
551 super(PostgresTestDataBaseHandler, self).__init__(*args, **kwargs) |
552 datadir = join(self.config.apphome, 'pgdb') |
552 datadir = realpath(join(self.config.apphome, 'pgdb')) |
|
553 if datadir in self.__CTL: |
|
554 return |
553 if not exists(datadir): |
555 if not exists(datadir): |
554 try: |
556 try: |
555 subprocess.check_call(['initdb', '-D', datadir, '-E', 'utf-8', '--locale=C']) |
557 subprocess.check_call(['initdb', '-D', datadir, '-E', 'utf-8', '--locale=C']) |
556 |
558 |
557 except OSError, err: |
559 except OSError, err: |