def mkdir(self, dir_name, mode=PERM_DEF, dir_fd=None):
        """Create a leaf Fake directory.

        Args:
            dir_name: (str) Name of directory to create.
                Relative paths are assumed to be relative to '/'.
            mode: (int) Mode to create directory with.  This argument defaults
                to 0o777.  The umask is applied to this mode.
            dir_fd: If not `None`, the file descriptor of a directory,
                with `dir_name` being relative to this directory.
                New in Python 3.3.

        Raises:
            OSError: if the directory name is invalid or parent directory is
                read only or as per FakeFilesystem.add_object.
        """
        dir_name = self._path_with_dir_fd(dir_name, self.mkdir, dir_fd)
        try:
            self.filesystem.makedir(dir_name, mode)
        except IOError as e:
            if e.errno == errno.EACCES:
                self.filesystem.raise_os_error(e.errno, dir_name)
            raise
Create a leaf Fake directory.

        Args:
            dir_name: (str) Name of directory to create.
                Relative paths are assumed to be relative to '/'.
            mode: (int) Mode to create directory with.  This argument defaults
                to 0o777.  The umask is applied to this mode.
            dir_fd: If not `None`, the file descriptor of a directory,
                with `dir_name` being relative to this directory.
                New in Python 3.3.

        Raises:
            OSError: if the directory name is invalid or parent directory is
                read only or as per FakeFilesystem.add_object.