I have a memory of someone mentioning something related, but I'm without internet and not finding it in anything local, so writing this here.

This is what the fixture code looks like in part:

    def dir_fixture(self, srcdir, dstdir=None):
        """Copies the contents of the specified folder srcdir from
        the directory of the called  script, to the current
        working directory.

        The srcdir name may be a list, in which case the elements are
        concatenated with the os.path.join() method.  The dstdir is
        assumed to be under the temporary working directory, it gets
        created automatically, if it does not already exist.
        """

        if srcdir and self.fixture_dirs and not os.path.isabs(srcdir):
            for dir in self.fixture_dirs:
                spath = os.path.join(dir, srcdir)
                if os.path.isdir(spath):
                    break
        else:
            spath = srcdir


Comment #1: the comment about srcdir able to be a list seems bogus, there's nothing to handle that (trying to join a str and a list of str will just give a TypeError). Not sure if this was intended to work as documented?

Comment #2: if all of the joined paths in the loop are found not to exist, and thus we don't break out with a valid spath, then we fall off the end of the loop and leave spath set to the last (and invalid) joined path. This is easy to fix. file_fixture has the same logic, btw.

There's no mention of fixtures in the test-harness tests - I know this comment was on Discord recently (with no network, I'm just looking at a black screen there) - so this doesn't get a shakedown.



_______________________________________________
Scons-dev mailing list
Scons-dev@scons.org
https://pairlist2.pair.net/mailman/listinfo/scons-dev

Reply via email to