Unit tests for os.scandir/scantree a directory
General


You use what seems to be a non-standard docstring style. That's fine, but it's actually quite close to the RST / Sphinx syntax. An overview of the various styles can be found here. It's a good idea to pick one you like and stick to it, or to simply enforce your own style, but mixing styles will certainly result in confusion. 'Why is this RST not being interpreted correctly?!' or 'Why does this perfectly readable docstring have random pieces of RST syntax thrown in?'
These two lines:

if not path:
    path = self.path


Should be a red flag. Let's get this straight. There's a path associated with self, and a custom path can be passed as a parameter to the method. This means that map_directory() should either be @staticmethod'ed, or self.path should not exist. Without context, there's no way of telling which is the right solution, but this is clearly wrong.
When you raise the exception (by the way, BullShitError, really?) you tell the developer what went wrong (good) but don't give them a list of valid options (bad). Not everyone is going to read through the documentation immediately when they get an exception. To a reasonable extent, exception messages should tell the developer exactly what to do to prevent the exception in the future.


Questions


Barely. The only thing I don't think is worth testing is whether the return type is a generator. The other tests look sane and useful, so keep them.
In a controlled testing environment, you might as well have a tuple of the entries and check if the method call matches the expected results. 
That's impossible to tell if you don't show us what self.scan_tree() actually does.