def METHOD_NAME(self):
    # This case is a "success" for the sandbox (it's the user's fault),
    # but compilation is unsuccessful (no executable).
    expected_stats = get_stats(
        0.1, 0.5, 1000 * 1024, Sandbox.EXIT_TIMEOUT,
        stdout="o", stderr="e")
    with patch("cms.grading.steps.compilation.generic_step",
               return_value=expected_stats):
        success, compilation_success, text, stats = compilation_step(
            self.sandbox, ONE_COMMAND)
    # User's fault, no error needs to be logged.
    self.assertLoggedError(False)
    self.assertTrue(success)
    self.assertFalse(compilation_success)
    self.assertEqual(text, [COMPILATION_MESSAGES.get("timeout").message])
    self.assertEqual(stats, expected_stats)