fix(endpoints): appending dockerfile to api call

### Description of Changes

  this was not passing back the correct path for the dockerfile
This commit is contained in:
Charlton Austin 2017-03-30 13:24:35 -04:00
parent 193b6cc94d
commit d4177e6e33
2 changed files with 15 additions and 8 deletions

View file

@ -4,9 +4,9 @@ import hashlib
import json import json
import logging import logging
import os import os
from urlparse import urlparse
from flask import request from flask import request
from urlparse import urlparse
from app import userfiles as user_files, build_logs, log_archive, dockerfile_build_queue from app import userfiles as user_files, build_logs, log_archive, dockerfile_build_queue
from auth.permissions import (ReadRepositoryPermission, ModifyRepositoryPermission, from auth.permissions import (ReadRepositoryPermission, ModifyRepositoryPermission,
@ -24,7 +24,6 @@ from endpoints.building import start_build, PreparedBuild, MaximumBuildsQueuedEx
from endpoints.exception import Unauthorized, NotFound, InvalidRequest from endpoints.exception import Unauthorized, NotFound, InvalidRequest
from util.names import parse_robot_username from util.names import parse_robot_username
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -312,12 +311,19 @@ class RepositoryBuildList(RepositoryParamResource):
def get_dockerfile_context(request_json): def get_dockerfile_context(request_json):
context = request_json['context'] if 'context' in request_json else os.path.sep context = request_json['context'] if 'context' in request_json else os.path.sep
if 'subdirectory' in request_json: if 'subdirectory' in request_json:
subdir = request_json["subdirectory"] subdir = request_json['subdirectory']
context = subdir
if not subdir.endswith(os.path.sep):
subdir += os.path.sep
subdir += 'Dockerfile'
else: else:
if context.endswith(os.path.sep): if context.endswith(os.path.sep):
subdir = context + "Dockerfile" subdir = context + 'Dockerfile'
else: else:
subdir = context + os.path.sep + "Dockerfile" subdir = context + os.path.sep + 'Dockerfile'
return context, subdir return context, subdir
@resource('/v1/repository/<apirepopath:repository>/build/<build_uuid>') @resource('/v1/repository/<apirepopath:repository>/build/<build_uuid>')

View file

@ -4,9 +4,10 @@ from endpoints.api.build import RepositoryBuildList
@pytest.mark.parametrize('request_json,subdir,context', [ @pytest.mark.parametrize('request_json,subdir,context', [
({}, "/Dockerfile", "/"), ({}, '/Dockerfile', '/'),
({"context": "/some_context"}, "/some_context/Dockerfile", "/some_context"), ({'context': '/some_context'}, '/some_context/Dockerfile', '/some_context'),
({"subdirectory": "/some_subdir/Dockerfile"}, "/some_subdir/Dockerfile", "/"), ({'subdirectory': 'some_context'}, 'some_context/Dockerfile', 'some_context'),
({'subdirectory': 'some_context/'}, 'some_context/Dockerfile', 'some_context/'),
]) ])
def test_extract_dockerfile_args(request_json, subdir, context): def test_extract_dockerfile_args(request_json, subdir, context):
actual_context, actual_subdir = RepositoryBuildList.get_dockerfile_context(request_json) actual_context, actual_subdir = RepositoryBuildList.get_dockerfile_context(request_json)