I just realized, that I can simplify `mktemp` by directly returning the `tempfile._TemporaryFileWrapper`'s buffer, which can be used in a file context for open and closing without deleting the superordinate `_TemporaryFileWrapper`:


    def mktemp(self, mode='w+b', encoding=None, suffix=''):
        """Creates and registers a named temporary
        file and returns the file object.
        """
        return self.enter_context(NamedTemporaryFile(
            mode=mode, encoding=encoding, suffix=suffix, prefix=self.prefix,
            dir=self.root)).file

**Update**  
With the change above, the returned buffer does not behave as expected regarding its attribute `name`.
To fix that, I introduced a wrapper class:

    class NamedFile:
        """Wraps a file buffer and its associated name."""

        def __init__(self, file, name):
            """Sets buffer and name."""
            self.file = file
            self.name = name

        def __enter__(self):
            self.file.__enter__()
            return self

        def __exit__(self, typ, value, traceback):
            return self.file.__exit__(typ, value, traceback)

        @classmethod
        def from_ntf(cls, named_temporary_file):
            """Creates a named file from the specified NamedTemporaryFile."""
            return cls(named_temporary_file.file, named_temporary_file.name)

        @property
        def seek(self):
            """Delegates seeking to the buffer."""
            return self.file.seek

        @property
        def read(self):
            """Delegates reading to the buffer."""
            return self.file.read

        @property
        def write(self):
            """Delegates writing to the buffer."""
            return self.file.write

And return it instead of the raw buffer accordingly:

    def mktemp(self, mode='w+b', encoding=None, suffix=''):
        """Creates and registers a named temporary
        file and returns the file object.
        """
        return NamedFile.from_ntf(self.enter_context(NamedTemporaryFile(
            mode=mode, encoding=encoding, suffix=suffix, prefix=self.prefix,
            dir=self.root)))