From a5ff465d9225ad894435f95ec03f6ee21968fcb1 Mon Sep 17 00:00:00 2001 From: Chandan Singh Date: Sun, 22 Apr 2018 03:16:03 +0100 Subject: _project.py: Allow running bst commands from subdirectories of project root When initializing the project, BuildStream will continue searching for project.conf in parent directories in case it is not found in the current directory. Fixes #368. --- tests/format/project.py | 15 +++++++++++++++ tests/format/project/project-from-subdir/manual.bst | 1 + tests/format/project/project-from-subdir/project.conf | 4 ++++ .../project/project-from-subdir/subdirectory/README | 1 + 4 files changed, 21 insertions(+) create mode 100644 tests/format/project/project-from-subdir/manual.bst create mode 100644 tests/format/project/project-from-subdir/project.conf create mode 100644 tests/format/project/project-from-subdir/subdirectory/README (limited to 'tests') diff --git a/tests/format/project.py b/tests/format/project.py index b8e411351..9d595981b 100644 --- a/tests/format/project.py +++ b/tests/format/project.py @@ -54,6 +54,21 @@ def test_load_default_project(cli, datafiles): assert (env['TERM'] == "dumb") +@pytest.mark.datafiles(os.path.join(DATA_DIR)) +def test_load_project_from_subdir(cli, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename, 'project-from-subdir') + result = cli.run( + project=project, + cwd=os.path.join(project, 'subdirectory'), + args=['show', '--format', '%{env}', 'manual.bst']) + result.assert_success() + + # Read back some of our project defaults from the env + env = _yaml.load_data(result.output) + assert (env['USER'] == "tomjon") + assert (env['TERM'] == "dumb") + + @pytest.mark.datafiles(os.path.join(DATA_DIR)) def test_override_project_path(cli, datafiles): project = os.path.join(datafiles.dirname, datafiles.basename, "overridepath") diff --git a/tests/format/project/project-from-subdir/manual.bst b/tests/format/project/project-from-subdir/manual.bst new file mode 100644 index 000000000..4d7f70266 --- /dev/null +++ b/tests/format/project/project-from-subdir/manual.bst @@ -0,0 +1 @@ +kind: manual diff --git a/tests/format/project/project-from-subdir/project.conf b/tests/format/project/project-from-subdir/project.conf new file mode 100644 index 000000000..fd3134c58 --- /dev/null +++ b/tests/format/project/project-from-subdir/project.conf @@ -0,0 +1,4 @@ +# Basic project configuration that doesnt override anything +# + +name: pony diff --git a/tests/format/project/project-from-subdir/subdirectory/README b/tests/format/project/project-from-subdir/subdirectory/README new file mode 100644 index 000000000..b32d37708 --- /dev/null +++ b/tests/format/project/project-from-subdir/subdirectory/README @@ -0,0 +1 @@ +This directory is used to test running commands from a project subdirectory. -- cgit v1.2.1