| import os |
| import pytest |
| |
| from buildstream import Project, Context |
| from buildstream import LoadError, LoadErrorReason |
| |
| DATA_DIR = os.path.join( |
| os.path.dirname(os.path.realpath(__file__)), |
| 'data', |
| ) |
| |
| |
| @pytest.mark.datafiles(os.path.join(DATA_DIR)) |
| def test_missing_project_conf(datafiles): |
| directory = os.path.join(datafiles.dirname, datafiles.basename) |
| |
| with pytest.raises(LoadError) as exc: |
| project = Project(directory, Context([], 'x86_64')) |
| |
| assert (exc.value.reason == LoadErrorReason.MISSING_FILE) |
| |
| |
| @pytest.mark.datafiles(os.path.join(DATA_DIR)) |
| def test_missing_project_name(datafiles): |
| directory = os.path.join(datafiles.dirname, datafiles.basename, "missingname") |
| |
| with pytest.raises(LoadError) as exc: |
| project = Project(directory, Context([], 'x86_64')) |
| |
| assert (exc.value.reason == LoadErrorReason.INVALID_DATA) |
| |
| |
| @pytest.mark.datafiles(os.path.join(DATA_DIR)) |
| def test_load_basic_project(datafiles): |
| directory = os.path.join(datafiles.dirname, datafiles.basename, "basic") |
| |
| project = Project(directory, Context([], 'x86_64')) |
| |
| # User provided |
| assert (project.name == "pony") |
| |
| # Some of the defaults |
| assert (project._environment['USER'] == "tomjon") |
| assert (project._environment['TERM'] == "dumb") |
| assert (project._environment['PATH'] == "/usr/bin:/bin:/usr/sbin:/sbin") |
| |
| |
| @pytest.mark.datafiles(os.path.join(DATA_DIR)) |
| def test_override_project_path(datafiles): |
| directory = os.path.join(datafiles.dirname, datafiles.basename, "overridepath") |
| |
| project = Project(directory, Context([], 'x86_64')) |
| |
| # Test the override |
| assert (project._environment['PATH'] == "/bin:/sbin") |
| |
| |
| @pytest.mark.datafiles(os.path.join(DATA_DIR)) |
| def test_project_alias(datafiles): |
| directory = os.path.join(datafiles.dirname, datafiles.basename, "alias") |
| |
| project = Project(directory, Context([], 'x86_64')) |
| |
| # Test the override |
| assert (project.translate_url('baserock:foo') == 'git://git.baserock.org/baserock/foo') |
| assert (project.translate_url('gnome:bar') == 'git://git.gnome.org/bar') |
| |
| |
| @pytest.mark.datafiles(os.path.join(DATA_DIR)) |
| def test_project_unsupported(datafiles): |
| directory = os.path.join(datafiles.dirname, datafiles.basename, "unsupported") |
| |
| with pytest.raises(LoadError) as exc: |
| project = Project(directory, Context([], 'x86_64')) |
| |
| assert (exc.value.reason == LoadErrorReason.UNSUPPORTED_PROJECT) |