armada/armada/tests/unit/handlers/test_chartbuilder.py

87 lines
2.5 KiB
Python

# Copyright 2017 The Armada Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import unittest
import mock
from armada.handlers.chartbuilder import ChartBuilder
class ChartBuilderTestCase(unittest.TestCase):
chart_stream = """
chart:
name: mariadb
release_name: mariadb
namespace: openstack
install:
no_hooks: false
upgrade:
no_hooks: false
values:
replicas: 1
volume:
size: 1Gi
source:
type: git
location: git://github.com/openstack/openstack-helm
subpath: mariadb
reference: master
dependencies: []
"""
chart_yaml = """
apiVersion: v1
description: A Helm chart for Kubernetes
name: hello-world-chart
version: 0.1.0
"""
chart_value = """
# Default values for hello-world-chart.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: nginx
tag: stable
pullPolicy: IfNotPresent
service:
name: nginx
type: ClusterIP
externalPort: 38443
internalPort: 80
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi
"""
@unittest.skip("we are having wierd scenario")
@mock.patch('armada.handlers.chartbuilder.dotify')
@mock.patch('armada.handlers.chartbuilder.os')
def test_chart_source_clone(self, mock_os, mock_dot):
from supermutes.dot import dotify
import yaml
mock_dot.dotify.return_value = dotify(yaml.load(self.chart_stream))
mock_os.path.join.return_value = self.chart_stream
ChartBuilder.source_clone = mock.Mock(return_value='path')
chartbuilder = ChartBuilder(self.chart_stream)
resp = chartbuilder.get_metadata()
self.assertIsNotNone(resp)
self.assertIsInstance(resp, basestring)