From: cfalcon <cf...@ce...> - 2015-12-14 17:03:38
|
EvaluationAttributeNameValidator validates correctly the Evaluation Device URIs as evaluation attributes. e.g. eval:@Foo Fix the validator to not accept the '@' as part of the expression. Add some tests. --- lib/taurus/core/evaluation/evalvalidator.py | 2 +- lib/taurus/core/evaluation/test/test_evalvalidator.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/taurus/core/evaluation/evalvalidator.py b/lib/taurus/core/evaluation/evalvalidator.py index 328ebf6..c9bde9a 100644 --- a/lib/taurus/core/evaluation/evalvalidator.py +++ b/lib/taurus/core/evaluation/evalvalidator.py @@ -196,7 +196,7 @@ class EvaluationAttributeNameValidator(TaurusAttributeNameValidator): scheme = 'eval' authority = EvaluationAuthorityNameValidator.authority path = ((r'(?!//)/?(%s/)?' + - r'(?P<attrname>(?P<_subst>(%s;)+)?(?P<_expr>[^?#]+))') % + r'(?P<attrname>(?P<_subst>(%s;)+)?(?P<_expr>[^@?#]+))') % (EvaluationDeviceNameValidator.devname, K_EQUALS_V) ) query = '(?!)' diff --git a/lib/taurus/core/evaluation/test/test_evalvalidator.py b/lib/taurus/core/evaluation/test/test_evalvalidator.py index 1f460d0..7ea51fa 100644 --- a/lib/taurus/core/evaluation/test/test_evalvalidator.py +++ b/lib/taurus/core/evaluation/test/test_evalvalidator.py @@ -213,6 +213,8 @@ class EvaluationDevValidatorTestCase(AbstractNameValidatorTestCase, # @invalid(name='eval:1?configuration') # @invalid(name='eval:1?configuration=foo') +@invalid(name='eval:@foo') # invalid because is a device URI +@invalid(name='eval:{tango:a/b/c}') # invalid because is a device URI #=============================================================================== # -- 2.4.0 |