#!/usr/bin/env python
-
-from nepi.util.sshfuncs import rexec, rcopy, rspawn, rcheckpid, rstatus, rkill,\
- RUNNING, FINISHED
+#
+# NEPI, a framework to manage network experiments
+# Copyright (C) 2013 INRIA
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation;
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# Author: Alina Quereilhac <alina.quereilhac@inria.fr>
+
+
+from nepi.util.sshfuncs import rexec, rcopy, rspawn, rgetpid, rstatus, rkill,\
+ ProcStatus
import getpass
import unittest
self.assertEquals(outlocal, outremote)
- def test_rcopy(self):
+ def test_rcopy_list(self):
env = test_environment()
user = getpass.getuser()
host = "localhost"
self.assertEquals(sorted(origfiles), sorted(files))
+ os.remove(f1.name)
+ shutil.rmtree(dirpath)
+
+ def test_rcopy_list(self):
+ env = test_environment()
+ user = getpass.getuser()
+ host = "localhost"
+
+ # create some temp files and directories to copy
+ dirpath = tempfile.mkdtemp()
+ f = tempfile.NamedTemporaryFile(dir=dirpath, delete=False)
+ f.close()
+
+ f1 = tempfile.NamedTemporaryFile(delete=False)
+ f1.close()
+ f1.name
+
+ # Copy a list of files
+ source = [dirpath, f1.name]
+ destdir = tempfile.mkdtemp()
+ dest = "%s@%s:%s" % (user, host, destdir)
+ ((out, err), proc) = rcopy(source, dest, port = env.port, agent = True, recursive = True)
+
+ files = []
+ def recls(files, dirname, names):
+ files.extend(names)
+ os.path.walk(destdir, recls, files)
+
+ origfiles = map(lambda s: os.path.basename(s), [dirpath, f.name, f1.name])
+
+ self.assertEquals(sorted(origfiles), sorted(files))
+
def test_rproc_manage(self):
env = test_environment()
user = getpass.getuser()
time.sleep(2)
- (pid, ppid) = rcheckpid(pidfile,
+ (pid, ppid) = rgetpid(pidfile,
host = host,
user = user,
port = env.port,
port = env.port,
agent = True)
- self.assertEquals(status, RUNNING)
+ self.assertEquals(status, ProcStatus.RUNNING)
rkill(pid, ppid,
host = host,
port = env.port,
agent = True)
- self.assertEquals(status, FINISHED)
+ self.assertEquals(status, ProcStatus.FINISHED)
if __name__ == '__main__':