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_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_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 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_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 ))
class DockerInteractionTests(unittest.TestCase): def setUp(self): self.docker = Docker() self.docker.start() def tearDown(self): self.docker.stop() def test_create_files(self): self.docker.run('touch file1') self.docker.run('touch file2') self.assertEqual(self.docker.list_files(''), ['file1', 'file2']) def test_create_directories(self): self.docker.run('mkdir dir1') self.docker.run('mkdir dir1/test') self.docker.run('mkdir dir2') self.docker.run('mkdir dir3') self.assertEqual( self.docker.list_directories('', include_trailing_slash=False), ['dir1', 'dir2', 'dir3'] ) def test_create_and_list_files_in_sub_directory(self): self.docker.run('mkdir builds') self.docker.run('touch builds/readme.txt') self.assertEqual(self.docker.list_files('builds'), ['readme.txt']) def test_create_file_with_content(self): file_name = 'readme.txt' file_content = 'this is a test file' self.assertFalse(self.docker.file_exist(file_name)) self.docker.create_file(file_name, file_content) self.assertTrue(self.docker.file_exist(file_name)) def test_read_file_with_content(self): file_name = 'readme.txt' file_content = 'this is a test file {0}'.format(randint(5000, 5500)) self.docker.run('echo \"{0}\" > ~/{1}; cat readme.txt'.format(file_content, file_name)) self.assertEqual(self.docker.read_file(file_name), file_content) def test_read_file_that_dont_exist(self): self.assertIsNone(self.docker.read_file('no-file.txt')) def test_directory_exist(self): self.assertTrue(self.docker.directory_exist('~/')) self.assertFalse(self.docker.directory_exist('does-not-exist')) def test_file_exist(self): self.docker.run('touch file') self.assertTrue(self.docker.file_exist('file')) self.assertFalse(self.docker.file_exist('does-not-exist')) def test_combine_output(self): self.docker.combine_outputs = True result = self.docker.run('ls does-not-exist') self.assertEqual(result.err, '') self.assertEqual(result.out, 'ls: cannot access does-not-exist: No such file or directory') def test_privilege(self): Docker(privilege=True).start()
class DockerInteractionTests(unittest.TestCase): def setUp(self): self.docker = Docker() self.docker.start() def tearDown(self): self.docker.stop() def test_list_files(self): self.docker.run("mkdir /test/") self.docker.run('touch /test/file1') self.docker.run('touch /test/file2') self.assertEqual(set(self.docker.list_files('/test')), set(['file1', 'file2'])) def test_list_files_bad_path(self): path = '/bad/path' self.assertRaisesRegexp( DockerFileNotFoundError, 'Could not find the file or directory at path {0}'.format(path), self.docker.list_files, path ) def test_list_directories(self): self.docker.run('mkdir dir1') self.docker.run('mkdir dir1/test') self.docker.run('mkdir dir2') self.docker.run('mkdir dir3') self.assertEqual( set(self.docker.list_directories('', include_trailing_slash=False)), set(['dir1', 'dir2', 'dir3']) ) def test_list_directories_trailing_slash(self): self.docker.run('mkdir dir1') self.docker.run('mkdir dir1/test') self.docker.run('mkdir dir2') self.docker.run('mkdir dir3') self.assertEqual( set(self.docker.list_directories('', include_trailing_slash=True)), set(['dir1/', 'dir2/', 'dir3/']) ) def test_list_directories_bad_path(self): path = '/bad/path' self.assertRaisesRegexp( DockerFileNotFoundError, 'Could not find the file or directory at path {0}'.format(path), self.docker.list_directories, path ) def test_create_and_list_files_in_sub_directory(self): self.docker.run('mkdir /builds') self.docker.run('touch /builds/readme.txt') self.assertEqual(self.docker.list_files('/builds'), ['readme.txt']) def test_read_file_with_content(self): file_name = '/readme.txt' file_content = 'this is a test file {0}\n'.format(randint(5000, 5500)) self.docker.write_file(file_name, file_content) self.assertEqual(self.docker.read_file(file_name), file_content) def test_read_file_that_dont_exist(self): path = '/bad/path' self.assertRaisesRegexp( DockerFileNotFoundError, 'Could not find the file or directory at path {0}'.format(path), self.docker.read_file, path ) def test_read_file_eof_newline(self): path = '/etc/hostname' content = self.docker.read_file(path) self.assertTrue(content.endswith('\n')) def test_write_file_read_file(self): path = '/testfile' content = 'this is a nice file\n' self.docker.write_file(path, content) self.assertEqual(content, self.docker.read_file(path)) def test_directory_exist(self): self.assertTrue(self.docker.directory_exist('~/')) self.assertFalse(self.docker.directory_exist('does-not-exist')) def test_file_exist(self): self.docker.run('touch file') self.assertTrue(self.docker.file_exist('file')) self.assertFalse(self.docker.file_exist('does-not-exist')) def test_combine_output(self): self.docker.combine_outputs = True result = self.docker.run('ls does-not-exist') self.assertEqual(result.err, '') self.assertEqual(result.out, 'ls: cannot access does-not-exist: No such file or directory\n') def test_privilege(self): Docker(privilege=True).start() def test_write_file_append(self): path = '/readme.txt' old_content = 'hi\n' content = 'this is a readme\n' self.docker.run('echo "{0}" > {1}'.format(old_content, path)) self.docker.write_file(path, content, append=True) written_content = self.docker.read_file(path) self.assertEqual(written_content, '{0}\n{1}'.format(old_content, content)) def test_write_file_no_append(self): path = '/readme.txt' old_content = 'hi' content = 'this is a readme\n' self.docker.run('echo "{0}" > {1}'.format(old_content, path)) self.docker.write_file(path, content, append=False) written_content = self.docker.read_file(path) self.assertEqual(written_content, content) def test_write_file_quotes(self): path = '/readme.txt' content = 'this is a "readme"\n' self.docker.write_file(path, content, append=False) written_content = self.docker.read_file(path) self.assertEqual(written_content, content) def test_run_return_code(self): code = 4 path = 'testfile' content = 'exit {0}\n'.format(code) self.docker.write_file(path, content) result = self.docker.run('bash {0}'.format(path)) self.assertEqual(code, result.return_code)
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))
class DockerInteractionTests(unittest.TestCase): def setUp(self): self.docker = Docker() self.docker.start() def tearDown(self): self.docker.stop() def test_list_files(self): self.docker.run("mkdir /test/") self.docker.run('touch /test/file1') self.docker.run('touch /test/file2') self.assertEqual(set(self.docker.list_files('/test')), set(['file1', 'file2'])) def test_list_files_bad_path(self): path = '/bad/path' self.assertRaisesRegexp( DockerFileNotFoundError, 'Could not find the file or directory at path {0}'.format(path), self.docker.list_files, path) def test_list_directories(self): self.docker.run('mkdir dir1') self.docker.run('mkdir dir1/test') self.docker.run('mkdir dir2') self.docker.run('mkdir dir3') self.assertEqual( set(self.docker.list_directories('', include_trailing_slash=False)), set(['dir1', 'dir2', 'dir3'])) def test_list_directories_trailing_slash(self): self.docker.run('mkdir dir1') self.docker.run('mkdir dir1/test') self.docker.run('mkdir dir2') self.docker.run('mkdir dir3') self.assertEqual( set(self.docker.list_directories('', include_trailing_slash=True)), set(['dir1/', 'dir2/', 'dir3/'])) def test_list_directories_bad_path(self): path = '/bad/path' self.assertRaisesRegexp( DockerFileNotFoundError, 'Could not find the file or directory at path {0}'.format(path), self.docker.list_directories, path) def test_create_and_list_files_in_sub_directory(self): self.docker.run('mkdir /builds') self.docker.run('touch /builds/readme.txt') self.assertEqual(self.docker.list_files('/builds'), ['readme.txt']) def test_read_file_with_content(self): file_name = '/readme.txt' file_content = 'this is a test file {0}\n'.format(randint(5000, 5500)) self.docker.write_file(file_name, file_content) self.assertEqual(self.docker.read_file(file_name), file_content) def test_read_file_that_dont_exist(self): path = '/bad/path' self.assertRaisesRegexp( DockerFileNotFoundError, 'Could not find the file or directory at path {0}'.format(path), self.docker.read_file, path) def test_read_file_eof_newline(self): path = '/etc/hostname' content = self.docker.read_file(path) self.assertTrue(content.endswith('\n')) def test_write_file_read_file(self): path = '/testfile' content = 'this is a nice file\n' self.docker.write_file(path, content) self.assertEqual(content, self.docker.read_file(path)) def test_directory_exist(self): self.assertTrue(self.docker.directory_exist('~/')) self.assertFalse(self.docker.directory_exist('does-not-exist')) def test_file_exist(self): self.docker.run('touch file') self.assertTrue(self.docker.file_exist('file')) self.assertFalse(self.docker.file_exist('does-not-exist')) def test_combine_output(self): self.docker.combine_outputs = True result = self.docker.run('ls does-not-exist') self.assertEqual(result.err, '') self.assertEqual( result.out, 'ls: cannot access does-not-exist: No such file or directory\n') def test_privilege(self): Docker(privilege=True).start() def test_write_file_append(self): path = '/readme.txt' old_content = 'hi\n' content = 'this is a readme\n' self.docker.run('echo "{0}" > {1}'.format(old_content, path)) self.docker.write_file(path, content, append=True) written_content = self.docker.read_file(path) self.assertEqual(written_content, '{0}\n{1}'.format(old_content, content)) def test_write_file_no_append(self): path = '/readme.txt' old_content = 'hi' content = 'this is a readme\n' self.docker.run('echo "{0}" > {1}'.format(old_content, path)) self.docker.write_file(path, content, append=False) written_content = self.docker.read_file(path) self.assertEqual(written_content, content) def test_write_file_quotes(self): path = '/readme.txt' content = 'this is a "readme"\n' self.docker.write_file(path, content, append=False) written_content = self.docker.read_file(path) self.assertEqual(written_content, content) def test_run_return_code(self): code = 4 path = 'testfile' content = 'exit {0}\n'.format(code) self.docker.write_file(path, content) result = self.docker.run('bash {0}'.format(path)) self.assertEqual(code, result.return_code)