def testContainerWithoutWorkingDir(self): yaml_code = """ - name: abc123 image: foo/bar """ x = run_containers.LoadUserContainers(yaml.load(yaml_code), []) self.assertIsNone(x[0].working_dir)
def testContainerValidFull(self): yaml_code = """ - name: abc123 image: foo/bar command: - one - two workingDir: /tmp ports: - name: port1 hostPort: 111 containerPort: 2222 protocol: UDP volumeMounts: - name: vol1 path: /mnt readOnly: true env: - key: KEY value: value str """ x = run_containers.LoadUserContainers(yaml.load(yaml_code), ['vol1']) self.assertEqual(1, len(x)) self.assertEqual('abc123', x[0].name) self.assertEqual('foo/bar', x[0].image) self.assertEqual(['one', 'two'], x[0].command) self.assertEqual('/tmp', x[0].working_dir) self.assertEqual((111, 2222, '/udp'), x[0].ports[0]) self.assertEqual('/export/vol1:/mnt:ro', x[0].mounts[0]) self.assertEqual('KEY=value str', x[0].env_vars[0])
def testContainerWithoutEnv(self): yaml_code = """ - name: abc123 image: foo/bar """ x = run_containers.LoadUserContainers(yaml.load(yaml_code), []) self.assertEqual(0, len(x[0].env_vars))
def testContainerNoImage(self): yaml_code = """ - name: abc123 notimage: foo/bar """ with self.assertRaises(SystemExit): run_containers.LoadUserContainers(yaml.load(yaml_code), [])
def testContainerInvalidName(self): yaml_code = """ - name: not_good image: foo/bar """ with self.assertRaises(SystemExit): run_containers.LoadUserContainers(yaml.load(yaml_code), [])
def testContainerWorkingDirNotAbsolute(self): yaml_code = """ - name: abc123 image: foo/bar workingDir: foo/bar """ with self.assertRaises(SystemExit): run_containers.LoadUserContainers(yaml.load(yaml_code), [])
def testContainerWithWorkingDir(self): yaml_code = """ - name: abc123 image: foo/bar workingDir: /foo/bar """ x = run_containers.LoadUserContainers(yaml.load(yaml_code), []) self.assertEqual('/foo/bar', x[0].working_dir)
def testContainerWithoutCommand(self): yaml_code = """ - name: abc123 image: foo/bar """ x = run_containers.LoadUserContainers(yaml.load(yaml_code), []) self.assertEqual(1, len(x)) self.assertEqual(0, len(x[0].command))
def testContainerWithCommand(self): yaml_code = """ - name: abc123 image: foo/bar command: - first - second - third fourth """ x = run_containers.LoadUserContainers(yaml.load(yaml_code), []) self.assertEqual(1, len(x)) self.assertEqual(3, len(x[0].command))
def testContainerValidMinimal(self): yaml_code = """ - name: abc123 image: foo/bar - name: abc124 image: foo/bar """ user = run_containers.LoadUserContainers(yaml.load(yaml_code), []) self.assertEqual(2, len(user)) self.assertEqual('abc123', user[0].name) self.assertEqual('abc124', user[1].name) infra = run_containers.LoadInfraContainers(user) self.assertEqual(1, len(infra)) self.assertEqual('.net', infra[0].name)
def testContainerValidFullJson(self): """Proves that the same YAML parsing code handles JSON.""" json_code = """ [ { "name": "abc123", "image": "foo/bar", "command": [ "one", "two" ], "workingDir": "/tmp", "ports": [ { "name": "port1", "hostPort": 111, "containerPort": 2222, "protocol": "UDP" } ], "volumeMounts": [ { "name": "vol1", "path": "/mnt", "readOnly": true } ], "env": [ { "key": "KEY", "value": "value str" } ] } ] """ x = run_containers.LoadUserContainers(yaml.load(json_code), ['vol1']) self.assertEqual(1, len(x)) self.assertEqual('abc123', x[0].name) self.assertEqual('foo/bar', x[0].image) self.assertEqual(['one', 'two'], x[0].command) self.assertEqual('/tmp', x[0].working_dir) self.assertEqual((111, 2222, '/udp'), x[0].ports[0]) self.assertEqual('/export/vol1:/mnt:ro', x[0].mounts[0]) self.assertEqual('KEY=value str', x[0].env_vars[0])