Esempio n. 1
0
 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
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)'
Esempio n. 5
0
 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
Esempio n. 6
0
 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
Esempio n. 7
0
 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