@@ -1543,3 +1543,37 @@ def test_get_xdist_worker_id(self, fake_request) -> None:
15431543 assert xdist .get_xdist_worker_id (fake_request ) == "gw5"
15441544 del fake_request .config .workerinput
15451545 assert xdist .get_xdist_worker_id (fake_request ) == "master"
1546+
1547+
1548+ class TestSharedData :
1549+ def test_shared_data_two_nodes (self , pytester : pytest .Pytester ) -> None :
1550+ pytester .makepyfile (
1551+ """
1552+ def test_shared1(add_shared_data):
1553+ add_shared_data("test","value2")
1554+ assert 1
1555+ def test_shared2(add_shared_data):
1556+ add_shared_data("test","value1")
1557+ assert 1
1558+
1559+ """
1560+ )
1561+ pytester .makeconftest (
1562+ """
1563+ from xdist.plugin import get_shared_data
1564+ def pytest_sessionfinish(session):
1565+ data, master = get_shared_data(session)
1566+ if master:
1567+ with open('shared_data', 'w') as f:
1568+ for key, values in data.items():
1569+ for value in values:
1570+ f.write('data[%s] = %s\\ n' % (key,value))
1571+ """
1572+ )
1573+ result = pytester .inline_run ("-x" , "-v" , "-n2" )
1574+ assert result .ret == 0
1575+ collected_file = pytester .path / "shared_data"
1576+ assert collected_file .is_file ()
1577+ collected_text = collected_file .read_text ()
1578+ assert "data[test] = value2" in collected_text
1579+ assert "data[test] = value1" in collected_text
0 commit comments