def test_with_statement_exception(self, mock_start, mock_stop): if six.PY3: with self.assertRaisesRegex(RuntimeError, 'something crazy happened'): with Docker(): raise RuntimeError('something crazy happened') else: with self.assertRaises(RuntimeError): with Docker(): raise RuntimeError('something crazy happened') mock_start.assert_called_once_with() mock_stop.assert_called_once_with()
def test_list_directories_unknown_error(self, mock_run, mock_execute): docker = Docker() docker.start() path = 'path' self.assertRaisesRegexp(DockerWrapperBaseError, unknown_error_result.err, docker.list_directories, path)
def test_read_file_unknown_error(self, mock_run, mock_execute, mock_cp): docker = Docker() docker.start() path = 'test-file' self.assertRaisesRegexp(DockerWrapperBaseError, unknown_error_result.err, docker.read_file, path)
def test_quotation_mark_handling(self, mock_run): docker = Docker() docker.run('echo "hi there"', login=True, tty=True) docker.run("echo 'hi there'", login=True, tty=True) expected = ( 'docker exec -i -t {} bash --login -c \'cd ~/ && echo "hi there"\'' .format(docker.container_name), '') mock_run.assert_has_calls([mock.call(*expected), mock.call(*expected)])
def test_multiple_port_mapppings(self, mock_run): ports = ["4080:4080", "8080:8080", "4443:4443"] docker = Docker(ports_mapping=ports) docker.start() mock_run.assert_called_once_with( 'docker run -d {0} --name {1} {2} /bin/sleep {3}'.format( ' '.join( ["-p {0}".format(port_mapping) for port_mapping in ports]), docker.container_name, docker.image, docker.timeout))
def main(repo): """ Tests the Dockerfile. Builds it and clones the repository passed to the repo arguments and runs frigg-runner inside the cloned folder. """ print(subprocess.call(['docker', 'build', '-t', 'test-base', '.'])) with Docker('test-base') as docker: print(docker.run('git clone {repo} cloned'.format(repo=repo)).out) print(docker.run('pip install frigg-runner').out) print(docker.run('frigg', working_directory='cloned').out)
def test_single_port_mappping(self, mock_run): docker = Docker(ports_mapping=['4080:4080']) docker.start() mock_run.assert_called_once_with( 'docker run -d -p 4080:4080 --name {0} {1} /bin/sleep {2}'.format( docker.container_name, docker.image, docker.timeout))
def test_no_login(self, mock_run): docker = Docker() docker.run('ls', login=False) mock_run.assert_called_once_with( 'docker exec -i {} bash -c \'cd ~/ && ls\''.format( docker.container_name), '')
def test_env_variables(self, mock_run): docker = Docker(env_variables={'CI': 1, 'FRIGG': 1}) docker.run('ls', login=True) mock_run.assert_called_once_with( 'docker exec -i {0} bash --login -c \'cd ~/ && CI=1 FRIGG=1 ls\''. format(docker.container_name), '')
def test_with_statement(self, mock_start, mock_stop): with Docker() as docker: self.assertIsNotNone(docker) mock_start.assert_called_once_with() mock_stop.assert_called_once_with()
def test_privilege(self): Docker(privilege=True).start()
def setUp(self): self.docker = Docker() self.docker.start()