From ce151a4454c14db31b8e1a7f5dc5f3726493d731 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Mon, 24 Aug 2020 11:13:01 -0400 Subject: [PATCH] Package rules specification. It is used in many different places. --- client/tests/mocha/tests/rules_dsl_spec.yml | 2 +- lib/galaxy/util/rules_dsl.py | 6 ++++++ .../base/data => galaxy/util}/rules_dsl_spec.yml | 0 lib/galaxy_test/base/rules_test_data.py | 6 ------ packages/util/MANIFEST.in | 1 + test/unit/{ => util}/test_rule_utils.py | 5 +---- 6 files changed, 9 insertions(+), 11 deletions(-) rename lib/{galaxy_test/base/data => galaxy/util}/rules_dsl_spec.yml (100%) rename test/unit/{ => util}/test_rule_utils.py (92%) diff --git a/client/tests/mocha/tests/rules_dsl_spec.yml b/client/tests/mocha/tests/rules_dsl_spec.yml index 539495f6d64..b118a6d8df2 120000 --- a/client/tests/mocha/tests/rules_dsl_spec.yml +++ b/client/tests/mocha/tests/rules_dsl_spec.yml @@ -1 +1 @@ -../../../../lib/galaxy_test/base/data/rules_dsl_spec.yml \ No newline at end of file +../../../../lib/galaxy/util/rules_dsl_spec.yml \ No newline at end of file diff --git a/lib/galaxy/util/rules_dsl.py b/lib/galaxy/util/rules_dsl.py index 268be93d837..df5bcc3822e 100644 --- a/lib/galaxy/util/rules_dsl.py +++ b/lib/galaxy/util/rules_dsl.py @@ -2,10 +2,16 @@ import abc import itertools import re +import yaml +from pkg_resources import resource_stream from galaxy.util import strip_control_characters_nested +def get_rules_specification(): + return yaml.safe_load(resource_stream(__name__, 'rules_dsl_spec.yml')) + + def _ensure_rule_contains_keys(rule, keys): for key, instance_class in keys.items(): if key not in rule: diff --git a/lib/galaxy_test/base/data/rules_dsl_spec.yml b/lib/galaxy/util/rules_dsl_spec.yml similarity index 100% rename from lib/galaxy_test/base/data/rules_dsl_spec.yml rename to lib/galaxy/util/rules_dsl_spec.yml diff --git a/lib/galaxy_test/base/rules_test_data.py b/lib/galaxy_test/base/rules_test_data.py index 9d4a47b1c38..1cda1d15dcd 100644 --- a/lib/galaxy_test/base/rules_test_data.py +++ b/lib/galaxy_test/base/rules_test_data.py @@ -1,9 +1,3 @@ -# Common test data for rule testing meant to be shared between API and Selenium tests. -from pkg_resources import resource_string - -from galaxy.util import unicodify - -RULES_DSL_SPEC_STR = unicodify(resource_string(__name__, "data/rules_dsl_spec.yml")) def check_example_1(hdca, dataset_populator): diff --git a/packages/util/MANIFEST.in b/packages/util/MANIFEST.in index a3dd4013351..6332084c38c 100644 --- a/packages/util/MANIFEST.in +++ b/packages/util/MANIFEST.in @@ -1,3 +1,4 @@ include *.rst LICENSE include galaxy/util/docutils_template.txt +include galaxy/util/rules_dsl_spec.yml include galaxy/exceptions/error_codes.json diff --git a/test/unit/test_rule_utils.py b/test/unit/util/test_rule_utils.py similarity index 92% rename from test/unit/test_rule_utils.py rename to test/unit/util/test_rule_utils.py index b92b2c8ba49..2ada1858aa0 100644 --- a/test/unit/test_rule_utils.py +++ b/test/unit/util/test_rule_utils.py @@ -1,11 +1,8 @@ -import yaml - from galaxy.util import rules_dsl -from galaxy_test.base import rules_test_data def test_rules(): - for test_case in yaml.safe_load(rules_test_data.RULES_DSL_SPEC_STR): + for test_case in rules_dsl.get_rules_specification(): rule_set = rules_dsl.RuleSet(test_case) if "initial" in test_case: initial = test_case["initial"]