diff --git a/tests/fetch-zuul-cloner.yaml b/tests/fetch-zuul-cloner.yaml index 67b471b1..70331fe1 100644 --- a/tests/fetch-zuul-cloner.yaml +++ b/tests/fetch-zuul-cloner.yaml @@ -24,3 +24,61 @@ - directory | succeeded - cloner.stat.exists - cloner.stat.mode == "0755" + + - name: Zuul clone something in required-projects + shell: + executable: /bin/bash + cmd: | + CLONEMAP=`mktemp` + function cleanup { + rm -f $CLONEMAP + } + trap cleanup EXIT + cat > $CLONEMAP << EOF + clonemap: + - name: openstack-infra/project-config + dest: {{ ansible_user_dir }} + EOF + /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP \ + --cache-dir /opt/git git://git.openstack.org \ + openstack-infra/project-config + register: clone_with_required + + - name: Check if repository was cloned + stat: + path: "{{ ansible_user_dir }}/src/git.openstack.org/openstack-infra/project-config" + register: with_required_stat + + - name: Zuul clone something not in required-projects + shell: + executable: /bin/bash + cmd: | + CLONEMAP=`mktemp` + function cleanup { + rm -f $CLONEMAP + } + trap cleanup EXIT + cat > $CLONEMAP << EOF + clonemap: + - name: openstack-infra/jenkins-job-builder + dest: {{ ansible_user_dir }} + EOF + /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP \ + --cache-dir /opt/git git://git.openstack.org \ + openstack-infra/jenkins-job-builder + ignore_errors: yes + register: clone_without_required + + - name: Check if repository was cloned + stat: + path: "{{ ansible_user_dir }}/src/git.openstack.org/opentack-infra/jenkins-job-builder" + register: without_required_stat + + - name: Validate zuul-cloner shim results + assert: + that: + - clone_with_required | succeeded + - clone_with_required | changed + - with_required_stat.stat.exists + - clone_without_required | failed + - not without_required_stat.stat.exists