def test_lock_persistent_graph_locked(self): """Error raised when when object is locked.""" code = "0000" context = Context(config=self.persist_graph_config) context._s3_bucket_verified = True context._persistent_graph = Graph() stubber = Stubber(context.s3_conn) expected_params = { "Tagging": { "TagSet": gen_tagset({context._persistent_graph_lock_tag: code}) } } expected_params.update(context.persistent_graph_location) stubber.add_response( "get_object_tagging", { "TagSet": gen_tagset( {context._persistent_graph_lock_tag: "1111"}) }, context.persistent_graph_location, ) with stubber: with self.assertRaises(PersistentGraphLocked): context.lock_persistent_graph(code) stubber.assert_no_pending_responses()
def test_lock_persistent_graph_no_object(self): """Error raised when when there is no object to lock.""" code = "0000" context = Context(config=self.persist_graph_config) context._s3_bucket_verified = True context._persistent_graph = Graph() stubber = Stubber(context.s3_conn) expected_params = { "Tagging": { "TagSet": gen_tagset({context._persistent_graph_lock_tag: code}) } } expected_params.update(context.persistent_graph_location) stubber.add_client_error( "get_object_tagging", "NoSuchKey", expected_params=context.persistent_graph_location, ) stubber.add_client_error("put_object_tagging", "NoSuchKey", expected_params=expected_params) with stubber: with self.assertRaises(PersistentGraphCannotLock): context.lock_persistent_graph(code) stubber.assert_no_pending_responses()
def test_lock_persistent_graph(self): """Return 'None' when lock is successful.""" code = "0000" context = Context(config=self.persist_graph_config) context._s3_bucket_verified = True context._persistent_graph = Graph() stubber = Stubber(context.s3_conn) expected_params = { "Tagging": { "TagSet": gen_tagset({context._persistent_graph_lock_tag: code}) } } expected_params.update(context.persistent_graph_location) stubber.add_response("get_object_tagging", {"TagSet": []}, context.persistent_graph_location) stubber.add_response("put_object_tagging", {}, expected_params) with stubber: self.assertIsNone(context.lock_persistent_graph(code)) stubber.assert_no_pending_responses()