code: def test_release_move_from_failing_to_consisently_failing():
      test = Test(name="test", team="ci", stable=False)
      test[Test.KEY_BISECT_BUILD_NUMBER] = 1
      test.test_results = [
          TestResult.from_result(
              Result(status=ResultStatus.ERROR.value)
          ),
      ]
      sm = ReleaseTestStateMachine(test)
      sm.move()
      assert test.get_state() == TestState.FAILING
      test[Test.KEY_BISECT_BLAMED_COMMIT] = "1234567890"
      sm = ReleaseTestStateMachine(test)
      sm.move()
      sm.comment_blamed_commit_on_github_issue()
      issue = MockIssueDB.issue_db[
          test.get(Test.KEY_GITHUB_ISSUE_NUMBER)
      ]
      assert test.get_state() == TestState.CONSITENTLY_FAILING
      assert "Blamed commit: 1234567890" in issue.comments[0]
      labels = [label.name for label in issue.get_labels()]
      assert "ci" in labels
      assert "unstable-release-test" in labels
  
imports: import sys
  from typing import List, Optional
  import pytest
  from ray_release.test import Test, TestResult, TestState
  from ray_release.result import Result, ResultStatus
  from ray_release.test_automation.release_state_machine import ReleaseTestStateMachine
  from ray_release.test_automation.ci_state_machine import CITestStateMachine, CONTINUOUS_FAILURE_TO_FLAKY, CONTINUOUS_PASSING_TO_PASSING, FAILING_TO_FLAKY_MESSAGE, JAILED_TAG, JAILED_MESSAGE
  from ray_release.test_automation.state_machine import TestStateMachine
label_desc: Use image node_id 4 for calling a global function with example usage: test_release_move_from_failing_to_consisently_failing() without return types