Example #1
0
    def test_popens_rsync(self, config, mysetup, slavecontroller):
        source = mysetup.source
        hm = NodeManager(config, ["popen"] * 2)
        hm.setup_nodes(None)
        assert len(hm.group) == 2
        for gw in hm.group:

            class pseudoexec:
                args = []

                def __init__(self, *args):
                    self.args.extend(args)

                def waitclose(self):
                    pass

            gw.remote_exec = pseudoexec
        notifications = []
        for gw in hm.group:
            hm.rsync(gw,
                     source,
                     notify=lambda *args: notifications.append(args))
        assert not notifications
        hm.teardown_nodes()
        assert not len(hm.group)
        assert "sys.path.insert" in gw.remote_exec.args[0]
Example #2
0
 def test_rsync_same_popen_twice(self, config, mysetup, hookrecorder):
     source, dest = mysetup.source, mysetup.dest
     hm = NodeManager(config, ["popen//chdir=%s" %dest] * 2)
     hm.makegateways()
     source.ensure("dir1", "dir2", "hello")
     hm.rsync(source)
     call = hookrecorder.popcall("pytest_xdist_rsyncstart")
     assert call.source == source
     assert len(call.gateways) == 1
     assert call.gateways[0] in hm.group
     call = hookrecorder.popcall("pytest_xdist_rsyncfinish")
Example #3
0
 def test_rsync_same_popen_twice(self, config, mysetup, hookrecorder,
                                 slavecontroller):
     source, dest = mysetup.source, mysetup.dest
     hm = NodeManager(config, ["popen//chdir=%s" % dest] * 2)
     hm.roots = []
     hm.setup_nodes(None)
     source.ensure("dir1", "dir2", "hello")
     gw = hm.group[0]
     hm.rsync(gw, source)
     call = hookrecorder.popcall("pytest_xdist_rsyncstart")
     assert call.source == source
     assert len(call.gateways) == 1
     assert call.gateways[0] in hm.group
     call = hookrecorder.popcall("pytest_xdist_rsyncfinish")
Example #4
0
 def test_rsync_same_popen_twice(self, config, mysetup, hookrecorder,
                                 slavecontroller):
     source, dest = mysetup.source, mysetup.dest
     hm = NodeManager(config, ["popen//chdir=%s" % dest] * 2)
     hm.roots = []
     hm.setup_nodes(None)
     source.ensure("dir1", "dir2", "hello")
     gw = hm.group[0]
     hm.rsync(gw, source)
     call = hookrecorder.popcall("pytest_xdist_rsyncstart")
     assert call.source == source
     assert len(call.gateways) == 1
     assert call.gateways[0] in hm.group
     call = hookrecorder.popcall("pytest_xdist_rsyncfinish")
Example #5
0
 def test_rsync_popen_with_path(self, config, mysetup):
     source, dest = mysetup.source, mysetup.dest
     hm = NodeManager(config, ["popen//chdir=%s" %dest] * 1)
     hm.makegateways()
     source.ensure("dir1", "dir2", "hello")
     l = []
     hm.rsync(source, notify=lambda *args: l.append(args))
     assert len(l) == 1
     assert l[0] == ("rsyncrootready", hm.group['gw0'].spec, source)
     hm.teardown_nodes()
     dest = dest.join(source.basename)
     assert dest.join("dir1").check()
     assert dest.join("dir1", "dir2").check()
     assert dest.join("dir1", "dir2", 'hello').check()
Example #6
0
 def test_rsync_popen_with_path(self, config, mysetup, slavecontroller):
     source, dest = mysetup.source, mysetup.dest
     hm = NodeManager(config, ["popen//chdir=%s" % dest] * 1)
     hm.setup_nodes(None)
     source.ensure("dir1", "dir2", "hello")
     l = []
     for gw in hm.group:
         hm.rsync(gw, source, notify=lambda *args: l.append(args))
     assert len(l) == 1
     assert l[0] == ("rsyncrootready", hm.group['gw0'].spec, source)
     hm.teardown_nodes()
     dest = dest.join(source.basename)
     assert dest.join("dir1").check()
     assert dest.join("dir1", "dir2").check()
     assert dest.join("dir1", "dir2", 'hello').check()
Example #7
0
 def test_popens_rsync(self, config, mysetup):
     source = mysetup.source
     hm = NodeManager(config, ["popen"] * 2)
     hm.makegateways()
     assert len(hm.group) == 2
     for gw in hm.group:
         class pseudoexec:
             args = []
             def __init__(self, *args):
                 self.args.extend(args)
             def waitclose(self):
                 pass
         gw.remote_exec = pseudoexec
     l = []
     hm.rsync(source, notify=lambda *args: l.append(args))
     assert not l
     hm.teardown_nodes()
     assert not len(hm.group)
     assert "sys.path.insert" in gw.remote_exec.args[0]