mirror of
https://github.com/valitydev/salt.git
synced 2024-11-08 01:18:58 +00:00
55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import absolute_import
|
|
import tarfile
|
|
import tempfile
|
|
import subprocess
|
|
import sys
|
|
import os
|
|
|
|
from tests.support.unit import TestCase
|
|
|
|
import salt.utils.files
|
|
import salt.utils.thin
|
|
try:
|
|
import virtualenv
|
|
HAS_VENV = True
|
|
except ImportError:
|
|
HAS_VENV = False
|
|
|
|
|
|
class TestThinDir(TestCase):
|
|
|
|
def setUp(self):
|
|
self.tmpdir = tempfile.mkdtemp()
|
|
|
|
def tearDown(self):
|
|
salt.utils.files.rm_rf(self.tmpdir)
|
|
|
|
def test_thin_dir(self):
|
|
'''
|
|
Test the thin dir to make sure salt-call can run
|
|
|
|
Run salt call via a python in a new virtual environment to ensure
|
|
salt-call has all dependencies needed.
|
|
'''
|
|
venv_dir = os.path.join(self.tmpdir, 'venv')
|
|
virtualenv.create_environment(venv_dir)
|
|
salt.utils.thin.gen_thin(self.tmpdir)
|
|
thin_dir = os.path.join(self.tmpdir, 'thin')
|
|
thin_archive = os.path.join(thin_dir, 'thin.tgz')
|
|
tar = tarfile.open(thin_archive)
|
|
tar.extractall(thin_dir)
|
|
tar.close()
|
|
bins = 'bin'
|
|
if sys.platform == 'win32':
|
|
bins = 'Scripts'
|
|
cmd = [
|
|
os.path.join(venv_dir, bins, 'python'),
|
|
os.path.join(thin_dir, 'salt-call'),
|
|
'--version',
|
|
]
|
|
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
stdout, stderr = proc.communicate()
|
|
proc.wait()
|
|
assert proc.returncode == 0, (stdout, stderr, proc.returncode)
|