def test_optional_typed_array(self): optional_array_string_type = "string[]?" q = parse_type(optional_array_string_type) self.assertIsInstance(q, list) self.assertEqual(len(q), 2) null_idx = q.index(CwlTypes.DEF_TYPE) array_type = q[1 - null_idx] self.assertIsInstance(array_type, CommandInputArraySchema) self.assertEqual(array_type.items, "string")
def test_intentional_fail_not_string(self): try: parse_type({}, requires_type=True) self.fail("Failed to throw exception") except: self.assertTrue(True)
def test_intentional_fail(self): try: parse_type("not_a_type", requires_type=True) self.fail("Failed to throw exception") except Exception as e: self.assertTrue(True)
def test_parse_list_of_items(self): t = ["string", "int"] types = parse_type(t) self.assertListEqual(t, types)
def test_types(self): for cwl_type in CwlTypes.NON_NULL_TYPES: self.assertEqual(parse_type(cwl_type), cwl_type)
def test_optional_type_input_array_schema(self): ar = CommandInputArraySchema(items="string?") self.assertIsInstance(ar, CommandInputArraySchema) self.assertEqual(parse_type(ar), ar) self.assertEqual(ar.items, "string?")
def test_optionally_typed_array(self): array_string_type = "string?[]" q = parse_type(array_string_type) self.assertIsInstance(q, CommandInputArraySchema) self.assertEqual(q.items, "string?")
def test_incorrectly_typed_array(self): array_string_type = "invalid[]" q = parse_type(array_string_type) self.assertIsInstance(q, CommandInputArraySchema) self.assertNotEqual(q.items, "invalid") self.assertEqual(q.items, CwlTypes.DEF_TYPE)
def test_optional_string(self): for cwl_type in CwlTypes.NON_NULL_TYPES: optional_type = cwl_type + "?" self.assertEqual(parse_type(optional_type), optional_type)
def test_incorrect_type(self): invalid_type = "invalid" should_be_def_type = parse_type(invalid_type) self.assertNotEqual(should_be_def_type, invalid_type) self.assertEqual(should_be_def_type, CwlTypes.DEF_TYPE)