"""Submit coverage totals for a bii project to coveralls."""

import errno

import os

from contextlib import contextmanager


@contextmanager
def _bii_deps_in_place(cont):
    """Move bii project dependencies into layout.

    The coverage step may require these dependencies to be present.
    """
    bii_dir = os.path.join(cont.named_cache_dir("cmake-build"), "bii")
    try:
        os.rename(bii_dir, os.path.join(os.getcwd(), "bii"))
    except OSError as error:
        if error.errno != errno.ENOENT:
            raise error


def run(cont, util, shell, argv=None):
    """Submit coverage total to coveralls, with bii specific preparation."""
    with _bii_deps_in_place(cont):
        util.fetch_and_import("coverage/cmake/coverage.py").run(cont,
                                                                util,
                                                                shell,
                                                                argv)

"""Submit coverage totals for a bii project to coveralls."""

import errno

import os

from contextlib import contextmanager


def _move_ignore_enoent(src, dst):
    """Move src to dst, ignoring ENOENT."""
    try:
        os.rename(src, dst)
    except OSError as error:
        if error.errno != errno.ENOENT:
            raise error


@contextmanager
def _bii_deps_in_place(cont):
    """Move bii project dependencies into layout.

    The coverage step may require these dependencies to be present.
    """
    bii_dir = os.path.join(cont.named_cache_dir("cmake-build"), "bii")
    _move_ignore_enoent(bii_dir, os.path.join(os.getcwd(), "bii"))

    try:
        yield
    finally:
        _move_ignore_enoent(os.path.join(os.getcwd(), "bii"), bii_dir)


def run(cont, util, shell, argv=None):
    """Submit coverage total to coveralls, with bii specific preparation."""
    with _bii_deps_in_place(cont):
        util.fetch_and_import("coverage/cmake/coverage.py").run(cont,
                                                                util,
                                                                shell,
                                                                argv)

Make _bii_deps_in_place actually behave like a context manager
bii: Make _bii_deps_in_place actually behave like a context manager

  """Submit coverage totals for a bii project to coveralls."""
  
  import errno
  
  import os
  
  from contextlib import contextmanager
  
  
+ def _move_ignore_enoent(src, dst):
+     """Move src to dst, ignoring ENOENT."""
+     try:
+         os.rename(src, dst)
+     except OSError as error:
+         if error.errno != errno.ENOENT:
+             raise error
+ 
+ 
  @contextmanager
  def _bii_deps_in_place(cont):
      """Move bii project dependencies into layout.
  
      The coverage step may require these dependencies to be present.
      """
      bii_dir = os.path.join(cont.named_cache_dir("cmake-build"), "bii")
+     _move_ignore_enoent(bii_dir, os.path.join(os.getcwd(), "bii"))
+ 
      try:
+         yield
+     finally:
+         _move_ignore_enoent(os.path.join(os.getcwd(), "bii"), bii_dir)
-         os.rename(bii_dir, os.path.join(os.getcwd(), "bii"))
-     except OSError as error:
-         if error.errno != errno.ENOENT:
-             raise error
  
  
  def run(cont, util, shell, argv=None):
      """Submit coverage total to coveralls, with bii specific preparation."""
      with _bii_deps_in_place(cont):
          util.fetch_and_import("coverage/cmake/coverage.py").run(cont,
                                                                  util,
                                                                  shell,
                                                                  argv)
  
Make _bii_deps_in_place actually behave like a context manager
## Code Before:
"""Submit coverage totals for a bii project to coveralls."""

import errno

import os

from contextlib import contextmanager


@contextmanager
def _bii_deps_in_place(cont):
    """Move bii project dependencies into layout.

    The coverage step may require these dependencies to be present.
    """
    bii_dir = os.path.join(cont.named_cache_dir("cmake-build"), "bii")
    try:
        os.rename(bii_dir, os.path.join(os.getcwd(), "bii"))
    except OSError as error:
        if error.errno != errno.ENOENT:
            raise error


def run(cont, util, shell, argv=None):
    """Submit coverage total to coveralls, with bii specific preparation."""
    with _bii_deps_in_place(cont):
        util.fetch_and_import("coverage/cmake/coverage.py").run(cont,
                                                                util,
                                                                shell,
                                                                argv)

## Instruction:
Make _bii_deps_in_place actually behave like a context manager
## Code After:
"""Submit coverage totals for a bii project to coveralls."""

import errno

import os

from contextlib import contextmanager


def _move_ignore_enoent(src, dst):
    """Move src to dst, ignoring ENOENT."""
    try:
        os.rename(src, dst)
    except OSError as error:
        if error.errno != errno.ENOENT:
            raise error


@contextmanager
def _bii_deps_in_place(cont):
    """Move bii project dependencies into layout.

    The coverage step may require these dependencies to be present.
    """
    bii_dir = os.path.join(cont.named_cache_dir("cmake-build"), "bii")
    _move_ignore_enoent(bii_dir, os.path.join(os.getcwd(), "bii"))

    try:
        yield
    finally:
        _move_ignore_enoent(os.path.join(os.getcwd(), "bii"), bii_dir)


def run(cont, util, shell, argv=None):
    """Submit coverage total to coveralls, with bii specific preparation."""
    with _bii_deps_in_place(cont):
        util.fetch_and_import("coverage/cmake/coverage.py").run(cont,
                                                                util,
                                                                shell,
                                                                argv)
