def test_merge_io_formats_wps_complements_cwl(): wps_fmt = [Format(CONTENT_TYPE_APP_JSON, encoding="utf-8")] cwl_fmt = [Format(CONTENT_TYPE_APP_JSON)] res_fmt = merge_io_formats(wps_fmt, cwl_fmt) assert isinstance(res_fmt, list) assert_formats_equal_any_order( res_fmt, [Format(CONTENT_TYPE_APP_JSON, encoding="utf-8")])
def test_merge_io_formats_no_wps(): wps_fmt = [] cwl_fmt = [DEFAULT_FORMAT] res_fmt = merge_io_formats(wps_fmt, cwl_fmt) assert isinstance(res_fmt, list) assert len(res_fmt) == 1 assert res_fmt[0] is DEFAULT_FORMAT
def test_merge_io_formats_both_wps_and_cwl(): wps_fmt = [Format(CONTENT_TYPE_APP_NETCDF)] cwl_fmt = [Format(CONTENT_TYPE_APP_JSON)] res_fmt = merge_io_formats(wps_fmt, cwl_fmt) assert isinstance(res_fmt, list) assert_formats_equal_any_order( res_fmt, [Format(CONTENT_TYPE_APP_NETCDF), Format(CONTENT_TYPE_APP_JSON)])
def test_merge_io_formats_wps_overlaps_cwl(): wps_fmt = [ Format(ContentType.APP_JSON, encoding="utf-8"), # complements CWL details Format(ContentType.APP_NETCDF), # duplicated in CWL (but different index) Format(ContentType.TEXT_PLAIN) # extra (but not default) ] cwl_fmt = [ Format(ContentType.APP_JSON), # overridden by WPS version Format(ContentType.APP_XML), # extra preserved Format(ContentType.APP_NETCDF), # duplicated with WPS, merged ] res_fmt = merge_io_formats(wps_fmt, cwl_fmt) assert isinstance(res_fmt, list) assert_formats_equal_any_order(res_fmt, [ Format(ContentType.APP_JSON, encoding="utf-8"), Format(ContentType.APP_NETCDF), Format(ContentType.APP_XML), Format(ContentType.TEXT_PLAIN), ])
def test_merge_io_formats_with_wps_and_default_cwl(): wps_fmt = [Format(ContentType.APP_NETCDF)] cwl_fmt = [DEFAULT_FORMAT] res_fmt = merge_io_formats(wps_fmt, cwl_fmt) assert isinstance(res_fmt, list) assert_formats_equal_any_order(res_fmt, [Format(ContentType.APP_NETCDF)])