コード例 #1
0
 def test_add_bash_command(self):
     """Test Docker add bash command"""
     docker_instance = Docker()
     tmp = list()
     tmp.append("echo 'hello, world!'")
     docker_instance.add_bash_command("echo 'hello, world!'")
     self.assertEqual(docker_instance.bash_cmds, tmp)
コード例 #2
0
 def test_logger_output(self):
     """Test the log file output"""
     docker_instance = Docker()
     docker_instance.pull('gentoo', 'stage3-amd64')
     docker_instance.add_bash_command("echo Log Text!")
     docker_instance.run()
     self.assertEqual(docker_instance.log, "Log Text!\n")
コード例 #3
0
 def test_map_dir(self):
     """Test Docker mount directory map"""
     docker_instance = Docker()
     docker_instance.map_directory('/tmp/host', '/tmp/container')
     tmp = dict()
     tmp['/tmp/host'] = dict()
     tmp['/tmp/host']['bind'] = '/tmp/container'
     tmp['/tmp/host']['mode'] = 'rw'
     self.assertEqual(docker_instance.directory_map, tmp)
     docker_instance = Docker()
     docker_instance.map_directory('/tmp/host')
     tmp = dict()
     tmp['/tmp/host'] = dict()
     tmp['/tmp/host']['bind'] = '/tmp/host'
     tmp['/tmp/host']['mode'] = 'rw'
     self.assertEqual(docker_instance.directory_map, tmp)
コード例 #4
0
 def regenerate_manifests(
     self, regen_dict, image_owner='allenh1', image_name='ros_gentoo_base'
 ):
     info(
         "Pulling docker image '%s/%s:latest'..." % (
             image_owner, image_name
         )
     )
     dock = Docker()
     dock.pull(image_owner, image_name)
     info('Running docker image...')
     info('Generating manifests...')
     dock.map_directory(
         '/home/%s/.gnupg' % os.getenv('USER'),
         '/root/.gnupg'
     )
     dock.map_directory(self.repo.repo_dir, '/tmp/ros-overlay')
     for key in regen_dict.keys():
         for pkg in regen_dict[key]:
             pkg_dir = '/tmp/ros-overlay/ros-{0}/{1}'.format(key, pkg)
             dock.add_bash_command('cd {0}'.format(pkg_dir))
             dock.add_bash_command('repoman manifest')
     try:
         dock.run(show_cmd=True)
     except docker.errors.ContainerError:
         print(dock.log)
         raise
コード例 #5
0
ファイル: test.py プロジェクト: h0wser/p2os
def set_up_container():
    d = Docker()
    curr = os.getcwd()
    try:
        d.pull('allenh1', 'asw_test_env')
    except:
        d.build(os.path.realpath("../docker/Dockerfile"))
    info("Using repo in directory '%s'" % os.path.realpath(".."))
    d.map_directory(os.path.realpath(".."), repo_location)
    return d
コード例 #6
0
 def test_get_command(self):
     """Test the get_command function"""
     docker_instance = Docker()
     docker_instance.add_bash_command("echo Hello, docker")
     docker_instance.add_bash_command("echo command two.")
     # get command string
     ret = docker_instance.get_command()
     self.assertEqual(ret,
                      "bash -c 'echo Hello, docker && echo command two.'")
     # get command string with logging directory.
     ret = docker_instance.get_command('/root', 'log.txt')
     expected = "bash -c 'echo Hello, docker &>> /root/log.txt "\
                "&& echo command two. &>> /root/log.txt'"
     self.assertEqual(expected, ret)
コード例 #7
0
 def regenerate_manifests(self, regen_dict):
     info('Building docker image...')
     docker_file = resource_filename('repoman_docker', 'Dockerfile')
     dock = Docker(docker_file, 'gentoo_repoman')
     dock.build()
     info('Running docker image...')
     info('Generating manifests...')
     dock.map_directory('/home/%s/.gnupg' % os.getenv('USER'),
                        '/root/.gnupg')
     dock.map_directory(self.repo.repo_dir, '/tmp/ros-overlay')
     for key in regen_dict.keys():
         for pkg in regen_dict[key]:
             pkg_dir = '/tmp/ros-overlay/ros-{0}/{1}'.format(key, pkg)
             dock.add_bash_command('cd {0}'.format(pkg_dir))
             dock.add_bash_command('repoman manifest')
             dock.add_bash_command('cd /tmp/ros-overlay')
     dock.run(show_cmd=True)
コード例 #8
0
 def test_pull(self):
     """Test Docker pull"""
     docker_instance = Docker()
     docker_instance.pull('allenh1', 'ros_gentoo_base')
     docker_instance.add_bash_command("echo Hello, Gentoo")
     docker_instance.run()
コード例 #9
0
 def test_run(self):
     """Test Docker run"""
     docker_instance = Docker()
     docker_instance.build('tests/docker/Dockerfile')
     docker_instance.add_bash_command("echo Hello, docker")
     docker_instance.run()
コード例 #10
0
 def test_build(self):
     """Test Docker build"""
     docker_instance = Docker()
     with self.assertRaises(NoDockerfileSupplied):
         docker_instance.build('Dockerfile')
     docker_instance.build('tests/docker/Dockerfile')
コード例 #11
0
 def test_init(self):
     """Test Docker __init__"""
     docker_instance = Docker()
     self.assertTrue(docker_instance.client)
     self.assertEqual(docker_instance.image, None)
     self.assertEqual(docker_instance.directory_map, dict())
コード例 #12
0
 def __init__(self, image_owner='allenh1', image_name='ros_gentoo_base'):
     self.container = Docker()
     self.container.pull(image_owner, image_name)
     self.package_list = dict()