def install_packages(what): from mapping import versions packages = { 'zookeeper': ['zookeeper', 'zookeeper-bin', 'zookeeperd'], 'consul': ['consul'], } packages['exhibitor'] = packages['zookeeper'] packages = packages.get(what, []) ver = versions.get(what) subprocess.call(['sudo', 'sed', '-i', 's/pgdg main.*$/pgdg main {0}/'.format(ver), '/etc/apt/sources.list.d/pgdg.list']) subprocess.call(['sudo', 'apt-get', 'update', '-y']) return subprocess.call(['sudo', 'apt-get', 'install', '-y', 'postgresql-' + ver, 'expect-dev', 'wget'] + packages)
def main(): what = os.environ.get('DCS', sys.argv[1] if len(sys.argv) > 1 else 'all') if what == 'all': flake8 = subprocess.call([sys.executable, 'setup.py', 'flake8']) test = subprocess.call([sys.executable, 'setup.py', 'test']) version = '.'.join(map(str, sys.version_info[:2])) shutil.move( '.coverage', os.path.join(tempfile.gettempdir(), '.coverage.' + version)) return flake8 | test elif what == 'combine': tmp = tempfile.gettempdir() for name in os.listdir(tmp): if name.startswith('.coverage.'): shutil.move(os.path.join(tmp, name), name) return subprocess.call([sys.executable, '-m', 'coverage', 'combine']) env = os.environ.copy() if sys.platform.startswith('linux'): from mapping import versions version = versions.get(what) path = '/usr/lib/postgresql/{0}/bin:.'.format(version) unbuffer = ['timeout', '600', 'unbuffer'] args = ['--tags=-skip'] if what == 'etcd' else [] else: path = os.path.abspath(os.path.join('pgsql', 'bin')) if sys.platform == 'darwin': path += ':.' args = unbuffer = [] env['PATH'] = path + os.pathsep + env['PATH'] env['DCS'] = what ret = subprocess.call(unbuffer + [sys.executable, '-m', 'behave'] + args, env=env) if ret != 0: if subprocess.call('grep . features/output/*_failed/*postgres?.*', shell=True) != 0: subprocess.call('grep . features/output/*/*postgres?.*', shell=True) return 1 return 0