diff --git a/agkyra/test.py b/agkyra/test.py index cd7f4e89d1e110b0e3978f3699cf5a92f6e32735..9398b1d596dbd19dd078bb9a2fee3fff4cd18a9d 100644 --- a/agkyra/test.py +++ b/agkyra/test.py @@ -197,3 +197,68 @@ print m assert isinstance(m, messaging.AckSyncMessage) assert s.get_next_message() is None +s.stop_notifiers() + +######################################## + +# Check sym links +ln1 = "f1.link" +ln1_path = os.path.join(LOCAL_ROOT_PATH, ln1) +os.symlink(f1_path, ln1_path) +s.probe_file(s.SLAVE, ln1) +state = db.get_state(slave.SIGNATURE, ln1) +assert state.serial == 0 +assert state.info == {"localfs_type": "unhandled"} + +m = s.get_next_message(block=True) +print m +assert isinstance(m, messaging.UpdateMessage) + +s.decide_file_sync(ln1) + +m = s.get_next_message(block=True) +print m +assert isinstance(m, messaging.SyncMessage) + +m = s.get_next_message(block=True) +print m +assert isinstance(m, messaging.AckSyncMessage) + +# Put file upstream to cause conflict +upstream_ln1_content = "regular" +r1 = pithos.upload_from_string( + ln1, upstream_ln1_content) +s.probe_file(s.MASTER, ln1) +s.probe_file(s.SLAVE, ln1) +m = s.get_next_message(block=True) +print m +assert isinstance(m, messaging.UpdateMessage) + +s.decide_file_sync(ln1) + +m = s.get_next_message(block=True) +print m +assert isinstance(m, messaging.SyncMessage) + +m = s.get_next_message(block=True) +print m +assert isinstance(m, messaging.ConflictStashMessage) +stashed_ln1 = m.stash_name + +m = s.get_next_message(block=True) +print m +assert isinstance(m, messaging.AckSyncMessage) + +assert s.get_next_message() is None + +s.probe_file(s.SLAVE, stashed_ln1) +m = s.get_next_message(block=True) +print m +assert isinstance(m, messaging.UpdateMessage) +assert m.objname == stashed_ln1 + +state = db.get_state(slave.SIGNATURE, stashed_ln1) +assert state.serial == 0 +assert state.info == {"localfs_type": "unhandled"} + +print "FINISHED"