示例#1
0
 def test_10_isdir(self, mock_isdir):
     """Test FileUtil.isdir()"""
     mock_isdir.return_value = True
     status = udocker.FileUtil("somedir").isdir()
     self.assertTrue(status)
     mock_isdir.return_value = False
     status = udocker.FileUtil("somedir").isdir()
     self.assertFalse(status)
示例#2
0
 def test_15_copyto(self):
     """Test FileUtil.copyto() file copy"""
     with mock.patch(BUILTINS + '.open', mock.mock_open()):
         status = udocker.FileUtil("source").copyto("dest")
         self.assertTrue(status)
         status = udocker.FileUtil("source").copyto("dest", "w")
         self.assertTrue(status)
         status = udocker.FileUtil("source").copyto("dest", "a")
         self.assertTrue(status)
 def test_12_run_chdir_to_vol(self, mock_msg):
     """Test run change dir to volume"""
     # workdir cannot be set to a volume (regression of #51)
     if container_not_exists("busyRUN"):
         self.skipTest("no container")
     udocker_test_dir = "/tmp/UDOCKER.TEST"
     udocker.FileUtil(udocker_test_dir).mkdir()
     do_run(self, mock_msg, [
         UDOCKER, "run", "--workdir=/aaa/tmp/UDOCKER.TEST", "-v",
         "/tmp:/aaa/tmp", "busyRUN", "/bin/pwd"
     ], None, " /aaa/tmp/UDOCKER.TEST")
     udocker.FileUtil(udocker_test_dir).remove()
 def test_08_host_env(self, mock_msg):
     """Test binding of home dir"""
     if container_not_exists("busyRUN"):
         self.skipTest("no container")
     if not HOME:
         self.skipTest("no HOME dir")
     udocker_test_dir = HOME + "/UDOCKER.TEST"
     udocker.FileUtil(udocker_test_dir).mkdir()
     do_run(self, mock_msg, [
         UDOCKER, "run", "--bindhome", "busyRUN", "/bin/ls", "-d",
         udocker_test_dir
     ], None, "!ls:")
     udocker.FileUtil(udocker_test_dir).remove()
示例#5
0
 def test_08_verify_tar03(self, mock_isfile, mock_call, mock_msg):
     """Test FileUtil.verify_tar() check tar file"""
     mock_msg.level = 0
     mock_isfile.return_value = True
     mock_call.return_value = 1
     status = udocker.FileUtil("tarball.tar").verify_tar()
     self.assertFalse(status)
示例#6
0
 def test_01_init(self, mock_config):
     """Test FileUtil() constructor"""
     udocker.conf = mock_config
     futil = udocker.FileUtil("filename.txt")
     self.assertEqual(futil.filename, "filename.txt")
     self.assertTrue(udocker.conf.tmpdir)
     self.assertTrue(udocker.conf.def_topdir)
示例#7
0
 def test_02_mktmp(self):
     """Test FileUtil.mktmp()"""
     udocker.conf.tmpdir = "/somewhere"
     tmp_file = udocker.FileUtil("filename2.txt").mktmp()
     self.assertTrue(tmp_file.endswith("-filename2.txt"))
     self.assertTrue(tmp_file.startswith("/somewhere/udocker-"))
     self.assertGreater(len(tmp_file.strip()), 68)
示例#8
0
 def test_13_find_exec(self, mock_mktmp, mock_getdata, mock_remove,
                       mock_call):
     """Test FileUtil.find_exec() find executable"""
     mock_mktmp.return_value.mktmp.return_value = "/tmp/tmpfile"
     with mock.patch(BUILTINS + '.open', mock.mock_open()):
         # executable found
         mock_getdata.return_value = "/bin/executable"
         filename = udocker.FileUtil("executable").find_exec()
         self.assertEqual(filename, "/bin/executable")
         # executable not found
         mock_getdata.return_value = "not found"
         filename = udocker.FileUtil("executable").find_exec()
         self.assertEqual(filename, "")
         # executable not found
         mock_getdata.return_value = "xxxxx"
         filename = udocker.FileUtil("executable").find_exec()
         self.assertEqual(filename, "")
示例#9
0
 def test_14_find_inpath(self, mock_exists):
     """Test FileUtil.find_inpath() file is in a path"""
     # exist
     mock_exists.return_value = True
     filename = udocker.FileUtil("exec").find_inpath("/bin:/usr/bin")
     self.assertEqual(filename, "/bin/exec")
     # does not exist
     mock_exists.return_value = False
     filename = udocker.FileUtil("exec").find_inpath("/bin:/usr/bin")
     self.assertEqual(filename, "")
     # exist PATH=
     mock_exists.return_value = True
     filename = udocker.FileUtil("exec").find_inpath("PATH=/bin:/usr/bin")
     self.assertEqual(filename, "/bin/exec")
     # does not exist PATH=
     mock_exists.return_value = False
     filename = udocker.FileUtil("exec").find_inpath("PATH=/bin:/usr/bin")
     self.assertEqual(filename, "")
示例#10
0
 def test_05_remove_dir(self, mock_uid, mock_isfile, mock_islink,
                        mock_isdir, mock_call):
     """Test FileUtil.remove() with directories"""
     mock_uid.return_value = os.getuid()
     mock_isfile.return_value = False
     mock_islink.return_value = False
     mock_isdir.return_value = True
     mock_call.return_value = 0
     # remove directory under /tmp OK
     futil = udocker.FileUtil("/tmp/directory")
     futil.topdir = "/home/user/.udocker"
     futil.tmpdir = "/tmp"
     status = futil.remove()
     self.assertTrue(status)
     # remove directory under /tmp NOT OK
     mock_call.return_value = 1
     futil = udocker.FileUtil("/tmp/directory")
     futil.topdir = "/home/user/.udocker"
     futil.tmpdir = "/tmp"
     status = futil.remove()
     self.assertFalse(status)
示例#11
0
 def test_04_remove_file(self, mock_uid, mock_isfile, mock_islink,
                         mock_remove):
     """Test FileUtil.remove() with plain files"""
     mock_uid.return_value = os.getuid()
     mock_isfile.return_value = True
     # under /tmp
     futil = udocker.FileUtil("/tmp/filename4.txt")
     futil.topdir = "/home/user/.udocker"
     futil.tmpdir = "/tmp"
     status = futil.remove()
     self.assertTrue(status)
     # under user home
     futil = udocker.FileUtil("/home/user/.udocker/filename4.txt")
     futil.topdir = "/home/user/.udocker"
     futil.tmpdir = "/tmp"
     status = futil.remove()
     self.assertTrue(status)
     # outside of scope 1
     futil = udocker.FileUtil("/etc/filename4.txt")
     futil.topdir = "/home/user/.udocker"
     futil.tmpdir = "/tmp"
     status = futil.remove()
     self.assertFalse(status)
示例#12
0
 def test_12_getdata(self):
     """Test FileUtil.size() get file content"""
     with mock.patch(BUILTINS + '.open',
                     mock.mock_open(read_data='qwerty')):
         data = udocker.FileUtil("somefile").getdata()
         self.assertEqual(data, 'qwerty')
示例#13
0
 def test_03_uid(self, mock_stat):
     """Test FileUtil.uid()"""
     mock_stat.return_value.st_uid = 1234
     uid = udocker.FileUtil("filename3.txt").uid()
     self.assertEqual(uid, 1234)
 def tearDown(self):
     """Cleanup test"""
     udocker.FileUtil().cleanup()
 def tearDownClass(cls):
     """Cleanup class"""
     do_action([UDOCKER, "rm", "busyTMP"])
     do_action([UDOCKER, "rm", "busyRUN"])
     do_action([UDOCKER, "rm", "busyTEST"])
     udocker.FileUtil().cleanup()
 def tearDownClass(cls):
     """Cleanup class"""
     do_action([UDOCKER, "rmi", "busybox:latest"])
     do_action([UDOCKER, "rm", "busyNAME"])
     do_action([UDOCKER, "rm", "busyTEST"])
     udocker.FileUtil().cleanup()
 def tearDownClass(cls):
     """Cleanup test"""
     udocker.FileUtil().cleanup()
示例#18
0
 def test_11_size(self, mock_stat):
     """Test FileUtil.size() get file size"""
     mock_stat.return_value.st_size = 4321
     size = udocker.FileUtil("somefile").size()
     self.assertEqual(size, 4321)
示例#19
0
 def test_09_cleanup(self, mock_remove, mock_config):
     """Test FileUtil.cleanup() delete tmp files"""
     udocker.conf = mock_config
     udocker.conf.tmptrash = {'file1.txt': None, 'file2.txt': None}
     udocker.FileUtil("").cleanup()
     self.assertEqual(mock_remove.call_count, 2)