def setUp(self): self.nulecule_base = Nulecule_Base(dryrun=True) self.tmpdir = tempfile.mkdtemp(prefix="atomicapp-test", dir="/tmp") self.artifact_dir = os.path.dirname( __file__) + '/docker_artifact_test/' self.plugin = Plugin() self.plugin.load_plugins()
class TestNuleculeBase(unittest.TestCase): def setUp(self): self.nulecule_base = Nulecule_Base(dryrun = True) self.tmpdir = tempfile.mkdtemp(prefix = "atomicapp-test", dir = "/tmp") self.plugin = Plugin() self.plugin.load_plugins() def tearDown(self): pass def create_temp_file(self): return tempfile.mktemp(prefix = "test-config", dir = self.tmpdir) def prepare_provider(self, data): self.nulecule_base.loadAnswers(data) provider_class = self.plugin.getProvider(self.nulecule_base.provider) config = self.nulecule_base.getValues(skip_asking=True) provider = provider_class(config, self.tmpdir, dryrun = False) return provider @mock.patch.object(KubernetesProvider, '_call', mock_provider_call) def test_provider_config_exist(self): provider_config_path = self.create_temp_file() mock_content = "%s_%s" % (MOCK_CONTENT, "_unchanged") with open(provider_config_path, "w") as fp: fp.write(mock_content) data = {'general': {'namespace': 'testing', 'provider': 'kubernetes', 'providerconfig': provider_config_path}} provider = self.prepare_provider(data) self.assertEqual(provider.config_file, provider_config_path) provider.checkConfigFile() with open(provider_config_path, "r") as fp: self.assertEqual(fp.read(), mock_content) @mock.patch("kubernetes.KubernetesProvider._call", mock_provider_call) def test_provider_check_config_generation(self): path = self.create_temp_file() data = {'general': {'namespace': 'testing', 'provider': 'kubernetes', 'providerconfig': path}} provider = self.prepare_provider(data) provider.checkConfigFile() with open(path, "r") as fp: self.assertEqual(fp.read(), MOCK_CONTENT) def test_provider_check_config_fail(self): path = self.create_temp_file() data = {'general': {'namespace': 'testing', 'provider': 'openshift'}} provider = self.prepare_provider(data) self.assertRaises(ProviderFailedException, provider.checkConfigFile)
class TestDockerProviderBase(unittest.TestCase): # Create a temporary directory for our setup as well as load the required providers def setUp(self): self.nulecule_base = Nulecule_Base(dryrun=True) self.tmpdir = tempfile.mkdtemp(prefix="atomicapp-test", dir="/tmp") self.artifact_dir = os.path.dirname( __file__) + '/docker_artifact_test/' self.plugin = Plugin() self.plugin.load_plugins() def tearDown(self): pass # Lets prepare the docker provider with pre-loaded configuration def prepare_provider(self, data): self.nulecule_base.loadAnswers(data) provider_class = self.plugin.getProvider(self.nulecule_base.provider) config = self.nulecule_base.getValues(skip_asking=True) provider = provider_class(config, self.tmpdir, dryrun=True) return provider # Test deploying multiple artifacts within docker def test_multiple_artifact_load(self): data = {'general': {'namespace': 'test', 'provider': 'docker'}} provider = self.prepare_provider(data) provider.init() provider.artifacts = [ self.artifact_dir + 'hello-world-one', self.artifact_dir + 'hello-world-two', self.artifact_dir + 'hello-world-three' ] # Mock the effects of 'docker ps -a'. As if each deployment adds the container to the host mock_container_list = mock.Mock(side_effect=[ ["atomic_default_e9b9a7bfe8f9"], ["atomic_default_e9b9a7bfe8f9", "atomic_test_e9b9a7bfe8f9"], [ "atomic_default_e9b9a7bfe8f9", "atomic_test_e9b9a7bfe8f9", "atomic_test_e9b9a7bfe8f9" ] ]) with mock.patch("docker.DockerProvider._get_containers", mock_container_list): provider.deploy() # Patch in a general container list and make sure it fails if there is already a container with the same name @mock.patch("docker.DockerProvider._get_containers", mock_name_get_call) def test_namespace_name_check(self): data = {'general': {'namespace': 'default', 'provider': 'docker'}} provider = self.prepare_provider(data) provider.init() provider.artifacts = [self.artifact_dir + 'hello-world-one'] with pytest.raises(ProviderFailedException): provider.deploy()
class TestDockerProviderBase(unittest.TestCase): # Create a temporary directory for our setup as well as load the required providers def setUp(self): self.nulecule_base = Nulecule_Base(dryrun = True) self.tmpdir = tempfile.mkdtemp(prefix = "atomicapp-test", dir = "/tmp") self.artifact_dir = os.path.dirname(__file__) + '/docker_artifact_test/' self.plugin = Plugin() self.plugin.load_plugins() def tearDown(self): pass # Lets prepare the docker provider with pre-loaded configuration def prepare_provider(self, data): self.nulecule_base.loadAnswers(data) provider_class = self.plugin.getProvider(self.nulecule_base.provider) config = self.nulecule_base.getValues(skip_asking=True) provider = provider_class(config, self.tmpdir, dryrun = True) return provider # Test deploying multiple artifacts within docker def test_multiple_artifact_load(self): data = {'general': {'namespace': 'test', 'provider': 'docker'}} provider = self.prepare_provider(data) provider.init() provider.artifacts = [ self.artifact_dir + 'hello-world-one', self.artifact_dir + 'hello-world-two', self.artifact_dir + 'hello-world-three' ] # Mock the effects of 'docker ps -a'. As if each deployment adds the container to the host mock_container_list = mock.Mock(side_effect = [ ["atomic_default_e9b9a7bfe8f9"], ["atomic_default_e9b9a7bfe8f9", "atomic_test_e9b9a7bfe8f9"], ["atomic_default_e9b9a7bfe8f9", "atomic_test_e9b9a7bfe8f9", "atomic_test_e9b9a7bfe8f9"] ]) with mock.patch("docker.DockerProvider._get_containers", mock_container_list): provider.deploy() # Patch in a general container list and make sure it fails if there is already a container with the same name @mock.patch("docker.DockerProvider._get_containers", mock_name_get_call) def test_namespace_name_check(self): data = {'general': {'namespace': 'default', 'provider': 'docker'}} provider = self.prepare_provider(data) provider.init() provider.artifacts = [self.artifact_dir + 'hello-world-one'] with pytest.raises(ProviderFailedException): provider.deploy()
class TestNuleculeBase(unittest.TestCase): def setUp(self): self.nulecule_base = Nulecule_Base( dryrun=True, cli_provider="kubernetes") def tearDown(self): pass def test_answers_config(self): data = {'general': {'namespace': 'testing', 'provider': 'kubernetes'}} self.nulecule_base.loadAnswers(data) config = self.nulecule_base.getValues() self.assertEqual(config["namespace"], "testing") def test_answers_config_with_skip(self): data = {'general': {'namespace': 'testing', 'provider': 'kubernetes'}} self.nulecule_base.loadAnswers(data) config = self.nulecule_base.getValues(skip_asking=True) self.assertEqual(config["namespace"], "testing")
def setUp(self): self.nulecule_base = Nulecule_Base(dryrun = True) self.tmpdir = tempfile.mkdtemp(prefix = "atomicapp-test", dir = "/tmp") self.plugin = Plugin() self.plugin.load_plugins()
def setUp(self): self.nulecule_base = Nulecule_Base( dryrun=True, cli_provider="kubernetes")
def setUp(self): self.nulecule_base = Nulecule_Base(dryrun=True) self.tmpdir = tempfile.mkdtemp(prefix="atomicapp-test", dir="/tmp") self.plugin = Plugin() self.plugin.load_plugins()
class TestKubernetesProviderBase(unittest.TestCase): def setUp(self): self.nulecule_base = Nulecule_Base(dryrun=True) self.tmpdir = tempfile.mkdtemp(prefix="atomicapp-test", dir="/tmp") self.plugin = Plugin() self.plugin.load_plugins() def tearDown(self): pass def create_temp_file(self): return tempfile.mktemp(prefix="test-config", dir=self.tmpdir) def prepare_provider(self, data): self.nulecule_base.loadAnswers(data) provider_class = self.plugin.getProvider(self.nulecule_base.provider) config = self.nulecule_base.getValues(skip_asking=True) provider = provider_class(config, self.tmpdir, dryrun=False) return provider @mock.patch.object(KubernetesProvider, '_call', mock_provider_call) def test_provider_config_exist(self): provider_config_path = self.create_temp_file() mock_content = "%s_%s" % (MOCK_CONTENT, "_unchanged") with open(provider_config_path, "w") as fp: fp.write(mock_content) data = { 'general': { 'namespace': 'testing', 'provider': 'kubernetes', 'providerconfig': provider_config_path } } provider = self.prepare_provider(data) self.assertEqual(provider.config_file, provider_config_path) provider.checkConfigFile() with open(provider_config_path, "r") as fp: self.assertEqual(fp.read(), mock_content) @mock.patch("kubernetes.KubernetesProvider._call", mock_provider_call) def test_provider_check_config_generation(self): path = self.create_temp_file() data = { 'general': { 'namespace': 'testing', 'provider': 'kubernetes', 'providerconfig': path } } provider = self.prepare_provider(data) provider.checkConfigFile() with open(path, "r") as fp: self.assertEqual(fp.read(), MOCK_CONTENT) def test_provider_check_config_fail(self): path = self.create_temp_file() data = {'general': {'namespace': 'testing', 'provider': 'openshift'}} provider = self.prepare_provider(data) self.assertRaises(ProviderFailedException, provider.checkConfigFile)
def setUp(self): self.nulecule_base = Nulecule_Base(dryrun = True) self.tmpdir = tempfile.mkdtemp(prefix = "atomicapp-test", dir = "/tmp") self.artifact_dir = os.path.dirname(__file__) + '/docker_artifact_test/' self.plugin = Plugin() self.plugin.load_plugins()