@@ -1543,3 +1543,37 @@ def test_get_xdist_worker_id(self, fake_request) -> None:
1543
1543
assert xdist .get_xdist_worker_id (fake_request ) == "gw5"
1544
1544
del fake_request .config .workerinput
1545
1545
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