Commit a83f7796 authored by nateatkins's avatar nateatkins
Browse files

Issue 643 project-variable update. Fix to remove 'key' from require3d argument...

Issue 643 project-variable update. Fix to remove 'key' from require3d argument list after it is popped to add to the http path.
parent 011274e7
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -208,6 +208,8 @@ class CreateMixin(object):
class UpdateMixin(object):
    def _check_missing_update_attrs(self, data):
        required, optional = self.get_update_attrs()
        # Remove the id field from the required list as it has been moved to the http path.
        required = tuple(filter(lambda k: k != self._obj_cls._id_attr, required))
        missing = []
        for attr in required:
            if attr not in data:
+59 −0
Original line number Diff line number Diff line
from gitlab import cli
import pytest
import sys

PROJECT_ID = 9460322


def test_project_variable(capsys):
    key = "junk1"
    value1 = "car"
    value2 = "bus"

    with pytest.raises(SystemExit) as exit_exc:
        cmd_line = f"gitlab project-variable list --project-id {PROJECT_ID}"
        print("--->", cmd_line)
        sys.argv = cmd_line.split()
        cli.main()
    out, err = capsys.readouterr()

    if key not in out:
        with pytest.raises(SystemExit) as exit_exc:
            cmd_line = f"gitlab project-variable create --project-id {PROJECT_ID} --key {key} --value {value1}"
            print("--->", cmd_line)
            sys.argv = cmd_line.split()
            cli.main()
    out, err = capsys.readouterr()

    with pytest.raises(SystemExit) as exit_exc:
        cmd_line = f"gitlab project-variable get --project-id {PROJECT_ID} --key {key}"
        print("--->", cmd_line)
        sys.argv = cmd_line.split()
        cli.main()
    out, err = capsys.readouterr()

    with pytest.raises(SystemExit) as exit_exc:
        cmd_line = f"gitlab project-variable update --project-id {PROJECT_ID} --key {key} --value {value2}"
        print("--->", cmd_line)
        sys.argv = cmd_line.split()
        cli.main()
    out, err = capsys.readouterr()
    assert key in out
    assert value2 in out

    with pytest.raises(SystemExit) as exit_exc:
        cmd_line = f"gitlab project-variable list --project-id {PROJECT_ID}"
        print("--->", cmd_line)
        sys.argv = cmd_line.split()
        cli.main()
    out, _ = capsys.readouterr()

    if key in out:
        with pytest.raises(SystemExit) as exit_exc:
            cmd_line = f"gitlab project-variable delete --project-id {PROJECT_ID} --key {key}"
            print("--->", cmd_line)
            sys.argv = cmd_line.split()
            cli.main()
    out, _ = capsys.readouterr()

    pass
 No newline at end of file
+25 −0
Original line number Diff line number Diff line
@@ -89,6 +89,31 @@ testcase "merge request validation" '
        --iid "$MR_ID" >/dev/null 2>&1
'

# Test project variables
testcase "create project variable" '
    OUTPUT=$(GITLAB -v project-variable create --project-id $PROJECT_ID \
        --key junk --value car)
'

testcase "get project variable" '
    OUTPUT=$(GITLAB -v project-variable get --project-id $PROJECT_ID \
        --key junk)
'

testcase "update project variable" '
    OUTPUT=$(GITLAB -v project-variable update --project-id $PROJECT_ID \
        --key junk --value bus)
'

testcase "list project variable" '
    OUTPUT=$(GITLAB -v project-variable list --project-id $PROJECT_ID)
'

testcase "delete project variable" '
    OUTPUT=$(GITLAB -v project-variable delete --project-id $PROJECT_ID \
        --key junk)
'

testcase "branch deletion" '
    GITLAB project-branch delete --project-id "$PROJECT_ID" \
        --name branch1 >/dev/null 2>&1