def test_can_provision_some_specific_containers_of_a_project(self): homedir = os.path.join(FIXTURE_ROOT, 'project03') container_options = { 'name': self.containername('thisisatest'), 'image': 'alpine/3.10', 'mode': 'pull', 'provisioning': [{ 'type': 'ansible', 'playbook': os.path.join(THIS_DIR, 'fixtures/provision_with_ansible.yml'), }], } project = Project('project02', homedir, self.client, [ Container('myproject', THIS_DIR, self.client, ** container_options) ], provisioning_steps=[]) project.up(provisioning_mode=constants.ProvisioningMode.DISABLED) project.provision(container_names=['lxdock-pytest-thisisatest']) container_web = project.get_container_by_name( 'lxdock-pytest-thisisatest') assert container_web.is_provisioned
def test_can_open_a_shell_for_a_specific_container(self, mocked_call, persistent_container): homedir = os.path.join(FIXTURE_ROOT, 'project03') project = Project('project02', homedir, self.client, [persistent_container, ], []) project.shell(container_name='testcase-persistent') assert mocked_call.call_count == 1 assert mocked_call.call_args[0][0] == \ 'lxc exec {} -- su -l root'.format(persistent_container.lxd_name)
def test_can_run_shell_command_for_a_specific_container( self, mocked_call, persistent_container): homedir = os.path.join(FIXTURE_ROOT, 'project03') project = Project('project02', homedir, self.client, [persistent_container, ], []) project.shell(container_name='testcase-persistent', command='echo "HELLO"') assert mocked_call.call_count == 1 assert mocked_call.call_args[0][0] == \ "lxc exec {} -- su -l root -s {}".format( persistent_container.lxd_name, persistent_container._guest_shell_script_file)
def test_can_return_the_statuses_of_containers(self, mock_info, persistent_container): homedir = os.path.join(FIXTURE_ROOT, 'project03') project = Project('project02', homedir, self.client, [ persistent_container, ], []) project.status(container_names=['testcase-persistent']) assert mock_info.call_count == 2 assert mock_info.call_args[0][ 0] == 'testcase-persistent (running)'
def test_can_destroy_all_the_containers_of_a_project(self): homedir = os.path.join(FIXTURE_ROOT, 'project03') container_options = { 'name': self.containername('dummytest'), 'image': 'alpine/3.6', } project = Project( 'project02', homedir, self.client, [Container('myproject', THIS_DIR, self.client, **container_options)], provisioning_steps=[]) project.up() project.destroy() for container in project.containers: assert not container.exists
def test_can_provision_all_the_containers_of_a_project(self): homedir = os.path.join(FIXTURE_ROOT, 'project03') container_options = { 'name': self.containername('dummytest'), 'image': 'alpine/3.6', 'mode': 'pull', } provisioning_steps = [ {'type': 'ansible', 'playbook': os.path.join(THIS_DIR, 'fixtures/provision_with_ansible.yml'), } ] project = Project( 'project02', homedir, self.client, [Container('myproject', THIS_DIR, self.client, **container_options)], provisioning_steps=provisioning_steps) project.up() # implicit provisioning for container in project.containers: assert container.is_provisioned
def test_can_destroy_all_the_containers_of_a_project(self): homedir = os.path.join(FIXTURE_ROOT, 'project03') container_options = { 'name': self.containername('dummytest'), 'image': 'ubuntu/xenial', 'mode': 'pull', 'provisioning': [ {'type': 'ansible', 'playbook': os.path.join(THIS_DIR, 'fixtures/provision_with_ansible.yml'), } ], } project = Project( 'project02', homedir, self.client, [Container('myproject', THIS_DIR, self.client, **container_options)]) project.up() project.destroy() for container in project.containers: assert not container.exists