diff --git a/changelog/471.bugfix b/changelog/471.bugfix new file mode 100644 index 0000000..7fea804 --- /dev/null +++ b/changelog/471.bugfix @@ -0,0 +1 @@ +Fix issue with Rsync reporting in quiet mode. diff --git a/src/xdist/workermanage.py b/src/xdist/workermanage.py index 3ff8c2f..dfcb59b 100644 --- a/src/xdist/workermanage.py +++ b/src/xdist/workermanage.py @@ -122,7 +122,7 @@ class NodeManager: return { "ignores": ignores, - "verbose": getattr(self.config.option, "verbose", False), + "verbose": getattr(self.config.option, "verbose", 0), } def rsync(self, gateway, source, notify=None, verbose=False, ignores=None): @@ -181,7 +181,7 @@ class HostRSync(execnet.RSync): super().add_target(gateway, remotepath, finishedcallback=finished, delete=True) def _report_send_file(self, gateway, modified_rel_path): - if self._verbose: + if self._verbose > 0: path = os.path.basename(self._sourcedir) + "/" + modified_rel_path remotepath = gateway.spec.chdir print("{}:{} <= {}".format(gateway.spec, remotepath, path)) diff --git a/testing/test_slavemanage.py b/testing/test_workermanage.py similarity index 92% rename from testing/test_slavemanage.py rename to testing/test_workermanage.py index f8abcca..3cf19a8 100644 --- a/testing/test_slavemanage.py +++ b/testing/test_workermanage.py @@ -196,6 +196,25 @@ class TestNodeManager: assert dest.join("dir1", "dir2", "hello").check() nodemanager.teardown_nodes() + @pytest.mark.parametrize( + "flag, expects_report", [("-q", False), ("", False), ("-v", True)] + ) + def test_rsync_report( + self, testdir, mysetup, workercontroller, capsys, flag, expects_report + ): + source, dest = mysetup.source, mysetup.dest + dir1 = mysetup.source.mkdir("dir1") + args = "--tx", "popen//chdir=%s" % dest, "--rsyncdir", dir1, source + if flag: + args += (flag,) + nodemanager = NodeManager(testdir.parseconfig(*args)) + nodemanager.setup_nodes(None) # calls .rsync_roots() + out, _ = capsys.readouterr() + if expects_report: + assert "<= pytest/__init__.py" in out + else: + assert "<= pytest/__init__.py" not in out + def test_init_rsync_roots(self, testdir, mysetup, workercontroller): source, dest = mysetup.source, mysetup.dest dir2 = source.ensure("dir1", "dir2", dir=1)