diff options
author | bst-marge-bot <marge-bot@buildstream.build> | 2019-07-02 15:43:27 +0000 |
---|---|---|
committer | bst-marge-bot <marge-bot@buildstream.build> | 2019-07-02 15:43:27 +0000 |
commit | eb30ffba4d7d1d308dd3545b3351f3d5d8a1844e (patch) | |
tree | 93cfddfaad042f42a7408d54c241f99ff376db19 | |
parent | 2219874cdca548dd7f164ef3a0f77f5affeea2b0 (diff) | |
parent | 5a1afb26cd9f70b8ef719966c24baabe8ac0816b (diff) | |
download | buildstream-eb30ffba4d7d1d308dd3545b3351f3d5d8a1844e.tar.gz |
Merge branch 'AlexFazakas/add-bst-init-argument' into 'master'
Add bst init argument
Closes #702
See merge request BuildStream/buildstream!1430
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | man/bst-artifact-checkout.1 | 2 | ||||
-rw-r--r-- | man/bst-artifact-delete.1 | 2 | ||||
-rw-r--r-- | man/bst-artifact-log.1 | 2 | ||||
-rw-r--r-- | man/bst-artifact-pull.1 | 2 | ||||
-rw-r--r-- | man/bst-artifact-push.1 | 2 | ||||
-rw-r--r-- | man/bst-artifact-server.1 | 2 | ||||
-rw-r--r-- | man/bst-artifact.1 | 16 | ||||
-rw-r--r-- | man/bst-build.1 | 2 | ||||
-rw-r--r-- | man/bst-help.1 | 2 | ||||
-rw-r--r-- | man/bst-init.1 | 4 | ||||
-rw-r--r-- | man/bst-shell.1 | 2 | ||||
-rw-r--r-- | man/bst-show.1 | 2 | ||||
-rw-r--r-- | man/bst-source-checkout.1 | 2 | ||||
-rw-r--r-- | man/bst-source-fetch.1 | 2 | ||||
-rw-r--r-- | man/bst-source-track.1 | 2 | ||||
-rw-r--r-- | man/bst-source.1 | 10 | ||||
-rw-r--r-- | man/bst-workspace-close.1 | 2 | ||||
-rw-r--r-- | man/bst-workspace-list.1 | 2 | ||||
-rw-r--r-- | man/bst-workspace-open.1 | 2 | ||||
-rw-r--r-- | man/bst-workspace-reset.1 | 2 | ||||
-rw-r--r-- | man/bst-workspace.1 | 16 | ||||
-rw-r--r-- | man/bst.1 | 56 | ||||
-rw-r--r-- | src/buildstream/_frontend/app.py | 23 | ||||
-rw-r--r-- | src/buildstream/_frontend/cli.py | 8 | ||||
-rw-r--r-- | src/buildstream/testing/runcli.py | 3 | ||||
-rw-r--r-- | tests/frontend/init.py | 43 | ||||
-rw-r--r-- | tests/frontend/show.py | 4 |
28 files changed, 131 insertions, 89 deletions
@@ -2,6 +2,9 @@ buildstream 1.3.1 ================= + o BREAKING CHANGE: `bst init` no longer uses the `--directory` or `-C` + option. Instead, it (optionally) takes a directory as an argument. + o BREAKING CHANGE: `Plugin.node_items` doesn't accept 'dict' values anymore. Please used `Node`s instead. diff --git a/man/bst-artifact-checkout.1 b/man/bst-artifact-checkout.1 index 2bf023c8a..eb16f6ffe 100644 --- a/man/bst-artifact-checkout.1 +++ b/man/bst-artifact-checkout.1 @@ -1,4 +1,4 @@ -.TH "BST ARTIFACT CHECKOUT" "1" "27-Jun-2019" "" "bst artifact checkout Manual" +.TH "BST ARTIFACT CHECKOUT" "1" "01-Jul-2019" "" "bst artifact checkout Manual" .SH NAME bst\-artifact\-checkout \- Checkout contents of an artifact .SH SYNOPSIS diff --git a/man/bst-artifact-delete.1 b/man/bst-artifact-delete.1 index 4cc737d0e..8f80cbcaa 100644 --- a/man/bst-artifact-delete.1 +++ b/man/bst-artifact-delete.1 @@ -1,4 +1,4 @@ -.TH "BST ARTIFACT DELETE" "1" "27-Jun-2019" "" "bst artifact delete Manual" +.TH "BST ARTIFACT DELETE" "1" "01-Jul-2019" "" "bst artifact delete Manual" .SH NAME bst\-artifact\-delete \- Remove artifacts from the local cache .SH SYNOPSIS diff --git a/man/bst-artifact-log.1 b/man/bst-artifact-log.1 index 88c797a78..cfe4b15b1 100644 --- a/man/bst-artifact-log.1 +++ b/man/bst-artifact-log.1 @@ -1,4 +1,4 @@ -.TH "BST ARTIFACT LOG" "1" "27-Jun-2019" "" "bst artifact log Manual" +.TH "BST ARTIFACT LOG" "1" "01-Jul-2019" "" "bst artifact log Manual" .SH NAME bst\-artifact\-log \- Show logs of artifacts .SH SYNOPSIS diff --git a/man/bst-artifact-pull.1 b/man/bst-artifact-pull.1 index 1369b97cd..a78178142 100644 --- a/man/bst-artifact-pull.1 +++ b/man/bst-artifact-pull.1 @@ -1,4 +1,4 @@ -.TH "BST ARTIFACT PULL" "1" "27-Jun-2019" "" "bst artifact pull Manual" +.TH "BST ARTIFACT PULL" "1" "01-Jul-2019" "" "bst artifact pull Manual" .SH NAME bst\-artifact\-pull \- Pull a built artifact .SH SYNOPSIS diff --git a/man/bst-artifact-push.1 b/man/bst-artifact-push.1 index 0e8bb424c..88115a891 100644 --- a/man/bst-artifact-push.1 +++ b/man/bst-artifact-push.1 @@ -1,4 +1,4 @@ -.TH "BST ARTIFACT PUSH" "1" "27-Jun-2019" "" "bst artifact push Manual" +.TH "BST ARTIFACT PUSH" "1" "01-Jul-2019" "" "bst artifact push Manual" .SH NAME bst\-artifact\-push \- Push a built artifact .SH SYNOPSIS diff --git a/man/bst-artifact-server.1 b/man/bst-artifact-server.1 index bf230c73e..7f10ee5d9 100644 --- a/man/bst-artifact-server.1 +++ b/man/bst-artifact-server.1 @@ -1,4 +1,4 @@ -.TH "BST-ARTIFACT-SERVER" "1" "27-Jun-2019" "" "bst-artifact-server Manual" +.TH "BST-ARTIFACT-SERVER" "1" "01-Jul-2019" "" "bst-artifact-server Manual" .SH NAME bst-artifact-server \- CAS Artifact Server .SH SYNOPSIS diff --git a/man/bst-artifact.1 b/man/bst-artifact.1 index dbb359bc6..7f65dce5b 100644 --- a/man/bst-artifact.1 +++ b/man/bst-artifact.1 @@ -1,4 +1,4 @@ -.TH "BST ARTIFACT" "1" "27-Jun-2019" "" "bst artifact Manual" +.TH "BST ARTIFACT" "1" "01-Jul-2019" "" "bst artifact Manual" .SH NAME bst\-artifact \- Manipulate cached artifacts .SH SYNOPSIS @@ -8,10 +8,6 @@ bst\-artifact \- Manipulate cached artifacts Manipulate cached artifacts .SH COMMANDS .PP -\fBcheckout\fP - Checkout contents of an artifact - See \fBbst artifact-checkout(1)\fP for full documentation on the \fBcheckout\fP command. -.PP \fBpull\fP Pull a built artifact See \fBbst artifact-pull(1)\fP for full documentation on the \fBpull\fP command. @@ -20,10 +16,14 @@ Manipulate cached artifacts Push a built artifact See \fBbst artifact-push(1)\fP for full documentation on the \fBpush\fP command. .PP +\fBdelete\fP + Remove artifacts from the local cache + See \fBbst artifact-delete(1)\fP for full documentation on the \fBdelete\fP command. +.PP \fBlog\fP Show logs of artifacts See \fBbst artifact-log(1)\fP for full documentation on the \fBlog\fP command. .PP -\fBdelete\fP - Remove artifacts from the local cache - See \fBbst artifact-delete(1)\fP for full documentation on the \fBdelete\fP command. +\fBcheckout\fP + Checkout contents of an artifact + See \fBbst artifact-checkout(1)\fP for full documentation on the \fBcheckout\fP command. diff --git a/man/bst-build.1 b/man/bst-build.1 index 04b57455d..760f1390e 100644 --- a/man/bst-build.1 +++ b/man/bst-build.1 @@ -1,4 +1,4 @@ -.TH "BST BUILD" "1" "27-Jun-2019" "" "bst build Manual" +.TH "BST BUILD" "1" "01-Jul-2019" "" "bst build Manual" .SH NAME bst\-build \- Build elements in a pipeline .SH SYNOPSIS diff --git a/man/bst-help.1 b/man/bst-help.1 index 69de66469..77b2dde3e 100644 --- a/man/bst-help.1 +++ b/man/bst-help.1 @@ -1,4 +1,4 @@ -.TH "BST HELP" "1" "27-Jun-2019" "" "bst help Manual" +.TH "BST HELP" "1" "01-Jul-2019" "" "bst help Manual" .SH NAME bst\-help \- Print usage information .SH SYNOPSIS diff --git a/man/bst-init.1 b/man/bst-init.1 index 351551c0e..7ec8cd04b 100644 --- a/man/bst-init.1 +++ b/man/bst-init.1 @@ -1,9 +1,9 @@ -.TH "BST INIT" "1" "27-Jun-2019" "" "bst init Manual" +.TH "BST INIT" "1" "01-Jul-2019" "" "bst init Manual" .SH NAME bst\-init \- Initialize a new BuildStream project .SH SYNOPSIS .B bst init -[OPTIONS] +[OPTIONS] [TARGET_DIRECTORY] .SH DESCRIPTION Initialize a new BuildStream project .PP diff --git a/man/bst-shell.1 b/man/bst-shell.1 index 4a068f7a9..61970597f 100644 --- a/man/bst-shell.1 +++ b/man/bst-shell.1 @@ -1,4 +1,4 @@ -.TH "BST SHELL" "1" "27-Jun-2019" "" "bst shell Manual" +.TH "BST SHELL" "1" "01-Jul-2019" "" "bst shell Manual" .SH NAME bst\-shell \- Shell into an element's sandbox environment .SH SYNOPSIS diff --git a/man/bst-show.1 b/man/bst-show.1 index 9c4958e61..b7ea98022 100644 --- a/man/bst-show.1 +++ b/man/bst-show.1 @@ -1,4 +1,4 @@ -.TH "BST SHOW" "1" "27-Jun-2019" "" "bst show Manual" +.TH "BST SHOW" "1" "01-Jul-2019" "" "bst show Manual" .SH NAME bst\-show \- Show elements in the pipeline .SH SYNOPSIS diff --git a/man/bst-source-checkout.1 b/man/bst-source-checkout.1 index 57c43e926..592be1542 100644 --- a/man/bst-source-checkout.1 +++ b/man/bst-source-checkout.1 @@ -1,4 +1,4 @@ -.TH "BST SOURCE CHECKOUT" "1" "27-Jun-2019" "" "bst source checkout Manual" +.TH "BST SOURCE CHECKOUT" "1" "01-Jul-2019" "" "bst source checkout Manual" .SH NAME bst\-source\-checkout \- Checkout sources for an element .SH SYNOPSIS diff --git a/man/bst-source-fetch.1 b/man/bst-source-fetch.1 index cdd2bf57a..d3f2d6d81 100644 --- a/man/bst-source-fetch.1 +++ b/man/bst-source-fetch.1 @@ -1,4 +1,4 @@ -.TH "BST SOURCE FETCH" "1" "27-Jun-2019" "" "bst source fetch Manual" +.TH "BST SOURCE FETCH" "1" "01-Jul-2019" "" "bst source fetch Manual" .SH NAME bst\-source\-fetch \- Fetch sources in a pipeline .SH SYNOPSIS diff --git a/man/bst-source-track.1 b/man/bst-source-track.1 index 92a415d03..df15b3d2e 100644 --- a/man/bst-source-track.1 +++ b/man/bst-source-track.1 @@ -1,4 +1,4 @@ -.TH "BST SOURCE TRACK" "1" "27-Jun-2019" "" "bst source track Manual" +.TH "BST SOURCE TRACK" "1" "01-Jul-2019" "" "bst source track Manual" .SH NAME bst\-source\-track \- Track new source references .SH SYNOPSIS diff --git a/man/bst-source.1 b/man/bst-source.1 index cc28519e2..1726d50ab 100644 --- a/man/bst-source.1 +++ b/man/bst-source.1 @@ -1,4 +1,4 @@ -.TH "BST SOURCE" "1" "27-Jun-2019" "" "bst source Manual" +.TH "BST SOURCE" "1" "01-Jul-2019" "" "bst source Manual" .SH NAME bst\-source \- Manipulate sources for an element .SH SYNOPSIS @@ -8,10 +8,6 @@ bst\-source \- Manipulate sources for an element Manipulate sources for an element .SH COMMANDS .PP -\fBfetch\fP - Fetch sources in a pipeline - See \fBbst source-fetch(1)\fP for full documentation on the \fBfetch\fP command. -.PP \fBtrack\fP Track new source references See \fBbst source-track(1)\fP for full documentation on the \fBtrack\fP command. @@ -19,3 +15,7 @@ Manipulate sources for an element \fBcheckout\fP Checkout sources for an element See \fBbst source-checkout(1)\fP for full documentation on the \fBcheckout\fP command. +.PP +\fBfetch\fP + Fetch sources in a pipeline + See \fBbst source-fetch(1)\fP for full documentation on the \fBfetch\fP command. diff --git a/man/bst-workspace-close.1 b/man/bst-workspace-close.1 index 6dbd7be74..4331e87fb 100644 --- a/man/bst-workspace-close.1 +++ b/man/bst-workspace-close.1 @@ -1,4 +1,4 @@ -.TH "BST WORKSPACE CLOSE" "1" "27-Jun-2019" "" "bst workspace close Manual" +.TH "BST WORKSPACE CLOSE" "1" "01-Jul-2019" "" "bst workspace close Manual" .SH NAME bst\-workspace\-close \- Close workspaces .SH SYNOPSIS diff --git a/man/bst-workspace-list.1 b/man/bst-workspace-list.1 index f318967b9..d892b6a35 100644 --- a/man/bst-workspace-list.1 +++ b/man/bst-workspace-list.1 @@ -1,4 +1,4 @@ -.TH "BST WORKSPACE LIST" "1" "27-Jun-2019" "" "bst workspace list Manual" +.TH "BST WORKSPACE LIST" "1" "01-Jul-2019" "" "bst workspace list Manual" .SH NAME bst\-workspace\-list \- List open workspaces .SH SYNOPSIS diff --git a/man/bst-workspace-open.1 b/man/bst-workspace-open.1 index 047330193..522f8d806 100644 --- a/man/bst-workspace-open.1 +++ b/man/bst-workspace-open.1 @@ -1,4 +1,4 @@ -.TH "BST WORKSPACE OPEN" "1" "27-Jun-2019" "" "bst workspace open Manual" +.TH "BST WORKSPACE OPEN" "1" "01-Jul-2019" "" "bst workspace open Manual" .SH NAME bst\-workspace\-open \- Open a new workspace .SH SYNOPSIS diff --git a/man/bst-workspace-reset.1 b/man/bst-workspace-reset.1 index 7f3e2c8ae..f0d712c74 100644 --- a/man/bst-workspace-reset.1 +++ b/man/bst-workspace-reset.1 @@ -1,4 +1,4 @@ -.TH "BST WORKSPACE RESET" "1" "27-Jun-2019" "" "bst workspace reset Manual" +.TH "BST WORKSPACE RESET" "1" "01-Jul-2019" "" "bst workspace reset Manual" .SH NAME bst\-workspace\-reset \- Reset a workspace to its original state .SH SYNOPSIS diff --git a/man/bst-workspace.1 b/man/bst-workspace.1 index 4d2ee00ff..091ac4df6 100644 --- a/man/bst-workspace.1 +++ b/man/bst-workspace.1 @@ -1,4 +1,4 @@ -.TH "BST WORKSPACE" "1" "27-Jun-2019" "" "bst workspace Manual" +.TH "BST WORKSPACE" "1" "01-Jul-2019" "" "bst workspace Manual" .SH NAME bst\-workspace \- Manipulate developer workspaces .SH SYNOPSIS @@ -8,18 +8,18 @@ bst\-workspace \- Manipulate developer workspaces Manipulate developer workspaces .SH COMMANDS .PP -\fBopen\fP - Open a new workspace - See \fBbst workspace-open(1)\fP for full documentation on the \fBopen\fP command. -.PP \fBclose\fP Close workspaces See \fBbst workspace-close(1)\fP for full documentation on the \fBclose\fP command. .PP +\fBlist\fP + List open workspaces + See \fBbst workspace-list(1)\fP for full documentation on the \fBlist\fP command. +.PP \fBreset\fP Reset a workspace to its original state See \fBbst workspace-reset(1)\fP for full documentation on the \fBreset\fP command. .PP -\fBlist\fP - List open workspaces - See \fBbst workspace-list(1)\fP for full documentation on the \fBlist\fP command. +\fBopen\fP + Open a new workspace + See \fBbst workspace-open(1)\fP for full documentation on the \fBopen\fP command. @@ -1,4 +1,4 @@ -.TH "BST" "1" "27-Jun-2019" "" "bst Manual" +.TH "BST" "1" "01-Jul-2019" "" "bst Manual" .SH NAME bst \- Build and manipulate BuildStream projects... .SH SYNOPSIS @@ -72,33 +72,37 @@ Include an element's build tree when pulling remote element artifacts Cache artifact build tree content on creation .SH COMMANDS .PP -\fBhelp\fP - Print usage information - See \fBbst-help(1)\fP for full documentation on the \fBhelp\fP command. -.PP -\fBinit\fP - Initialize a new BuildStream project - See \fBbst-init(1)\fP for full documentation on the \fBinit\fP command. +\fBworkspace\fP + Manipulate developer workspaces + See \fBbst-workspace(1)\fP for full documentation on the \fBworkspace\fP command. .PP -\fBbuild\fP - Build elements in a pipeline - See \fBbst-build(1)\fP for full documentation on the \fBbuild\fP command. +\fBpull\fP + COMMAND OBSOLETE - Pull a built artifact + See \fBbst-pull(1)\fP for full documentation on the \fBpull\fP command. .PP \fBshow\fP Show elements in the pipeline See \fBbst-show(1)\fP for full documentation on the \fBshow\fP command. .PP -\fBshell\fP - Shell into an element's sandbox environment - See \fBbst-shell(1)\fP for full documentation on the \fBshell\fP command. +\fBtrack\fP + COMMAND OBSOLETE - Track new source references + See \fBbst-track(1)\fP for full documentation on the \fBtrack\fP command. .PP \fBsource\fP Manipulate sources for an element See \fBbst-source(1)\fP for full documentation on the \fBsource\fP command. .PP -\fBworkspace\fP - Manipulate developer workspaces - See \fBbst-workspace(1)\fP for full documentation on the \fBworkspace\fP command. +\fBpush\fP + COMMAND OBSOLETE - Push a built artifact + See \fBbst-push(1)\fP for full documentation on the \fBpush\fP command. +.PP +\fBbuild\fP + Build elements in a pipeline + See \fBbst-build(1)\fP for full documentation on the \fBbuild\fP command. +.PP +\fBhelp\fP + Print usage information + See \fBbst-help(1)\fP for full documentation on the \fBhelp\fP command. .PP \fBartifact\fP Manipulate cached artifacts @@ -108,18 +112,14 @@ Cache artifact build tree content on creation COMMAND OBSOLETE - Fetch sources in a pipeline See \fBbst-fetch(1)\fP for full documentation on the \fBfetch\fP command. .PP -\fBtrack\fP - COMMAND OBSOLETE - Track new source references - See \fBbst-track(1)\fP for full documentation on the \fBtrack\fP command. +\fBshell\fP + Shell into an element's sandbox environment + See \fBbst-shell(1)\fP for full documentation on the \fBshell\fP command. +.PP +\fBinit\fP + Initialize a new BuildStream project + See \fBbst-init(1)\fP for full documentation on the \fBinit\fP command. .PP \fBcheckout\fP COMMAND OBSOLETE - Checkout a built artifact See \fBbst-checkout(1)\fP for full documentation on the \fBcheckout\fP command. -.PP -\fBpull\fP - COMMAND OBSOLETE - Pull a built artifact - See \fBbst-pull(1)\fP for full documentation on the \fBpull\fP command. -.PP -\fBpush\fP - COMMAND OBSOLETE - Push a built artifact - See \fBbst-push(1)\fP for full documentation on the \fBpush\fP command. diff --git a/src/buildstream/_frontend/app.py b/src/buildstream/_frontend/app.py index 68cf7ec4d..a0b1d4cba 100644 --- a/src/buildstream/_frontend/app.py +++ b/src/buildstream/_frontend/app.py @@ -81,6 +81,7 @@ class App(): self._fail_messages = {} # Failure messages by unique plugin id self._interactive_failures = None # Whether to handle failures interactively self._started = False # Whether a session has started + self._set_project_dir = False # Whether -C option was used # UI Colors Profiles self._content_profile = Profile(fg='yellow') @@ -116,6 +117,11 @@ class App(): else: self.colors = False + if main_options['directory']: + self._set_project_dir = True + else: + main_options['directory'] = os.getcwd() + # create() # # Should be used instead of the regular constructor. @@ -310,13 +316,24 @@ class App(): # format_version (int): The project format version, default is the latest version # element_path (str): The subdirectory to store elements in, default is 'elements' # force (bool): Allow overwriting an existing project.conf + # target_directory (str): The target directory the project should be initialized in # - def init_project(self, project_name, format_version=BST_FORMAT_VERSION, element_path='elements', force=False): - directory = self._main_options['directory'] - directory = os.path.abspath(directory) + def init_project(self, project_name, format_version=BST_FORMAT_VERSION, element_path='elements', + force=False, target_directory=None): + if target_directory: + directory = os.path.abspath(target_directory) + else: + directory = self._main_options['directory'] + directory = os.path.abspath(directory) + project_path = os.path.join(directory, 'project.conf') try: + if self._set_project_dir: + raise AppError("Attempted to use -C or --directory with init.", + reason='init-with-set-directory', + detail="Please use 'bst init {}' instead.".format(directory)) + # Abort if the project.conf already exists, unless `--force` was specified in `bst init` if not force and os.path.exists(project_path): raise AppError("A project.conf already exists at: {}".format(project_path), diff --git a/src/buildstream/_frontend/cli.py b/src/buildstream/_frontend/cli.py index bbb9240f4..9a753f77a 100644 --- a/src/buildstream/_frontend/cli.py +++ b/src/buildstream/_frontend/cli.py @@ -217,7 +217,7 @@ def print_version(ctx, param, value): @click.option('--config', '-c', type=click.Path(exists=True, dir_okay=False, readable=True), help="Configuration file to use") -@click.option('--directory', '-C', default=os.getcwd(), +@click.option('--directory', '-C', default=None, # Set to os.getcwd() later. type=click.Path(file_okay=False, readable=True), help="Project directory (default: current directory)") @click.option('--on-error', default=None, @@ -311,8 +311,10 @@ def help_command(ctx, command): help="The subdirectory to store elements in (default: elements)") @click.option('--force', '-f', default=False, is_flag=True, help="Allow overwriting an existing project.conf") +@click.argument('target-directory', nargs=1, required=False, + type=click.Path(file_okay=False, writable=True)) @click.pass_obj -def init(app, project_name, format_version, element_path, force): +def init(app, project_name, format_version, element_path, force, target_directory): """Initialize a new BuildStream project Creates a new BuildStream project.conf in the project @@ -321,7 +323,7 @@ def init(app, project_name, format_version, element_path, force): Unless `--project-name` is specified, this will be an interactive session. """ - app.init_project(project_name, format_version, element_path, force) + app.init_project(project_name, format_version, element_path, force, target_directory) ################################################################## diff --git a/src/buildstream/testing/runcli.py b/src/buildstream/testing/runcli.py index a77deeb9e..8e9065478 100644 --- a/src/buildstream/testing/runcli.py +++ b/src/buildstream/testing/runcli.py @@ -322,7 +322,6 @@ class Cli(): # We may have been passed e.g. pathlib.Path or py.path args = [str(x) for x in args] - project = str(project) options = self.default_options + options @@ -339,7 +338,7 @@ class Cli(): bst_args += ['--config', config_file] if project: - bst_args += ['--directory', project] + bst_args += ['--directory', str(project)] for option, value in options: bst_args += ['--option', option, value] diff --git a/tests/frontend/init.py b/tests/frontend/init.py index 0eac5d528..d135abf1e 100644 --- a/tests/frontend/init.py +++ b/tests/frontend/init.py @@ -15,7 +15,7 @@ def test_defaults(cli, tmpdir): project = str(tmpdir) project_path = os.path.join(project, 'project.conf') - result = cli.run(project=project, args=['init', '--project-name', 'foo']) + result = cli.run(args=['init', '--project-name', 'foo', project]) result.assert_success() project_conf = _yaml.load(project_path) @@ -28,11 +28,12 @@ def test_all_options(cli, tmpdir): project = str(tmpdir) project_path = os.path.join(project, 'project.conf') - result = cli.run(project=project, args=[ + result = cli.run(args=[ 'init', '--project-name', 'foo', '--format-version', '2', '--element-path', 'ponies', + project ]) result.assert_success() @@ -46,7 +47,7 @@ def test_all_options(cli, tmpdir): def test_no_project_name(cli, tmpdir): - result = cli.run(project=str(tmpdir), args=['init']) + result = cli.run(args=['init', str(tmpdir)]) result.assert_main_error(ErrorDomain.APP, 'unspecified-project-name') @@ -56,7 +57,7 @@ def test_project_exists(cli, tmpdir): with open(project_path, 'w') as f: f.write('name: pony\n') - result = cli.run(project=project, args=['init', '--project-name', 'foo']) + result = cli.run(args=['init', '--project-name', 'foo', project]) result.assert_main_error(ErrorDomain.APP, 'project-exists') @@ -66,7 +67,7 @@ def test_force_overwrite_project(cli, tmpdir): with open(project_path, 'w') as f: f.write('name: pony\n') - result = cli.run(project=project, args=['init', '--project-name', 'foo', '--force']) + result = cli.run(args=['init', '--project-name', 'foo', '--force', project]) result.assert_success() project_conf = _yaml.load(project_path) @@ -74,24 +75,44 @@ def test_force_overwrite_project(cli, tmpdir): assert _yaml.node_get(project_conf, str, 'format-version') == str(BST_FORMAT_VERSION) +def test_relative_path_directory_as_argument(cli, tmpdir): + project = os.path.join(str(tmpdir), 'child-directory') + os.makedirs(project, exist_ok=True) + project_path = os.path.join(project, 'project.conf') + rel_path = os.path.relpath(project) + + result = cli.run(args=['init', '--project-name', 'foo', rel_path]) + result.assert_success() + + project_conf = _yaml.load(project_path) + assert _yaml.node_get(project_conf, str, 'name') == 'foo' + assert _yaml.node_get(project_conf, str, 'format-version') == str(BST_FORMAT_VERSION) + assert _yaml.node_get(project_conf, str, 'element-path') == 'elements' + + +def test_set_directory_and_directory_as_argument(cli, tmpdir): + result = cli.run(args=['-C', '/foo/bar', 'init', '--project-name', 'foo', '/boo/far']) + result.assert_main_error(ErrorDomain.APP, 'init-with-set-directory') + + @pytest.mark.parametrize("project_name", [('Micheal Jackson'), ('one+one')]) def test_bad_project_name(cli, tmpdir, project_name): - result = cli.run(project=str(tmpdir), args=['init', '--project-name', project_name]) + result = cli.run(args=['init', '--project-name', str(tmpdir)]) result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.INVALID_SYMBOL_NAME) @pytest.mark.parametrize("format_version", [(str(-1)), (str(BST_FORMAT_VERSION + 1))]) def test_bad_format_version(cli, tmpdir, format_version): - result = cli.run(project=str(tmpdir), args=[ - 'init', '--project-name', 'foo', '--format-version', format_version + result = cli.run(args=[ + 'init', '--project-name', 'foo', '--format-version', format_version, str(tmpdir) ]) result.assert_main_error(ErrorDomain.APP, 'invalid-format-version') @pytest.mark.parametrize("element_path", [('/absolute/path'), ('../outside/of/project')]) def test_bad_element_path(cli, tmpdir, element_path): - result = cli.run(project=str(tmpdir), args=[ - 'init', '--project-name', 'foo', '--element-path', element_path + result = cli.run(args=[ + 'init', '--project-name', 'foo', '--element-path', element_path, str(tmpdir) ]) result.assert_main_error(ErrorDomain.APP, 'invalid-element-path') @@ -115,7 +136,7 @@ def test_element_path_interactive(cli, tmp_path, monkeypatch, element_path): monkeypatch.setattr(App, 'create', DummyInteractiveApp.create) - result = cli.run(project=str(project), args=['init']) + result = cli.run(args=['init', str(project)]) result.assert_success() full_element_path = project.joinpath(element_path) diff --git a/tests/frontend/show.py b/tests/frontend/show.py index 4ef97dd84..d138b3693 100644 --- a/tests/frontend/show.py +++ b/tests/frontend/show.py @@ -403,8 +403,8 @@ def test_exceed_max_recursion_depth(cli, tmpdir, dependency_depth): """ os.mkdir(project_path) - result = cli.run(project=project_path, silent=True, - args=['init', '--project-name', project_name]) + result = cli.run(silent=True, + args=['init', '--project-name', project_name, project_path]) result.assert_success() sourcefiles_path = os.path.join(project_path, "files") |