PATH:
usr
/
lib64
/
python2.7
/
distutils
/
tests
"""Tests for distutils.file_util.""" import unittest import os import shutil from distutils.file_util import move_file, write_file, copy_file from distutils import log from distutils.tests import support from test.test_support import run_unittest requires_os_link = unittest.skipUnless(hasattr(os, "link"), "test requires os.link()") class FileUtilTestCase(support.TempdirManager, unittest.TestCase): def _log(self, msg, *args): if len(args) > 0: self._logs.append(msg % args) else: self._logs.append(msg) def setUp(self): super(FileUtilTestCase, self).setUp() self._logs = [] self.old_log = log.info log.info = self._log tmp_dir = self.mkdtemp() self.source = os.path.join(tmp_dir, 'f1') self.target = os.path.join(tmp_dir, 'f2') self.target_dir = os.path.join(tmp_dir, 'd1') def tearDown(self): log.info = self.old_log super(FileUtilTestCase, self).tearDown() def test_move_file_verbosity(self): f = open(self.source, 'w') try: f.write('some content') finally: f.close() move_file(self.source, self.target, verbose=0) wanted = [] self.assertEqual(self._logs, wanted) # back to original state move_file(self.target, self.source, verbose=0) move_file(self.source, self.target, verbose=1) wanted = ['moving %s -> %s' % (self.source, self.target)] self.assertEqual(self._logs, wanted) # back to original state move_file(self.target, self.source, verbose=0) self._logs = [] # now the target is a dir os.mkdir(self.target_dir) move_file(self.source, self.target_dir, verbose=1) wanted = ['moving %s -> %s' % (self.source, self.target_dir)] self.assertEqual(self._logs, wanted) def test_write_file(self): lines = ['a', 'b', 'c'] dir = self.mkdtemp() foo = os.path.join(dir, 'foo') write_file(foo, lines) content = [line.strip() for line in open(foo).readlines()] self.assertEqual(content, lines) def test_copy_file(self): src_dir = self.mkdtemp() foo = os.path.join(src_dir, 'foo') write_file(foo, 'content') dst_dir = self.mkdtemp() copy_file(foo, dst_dir) self.assertTrue(os.path.exists(os.path.join(dst_dir, 'foo'))) @requires_os_link def test_copy_file_hard_link(self): with open(self.source, 'w') as f: f.write('some content') st = os.stat(self.source) copy_file(self.source, self.target, link='hard') st2 = os.stat(self.source) st3 = os.stat(self.target) self.assertTrue(os.path.samestat(st, st2), (st, st2)) self.assertTrue(os.path.samestat(st2, st3), (st2, st3)) with open(self.source, 'r') as f: self.assertEqual(f.read(), 'some content') @requires_os_link def test_copy_file_hard_link_failure(self): # If hard linking fails, copy_file() falls back on copying file # (some special filesystems don't support hard linking even under # Unix, see issue #8876). with open(self.source, 'w') as f: f.write('some content') st = os.stat(self.source) def _os_link(*args): raise OSError(0, "linking unsupported") old_link = os.link os.link = _os_link try: copy_file(self.source, self.target, link='hard') finally: os.link = old_link st2 = os.stat(self.source) st3 = os.stat(self.target) self.assertTrue(os.path.samestat(st, st2), (st, st2)) self.assertFalse(os.path.samestat(st2, st3), (st2, st3)) for fn in (self.source, self.target): with open(fn, 'r') as f: self.assertEqual(f.read(), 'some content') def test_suite(): return unittest.makeSuite(FileUtilTestCase) if __name__ == "__main__": run_unittest(test_suite())
[+]
..
[-] test_install.py
[open]
[-] test_install_lib.py
[open]
[-] test_build_ext.pyc
[open]
[-] test_config_cmd.pyc
[open]
[-] test_versionpredicate.py
[open]
[-] test_archive_util.pyo
[open]
[-] test_dir_util.py
[open]
[-] test_build_ext.pyo
[open]
[-] test_spawn.pyc
[open]
[-] test_bdist_msi.py
[open]
[-] test_dir_util.pyc
[open]
[-] test_build_py.pyc
[open]
[-] test_util.pyc
[open]
[-] test_core.pyo
[open]
[-] test_upload.pyc
[open]
[-] test_sdist.py
[open]
[-] test_install_headers.py
[open]
[-] test_install_data.pyc
[open]
[-] test_version.pyo
[open]
[-] test_bdist_wininst.pyc
[open]
[-] test_sdist.pyo
[open]
[-] test_bdist_rpm.py
[open]
[-] test_ccompiler.pyo
[open]
[-] test_msvc9compiler.py
[open]
[-] test_install_headers.pyc
[open]
[-] test_install_lib.pyc
[open]
[-] test_bdist_rpm.pyo
[open]
[-] test_install_scripts.pyo
[open]
[-] setuptools_build_ext.pyc
[open]
[-] test_msvc9compiler.pyo
[open]
[-] test_build_py.py
[open]
[-] test_install.py.debug-build
[open]
[-] test_build_clib.pyo
[open]
[-] test_dep_util.pyc
[open]
[-] test_text_file.py
[open]
[-] test_install.pyc
[open]
[-] test_install_scripts.py
[open]
[-] setuptools_extension.py
[open]
[-] includetest.rst
[open]
[-] test_build_scripts.pyo
[open]
[-] test_bdist.pyc
[open]
[-] support.py
[open]
[-] test_build_clib.pyc
[open]
[-] test_file_util.pyo
[open]
[-] test_core.pyc
[open]
[-] test_register.pyo
[open]
[-] test_spawn.py
[open]
[-] __init__.pyc
[open]
[-] test_archive_util.pyc
[open]
[-] test_dist.pyo
[open]
[-] test_versionpredicate.pyc
[open]
[-] test_dist.py
[open]
[-] test_filelist.pyo
[open]
[-] test_install_data.pyo
[open]
[-] test_build_scripts.py
[open]
[-] test_dep_util.pyo
[open]
[-] test_filelist.pyc
[open]
[-] test_bdist.pyo
[open]
[-] test_check.pyc
[open]
[-] xxmodule.c
[open]
[-] test_bdist_wininst.py
[open]
[-] test_bdist_dumb.pyo
[open]
[-] test_sysconfig.py
[open]
[-] support.pyo
[open]
[-] test_sdist.pyc
[open]
[-] test_versionpredicate.pyo
[open]
[-] test_register.pyc
[open]
[-] test_build.pyo
[open]
[-] test_util.pyo
[open]
[-] test_version.pyc
[open]
[-] test_util.py
[open]
[-] setuptools_build_ext.py
[open]
[-] test_bdist.py
[open]
[-] test_build_py.pyo
[open]
[-] test_ccompiler.py
[open]
[-] test_sysconfig.pyc
[open]
[-] test_file_util.pyc
[open]
[-] test_file_util.py
[open]
[-] test_install_scripts.pyc
[open]
[-] test_cmd.pyo
[open]
[-] test_clean.pyc
[open]
[-] test_dep_util.py
[open]
[-] test_dir_util.pyo
[open]
[-] test_bdist_dumb.py
[open]
[-] test_config.pyc
[open]
[-] test_unixccompiler.pyo
[open]
[-] test_install.pyo
[open]
[-] test_config.pyo
[open]
[-] test_install_lib.pyo
[open]
[-] test_bdist_msi.pyo
[open]
[-] setuptools_extension.pyc
[open]
[-] test_check.pyo
[open]
[-] test_build_scripts.pyc
[open]
[-] test_config_cmd.py
[open]
[-] test_bdist_wininst.pyo
[open]
[-] test_unixccompiler.pyc
[open]
[-] test_dist.pyc
[open]
[-] Setup.sample
[open]
[-] test_bdist_rpm.pyc
[open]
[-] test_cmd.pyc
[open]
[-] test_archive_util.py
[open]
[-] test_upload.py
[open]
[-] test_bdist_dumb.pyc
[open]
[-] test_ccompiler.pyc
[open]
[-] test_core.py
[open]
[-] test_install_headers.pyo
[open]
[-] test_bdist_msi.pyc
[open]
[-] test_spawn.pyo
[open]
[-] __init__.py
[open]
[-] test_cmd.py
[open]
[-] test_unixccompiler.py
[open]
[-] test_build_ext.py
[open]
[-] test_text_file.pyo
[open]
[-] test_check.py
[open]
[-] test_config_cmd.pyo
[open]
[-] test_clean.py
[open]
[-] test_text_file.pyc
[open]
[-] test_msvc9compiler.pyc
[open]
[-] test_filelist.py
[open]
[-] test_register.py
[open]
[-] test_sysconfig.pyo
[open]
[-] test_install_data.py
[open]
[-] setuptools_extension.pyo
[open]
[-] test_upload.pyo
[open]
[-] test_build.py
[open]
[-] test_version.py
[open]
[-] test_build.pyc
[open]
[-] test_build_clib.py
[open]
[-] test_clean.pyo
[open]
[-] __init__.pyo
[open]
[-] test_config.py
[open]
[-] setuptools_build_ext.pyo
[open]
[-] support.pyc
[open]