import pytest from mock import Mock from util.config.provider import KubernetesConfigProvider from test.fixtures import * class TestKubernetesConfigProvider(KubernetesConfigProvider): def __init__(self): self.yaml_filename = 'yaml_filename' self._service_token = 'service_token' self._execute_k8s_api = Mock() @pytest.mark.parametrize('directory,filename,expected', [ ("directory", "file", "directory_file"), ("directory/dir", "file", "directory/dir_file"), ("directory/dir/", "file", "directory/dir_file"), ("directory", "file/test", "directory_file/test"), ]) def test_get_volume_path(directory, filename, expected): provider = TestKubernetesConfigProvider() assert expected == provider.get_volume_path(directory, filename) @pytest.mark.parametrize('response,expected', [ (Mock(text="{\"data\": {\"license\":\"test\"}}", status_code=200), {"data": {"license":"test"}}), (Mock(text="{\"data\": {\"license\":\"test\"}}", status_code=404), None), ]) def test_lookup_secret(response, expected): provider = TestKubernetesConfigProvider() provider._execute_k8s_api.return_value = response assert expected == provider._lookup_secret() @pytest.mark.parametrize('response,key,expected', [ (Mock(text="{\"data\": {\"license\":\"test\"}}", status_code=200), "license", True), (Mock(text="{\"data\": {\"license\":\"test\"}}", status_code=200), "config.yaml", False), (Mock(text="", status_code=404), "license", False), ]) def test_volume_file_exists(response, key, expected): provider = TestKubernetesConfigProvider() provider._execute_k8s_api.return_value = response assert expected == provider.volume_file_exists(key) @pytest.mark.parametrize('response,expected', [ (Mock(text="{\"data\": {\"extra_license\":\"test\"}}", status_code=200), ["license"]), (Mock(text="", status_code=404), []), ]) def test_list_volume_directory(response, expected): provider = TestKubernetesConfigProvider() provider._execute_k8s_api.return_value = response assert expected == provider.list_volume_directory("extra")