class ChronosTransformerTests(TestCase): """ Tests for the ChronosTransformer """ def setUp(self): self.file_name = './container_transform/tests/fixtures/chronos.json' self.transformer = ChronosTransformer(self.file_name) def test_validate(self): """ Test .validate() """ container = { 'image': 'ubuntu:16.04', 'cpu': 200, 'memory': 40, 'name': 'report_task' } validated = self.transformer.validate(container) self.assertEqual( validated['name'], 'report_task' ) def test_ingest_cpu(self): cpu = 0.5 self.assertEqual( self.transformer.ingest_cpu(cpu), 512 ) def test_emit_cpu(self): cpu = 512 self.assertEqual( self.transformer.emit_cpu(cpu), 0.5 ) def test_ingest_fetch(self): fetch = [ 'https://s3.amazonaws.com/bucket/item.json', 'hdfs://hdfs.marathon.mesos/path/item.json', ] self.assertEqual( self.transformer.ingest_fetch(fetch), [ {'uri': 'https://s3.amazonaws.com/bucket/item.json'}, {'uri': 'hdfs://hdfs.marathon.mesos/path/item.json'} ] ) def test_emit_fetch(self): fetch = [ {'uri': 'https://s3.amazonaws.com/bucket/item.json'}, {'uri': 'hdfs://hdfs.marathon.mesos/path/item.json'} ] self.assertEqual( self.transformer.emit_fetch(fetch), [ 'https://s3.amazonaws.com/bucket/item.json', 'hdfs://hdfs.marathon.mesos/path/item.json', ] ) def test_ingest_environment(self): environment = [ {'name': 'CT_INPUT_TYPE', 'value': 'compose'}, {'name': 'CT_OUTPUT_TYPE', 'value': 'chronos'}, ] self.assertEqual( self.transformer.ingest_environment(environment), { 'CT_INPUT_TYPE': 'compose', 'CT_OUTPUT_TYPE': 'chronos', } ) def test_ingest_secrets(self): secrets = [] self.assertEqual( self.transformer.ingest_secrets(secrets), None ) def test_emit_secrets(self): secrets = [] self.assertEqual( self.transformer.emit_secrets(secrets), None ) def test_emit_environment(self): environment = { 'CT_INPUT_TYPE': 'compose', 'CT_OUTPUT_TYPE': 'chronos', } self.assertEqual( self.transformer.emit_environment(environment), [ {'name': 'CT_INPUT_TYPE', 'value': 'compose'}, {'name': 'CT_OUTPUT_TYPE', 'value': 'chronos'}, ] ) def test_emit_port_mapping(self): mappings = [ {'container_port': 5432, 'host_port': 5432}, {'container_port': 3000}, {'container_port': 53, 'protocol': 'udp'}, ] self.assertEqual( self.transformer.emit_port_mappings(mappings), [ {'key': 'publish', 'value': '5432:5432'}, {'key': 'publish', 'value': '3000'}, {'key': 'publish', 'value': '53/udp'}, ] )
class ChronosTransformerTests(TestCase): """ Tests for the ChronosTransformer """ def setUp(self): self.file_name = './container_transform/tests/fixtures/chronos.json' self.transformer = ChronosTransformer(self.file_name) def test_validate(self): """ Test .validate() """ container = { 'image': 'ubuntu:16.04', 'cpu': 200, 'memory': 40, 'name': 'report_task' } validated = self.transformer.validate(container) self.assertEqual( validated['name'], 'report_task' ) def test_ingest_cpu(self): cpu = 0.5 self.assertEqual( self.transformer.ingest_cpu(cpu), 512 ) def test_emit_cpu(self): cpu = 512 self.assertEqual( self.transformer.emit_cpu(cpu), 0.5 ) def test_ingest_fetch(self): fetch = [ 'https://s3.amazonaws.com/bucket/item.json', 'hdfs://hdfs.marathon.mesos/path/item.json', ] self.assertEqual( self.transformer.ingest_fetch(fetch), [ {'uri': 'https://s3.amazonaws.com/bucket/item.json'}, {'uri': 'hdfs://hdfs.marathon.mesos/path/item.json'} ] ) def test_emit_fetch(self): fetch = [ {'uri': 'https://s3.amazonaws.com/bucket/item.json'}, {'uri': 'hdfs://hdfs.marathon.mesos/path/item.json'} ] self.assertEqual( self.transformer.emit_fetch(fetch), [ 'https://s3.amazonaws.com/bucket/item.json', 'hdfs://hdfs.marathon.mesos/path/item.json', ] ) def test_ingest_environment(self): environment = [ {'name': 'CT_INPUT_TYPE', 'value': 'compose'}, {'name': 'CT_OUTPUT_TYPE', 'value': 'chronos'}, ] self.assertEqual( self.transformer.ingest_environment(environment), { 'CT_INPUT_TYPE': 'compose', 'CT_OUTPUT_TYPE': 'chronos', } ) def test_emit_environment(self): environment = { 'CT_INPUT_TYPE': 'compose', 'CT_OUTPUT_TYPE': 'chronos', } self.assertEqual( self.transformer.emit_environment(environment), [ {'name': 'CT_INPUT_TYPE', 'value': 'compose'}, {'name': 'CT_OUTPUT_TYPE', 'value': 'chronos'}, ] ) def test_emit_port_mapping(self): mappings = [ {'container_port': 5432, 'host_port': 5432}, {'container_port': 3000}, {'container_port': 53, 'protocol': 'udp'}, ] self.assertEqual( self.transformer.emit_port_mappings(mappings), [ {'key': 'publish', 'value': '5432:5432'}, {'key': 'publish', 'value': '3000'}, {'key': 'publish', 'value': '53/udp'}, ] )
def setUp(self): self.file_name = './container_transform/tests/fixtures/chronos.json' self.transformer = ChronosTransformer(self.file_name)