def merge(cls, X, Y): assert X.user_key == Y.user_key, "User keys do not match" assert X.user_key is not None, "user_key must be set" following = LWWSet.merge(X.following, Y.following) followers = LWWSet.merge(X.following, Y.following) new = cls() new.user_key = X.user_key new.following = following new.followers = followers return new
def test_lwwset(): A = LWWSet() fake_time = 1 def mock_time(): return fake_time old_time = sets.time sets.time = mock_time A.add("eric") B = A.clone() C = A.clone() # Test that concurrent updates favor add fake_time = 2 B.add("eric") C.remove("eric") D = LWWSet.merge(B, C) assert D.value == set(["eric"]) sets.time = old_time