def test_honor_build_dir_parameter(self): source = os.path.join(samurai_sys.top_dir, "b", "c") mkdir_p(source) build_dir = os.path.join(samurai_sys.top_dir, "custom_build") answer = os.path.join(build_dir, "b", "c") self.assertEqual(samurai_sys.get_default_build_dir_for(source, a_build_dir=build_dir), answer) self.assertEqual(samurai_sys.get_default_build_dir_for(PathLib(source), a_build_dir=build_dir), PathLib(answer))
def __init__(self, manifest, build_dir=None): manifest = Path(manifest) if manifest.is_dir(): manifest /= samurai_sys.default_manifest if build_dir is None: build_dir = get_default_build_dir_for(manifest) super().__init__(manifest, build_dir)
def __init__(self, source_dir, build_dir=None, **kwds): source_dir = Path(source_dir) if not source_dir.is_dir(): raise ValueError("source_dir '%s' is not a directory" .format(source_dir)) if build_dir is None: build_dir = get_default_build_dir_for(source_dir) super().__init__(build_dir=build_dir, **kwds) self._source_dir = source_dir
def test_source_is_dir(self): source = os.path.join(samurai_sys.top_dir, "b", "c") mkdir_p(source) answer = os.path.join(samurai_sys.build_dir, "b", "c") self.assertEqual(samurai_sys.get_default_build_dir_for(source), answer) self.assertEqual(samurai_sys.get_default_build_dir_for(PathLib(source)), PathLib(answer))
def test_source_is_file(self): source = os.path.join(samurai_sys.top_dir, "b", "c") touch(source, make_dirs=True) answer = os.path.join(samurai_sys.build_dir, "b") self.assertEqual(samurai_sys.get_default_build_dir_for(source), answer) self.assertEqual(samurai_sys.get_default_build_dir_for(PathLib(source)), PathLib(answer))
def test_source_not_a_subdir_of_top_dir(self): with self.assertRaisesRegex(ValueError, r"source is not a sub directory of the " "top directory"): samurai_sys.get_default_build_dir_for("/a/b/c", a_top_dir="/c/d")
def test_no_top_dir(self): samurai_sys.top_dir = None with self.assertRaisesRegex(ValueError, r"with no top directory"): samurai_sys.get_default_build_dir_for("a")