def f(c, a, b): data = yield _scatter((c.ip, c.port), [1, 2, 3]) assert c.ip in str(data[0]) assert c.ip in repr(data[0]) assert merge(a.data, b.data) == \ {d.key: i for d, i in zip(data, [1, 2, 3])} assert set(c.who_has) == {d.key for d in data} assert all(len(v) == 1 for v in c.who_has.values()) result = yield [d._get() for d in data] assert result == [1, 2, 3] yield data[0]._delete() assert merge(a.data, b.data) == \ {d.key: i for d, i in zip(data[1:], [2, 3])} assert data[0].key not in c.who_has data = yield scatter_to_workers((c.ip, c.port), [a.address, b.address], [4, 5, 6]) m = merge(a.data, b.data) for d, v in zip(data, [4, 5, 6]): assert m[d.key] == v result = yield _gather((c.ip, c.port), data) assert result == [4, 5, 6]
def f(c, a, b): keys = yield _scatter((c.ip, c.port), [1, 2, 3]) assert merge(a.data, b.data) == \ {k: i for k, i in zip(keys, [1, 2, 3])} assert set(c.who_has) == set(keys) assert all(len(v) == 1 for v in c.who_has.values()) keys2, who_has, nbytes = yield scatter_to_workers([a.address, b.address], [4, 5, 6]) m = merge(a.data, b.data) for k, v in zip(keys2, [4, 5, 6]): assert m[k] == v assert isinstance(who_has, dict) assert set(concat(who_has.values())) == {a.address, b.address} assert len(who_has) == len(keys2) assert isinstance(nbytes, dict) assert set(nbytes) == set(who_has) assert all(isinstance(v, int) for v in nbytes.values()) result = yield _gather((c.ip, c.port), keys2) assert result == [4, 5, 6]
def f(c, a, b): data = yield _scatter((c.ip, c.port), [1, 2, 3]) assert set(a.data.values()) | set(b.data.values()) == {1, 2, 3} yield _delete((c.ip, c.port), [data[0]]) assert set(a.data.values()) | set(b.data.values()) == {2, 3} yield _clear((c.ip, c.port)) assert not a.data and not b.data
def f(c, a, b): import gc; gc.collect() RemoteData.trash[(c.ip, c.port)].clear() remote = yield _scatter((c.ip, c.port), [1, 2, 3]) keys = [r.key for r in remote] assert set(keys) == set(a.data) | set(b.data) for r in remote: r.__del__() assert RemoteData.trash[(c.ip, c.port)] == set(keys) n = yield RemoteData._garbage_collect(c.ip, c.port) assert set() == set(a.data) | set(b.data) assert n == len(keys)
def f(c, a, b): data = yield _scatter((c.ip, c.port), [1, 2, 3]) assert c.ip in str(data[0]) assert c.ip in repr(data[0]) assert merge(a.data, b.data) == {d.key: i for d, i in zip(data, [1, 2, 3])} assert set(c.who_has) == {d.key for d in data} assert all(len(v) == 1 for v in c.who_has.values()) result = yield [d._get() for d in data] assert result == [1, 2, 3] yield data[0]._delete() assert merge(a.data, b.data) == {d.key: i for d, i in zip(data[1:], [2, 3])} assert data[0].key not in c.who_has data, who_has, nbytes = yield scatter_to_workers((c.ip, c.port), [a.address, b.address], [4, 5, 6]) m = merge(a.data, b.data) for d, v in zip(data, [4, 5, 6]): assert m[d.key] == v assert isinstance(who_has, dict) assert set(concat(who_has.values())) == {a.address, b.address} assert len(who_has) == len(data) assert isinstance(nbytes, dict) assert set(nbytes) == set(who_has) assert all(isinstance(v, int) for v in nbytes.values()) result = yield _gather((c.ip, c.port), data) assert result == [4, 5, 6]
def f(c, a, b): for i in range(10): yield _scatter((c.ip, c.port), [i]) assert a.data assert b.data