Mercurial > repos > guerler > springsuite
comparison planemo/lib/python3.7/site-packages/cwltool/tests/test_validate_js.py @ 0:d30785e31577 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
| author | guerler |
|---|---|
| date | Fri, 31 Jul 2020 00:18:57 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:d30785e31577 |
|---|---|
| 1 from ruamel import yaml | |
| 2 | |
| 3 from cwltool import process | |
| 4 from cwltool.sandboxjs import code_fragment_to_js | |
| 5 from cwltool import validate_js | |
| 6 | |
| 7 TEST_CWL = """ | |
| 8 cwlVersion: v1.0 | |
| 9 class: CommandLineTool | |
| 10 baseCommand: echo | |
| 11 | |
| 12 requirements: | |
| 13 - class: InlineJavascriptRequirement | |
| 14 inputs: | |
| 15 - id: parameter | |
| 16 inputBinding: | |
| 17 valueFrom: string before $(kjdbfkjd) string after | |
| 18 type: string? | |
| 19 | |
| 20 outputs: [] | |
| 21 """ | |
| 22 | |
| 23 def test_get_expressions(): | |
| 24 test_cwl_yaml = yaml.round_trip_load(TEST_CWL) | |
| 25 schema = process.get_schema("v1.0")[1].names["CommandLineTool"] | |
| 26 | |
| 27 exprs = validate_js.get_expressions(test_cwl_yaml, schema) | |
| 28 | |
| 29 assert len(exprs) == 1 | |
| 30 | |
| 31 | |
| 32 def test_validate_js_expressions(mocker): | |
| 33 test_cwl_yaml = yaml.round_trip_load(TEST_CWL) | |
| 34 schema = process.get_schema("v1.0")[1].names["CommandLineTool"] | |
| 35 | |
| 36 mocker.patch("cwltool.validate_js.print_js_hint_messages") | |
| 37 validate_js.validate_js_expressions(test_cwl_yaml, schema) | |
| 38 | |
| 39 assert validate_js.print_js_hint_messages.call_args is not None | |
| 40 assert len(validate_js.print_js_hint_messages.call_args[0]) > 0 | |
| 41 | |
| 42 def test_js_hint_basic(): | |
| 43 result = validate_js.jshint_js(""" | |
| 44 function funcName(){ | |
| 45 } | |
| 46 """, []) | |
| 47 | |
| 48 assert result.errors == [] | |
| 49 assert result.globals == ["funcName"] | |
| 50 | |
| 51 def test_js_hint_reports_invalid_js(): | |
| 52 assert len(validate_js.jshint_js("<INVALID JS>").errors) > 1 | |
| 53 | |
| 54 def test_js_hint_warn_on_es6(): | |
| 55 assert len(validate_js.jshint_js(code_fragment_to_js("((() => 4)())"), []).errors) == 1 | |
| 56 | |
| 57 def test_js_hint_error_on_undefined_name(): | |
| 58 assert len(validate_js.jshint_js(code_fragment_to_js("undefined_name()")).errors) == 1 | |
| 59 | |
| 60 def test_js_hint_set_defined_name(): | |
| 61 assert len(validate_js.jshint_js(code_fragment_to_js("defined_name()"), ["defined_name"]).errors) == 0 |
