def test_config(self): expected = [ 'a' * 32, 'b' * 32, ] append_lines(self.fn, expected) rc, out, err = proc.shell_script( pyt + ' ' + this_base + '/cat/cat_load_config.py ' + self.fn, env=dict(PYTHONPATH=this_base + ':' + os.environ.get('PYTHONPATH'))) dd(rc) dd(out) dd(err) self.assertEqual(0, rc) path = [ 'fsutil_cat_lock_', 'cat_load_config.py', ] + os.path.realpath(self.fn)[1:].split(os.path.sep) path = './' + '!'.join(path) dd(path) self.assertTrue(os.path.isfile(path)) force_remove(path)
def test_make_server_id(self): server_id = str(ectypes.ServerID.local_server_id(_idcid)) self.assertEqual(18, len(server_id)) self.assertRegexpMatches(server_id, "^.{6}[0-9a-f]{12}$") out = proc.shell_script('ifconfig') self.assertIn(re.sub('(.{2})', r':\1', server_id[6:])[1:], str(out))
def test_get_device(self): rst = fsutil.get_device('/inexistent') # GNU "grep -o" split items into several lines root_dev = proc.shell_script( 'mount | grep " on / " | grep -o "[^ ]*" | head -n1')[1].strip() self.assertEqual(root_dev, rst)
def test_get_device_fs(self): # GNU "grep -o" split items into several lines rc, out, err = proc.shell_script( 'mount | grep " on / " | grep -o "[^ ]*" | head -n1') dd('find device on /', rc, out, err) dev = out.strip() dd('device: ', dev) rst = fsutil.get_device_fs(dev) self.assertIn(rst, ('hfs', 'xfs', 'ext2', 'ext3', 'ext4'))
def test_makedirs_with_config(self): fn = '/tmp/pykit-ut-fsutil-foo' force_remove(fn) rc, out, err = proc.shell_script( pyt + ' ' + this_base + '/makedirs_with_config.py ' + fn, env=dict(PYTHONPATH=this_base + ':' + os.environ.get('PYTHONPATH'))) dd('run makedirs_with_config.py: ', rc, out, err) self.assertEqual(0, rc, 'normal exit') self.assertEqual('2,3', out, 'uid,gid is defined in test/pykitconfig.py')
def test_get_path_usage(self): path = '/' rst = fsutil.get_path_usage(path) # check against os.statvfs. st = os.statvfs(path) dd(humannum.humannum(rst)) # space is changing.. self.assertAlmostEqual(st.f_frsize * st.f_bavail, rst['available'], delta=4 * 1024**2) self.assertAlmostEqual(st.f_frsize * st.f_blocks, rst['total'], delta=4 * 1024**2) self.assertAlmostEqual(st.f_frsize * (st.f_blocks - st.f_bavail), rst['used'], delta=4 * 1024**2) self.assertAlmostEqual((st.f_blocks - st.f_bavail) * 100 / st.f_blocks, int(rst['percent'] * 100), delta=4 * 1024**2) if st.f_bfree > st.f_bavail: self.assertLess(rst['available'], st.f_frsize * st.f_bfree) else: dd('st.f_bfree == st.f_bavail') # check against df rc, out, err = proc.shell_script('df -m / | tail -n1') # Filesystem 1M-blocks Used Available Capacity iused ifree %iused Mounted on # /dev/disk1 475828 328021 147556 69% 84037441 37774557 69% / dd('space of "/" from df') total_mb = out.strip().split()[1] # "123.8M", keep int only rst_total_mb = humannum.humannum(rst['total'], unit=humannum.M) rst_total_mb = rst_total_mb.split('.')[0].split('M')[0] dd('total MB from df:', total_mb, 'result total MB:', rst_total_mb) self.assertAlmostEqual(int(total_mb), int(rst_total_mb), delta=4)
from pykit import proc returncode, out, err = proc.command('ls', '-al', cwd='/home/cheng') ''' for i in out.split("\n"): print i print print returncode print err ''' returncode, out, err = proc.shell_script('ls -al', cwd='/home/cheng') ''' print out ''' proc.start_process('csv_to_json.py', '/home/cheng/test_json/', 'p'='a')
def subproc(script, env=None): if env is None: env=dict(PYTHONPATH=this_base + '/../..',) return proc.shell_script(script, env=env)
def run(): try: code, out, err = proc.shell_script('/usr/sbin/lsof -p ' + str(os.getpid())) except Exception as e: print repr(e) write_file(foo_fn, repr(out))
def subproc(script, env=None): if env is None: env = dict(PYTHONPATH=this_base + '/../..',) return proc.shell_script(script, env=env)
def run(): code, out, err = proc.shell_script('/usr/sbin/lsof -p ' + str(os.getpid())) write_file(foo_fn, repr(out))