def test_properties( self, port, request_path, health_path, repository, tag, sha, env_vars, ): hypothesis.assume(tag or sha) docker_image = DockerImage( port=port, request_path=request_path, health_path=health_path, repository=repository, tag=tag, sha=sha, env_vars=env_vars, ) # translate expected values request_path = arg_handler.ensure_starts_with_slash(request_path) health_path = arg_handler.ensure_starts_with_slash(health_path) if isinstance(env_vars, list): env_vars = {name: os.environ[name] for name in env_vars} assert docker_image.port == port assert docker_image.request_path == request_path assert docker_image.health_path == health_path assert docker_image.repository == repository assert docker_image.tag == tag assert docker_image.sha == sha assert docker_image.env_vars == (env_vars or None)
def _create_json( cls, conn, workspace, path, description=None, public_within_org=None, visibility=None, ): path = arg_handler.ensure_starts_with_slash(path) ( visibility, public_within_org, ) = _visibility._Visibility._translate_public_within_org( visibility, public_within_org) data = { "path": path, "description": description, "custom_permission": { "collaborator_type": visibility._collaborator_type_str }, "visibility": "ORG_SCOPED_PUBLIC" if public_within_org else "PRIVATE", # TODO: raise if workspace is personal "resource_visibility": visibility._visibility_str, } url = "{}://{}/api/v1/deployment/workspace/{}/endpoints".format( conn.scheme, conn.socket, workspace) response = _utils.make_request("POST", url, conn, json=data) _utils.raise_for_http_error(response) return response.json()
def test_from_proto( self, port, request_path, health_path, repository, tag, sha, env_vars, ): hypothesis.assume(tag or sha) request_path = arg_handler.ensure_starts_with_slash(request_path) health_path = arg_handler.ensure_starts_with_slash(health_path) msg = RegistryService_pb2.ModelVersion() msg.docker_metadata.request_port = port msg.docker_metadata.request_path = request_path msg.docker_metadata.health_path = health_path msg.environment.docker.repository = repository if tag is not None: msg.environment.docker.tag = tag if sha is not None: msg.environment.docker.sha = sha if env_vars is not None: msg.environment.environment_variables.extend( [ Environment_pb2.EnvironmentVariablesBlob( name=name, value=value ) for name, value in env_vars.items() ] ) docker_image = DockerImage._from_model_ver_proto(msg) assert docker_image.port == port assert docker_image.request_path == request_path assert docker_image.health_path == health_path assert docker_image.repository == repository assert docker_image.tag == tag assert docker_image.sha == sha assert docker_image.env_vars == (env_vars or None)
def __init__( self, port, request_path, health_path, repository, tag=None, sha=None, env_vars=None, ): self._port = int(port) self._request_path = arg_handler.ensure_starts_with_slash(request_path) self._health_path = arg_handler.ensure_starts_with_slash(health_path) self._docker_env = environment.Docker( repository=repository, tag=tag, sha=sha, env_vars=env_vars, )
def test_as_proto( self, port, request_path, health_path, repository, tag, sha, env_vars, ): hypothesis.assume(tag or sha) docker_image = DockerImage( port=port, request_path=request_path, health_path=health_path, repository=repository, tag=tag, sha=sha, env_vars=env_vars, ) msg = docker_image._as_model_ver_proto() # translate expected values request_path = arg_handler.ensure_starts_with_slash(request_path) health_path = arg_handler.ensure_starts_with_slash(health_path) if isinstance(env_vars, list): env_vars = {name: os.environ[name] for name in env_vars} assert msg.docker_metadata.request_port == port assert msg.docker_metadata.request_path == request_path assert msg.docker_metadata.health_path == health_path assert msg.environment.docker.repository == repository assert msg.environment.docker.tag == (tag or "") assert msg.environment.docker.sha == (sha or "") assert { var.name: var.value for var in msg.environment.environment_variables } == (env_vars or {})
def test_without_slash(self, path): hypothesis.assume(not path.startswith("/")) expected_path = "/" + path assert arg_handler.ensure_starts_with_slash(path) == expected_path
def test_with_slash(self, path): path = "/" + path assert arg_handler.ensure_starts_with_slash(path) == path