diff options
| author | Terry Wilson <twilson@redhat.com> | 2018-10-09 11:31:32 -0500 |
|---|---|---|
| committer | Ben Pfaff <blp@ovn.org> | 2018-10-11 15:00:46 -0700 |
| commit | a7be68a4d77791bbe02c37f7ad8ae60b02e5679e (patch) | |
| tree | 07aa0cbcbcffa7f7a80905d20c627481b768d244 /python/ovs | |
| parent | 39cc92aa651e209e246d6e1547662ba0cafb9f1d (diff) | |
| download | openvswitch-a7be68a4d77791bbe02c37f7ad8ae60b02e5679e.tar.gz | |
Test the Python C JSON extension
The C JSON parser was added quite a while ago, but unless you
configure with --enable-shared and have the Python 2/3 development
libraries installed, and the resulting python-ovs module installed,
'make check' won't actually test it.
This patch changes Python-based tests to run from the
$builddir/python directory and makes the tests configurable to use
both JSON backends. There are some unicode failures in the C JSON
extension that I left unfixed in this patch to make it easy to
show run the new tests on broken code. The next patch in this set
works around the issue.
Signed-off-by: Terry Wilson <twilson@redhat.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
Acked-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
Diffstat (limited to 'python/ovs')
| -rw-r--r-- | python/ovs/json.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/python/ovs/json.py b/python/ovs/json.py index e84063fc2..f06204e44 100644 --- a/python/ovs/json.py +++ b/python/ovs/json.py @@ -21,10 +21,13 @@ import sys import six +PARSER_C = 'C' +PARSER_PY = 'PYTHON' try: import ovs._json + PARSER = PARSER_C except ImportError: - pass + PARSER = PARSER_PY __pychecker__ = 'no-stringiter' @@ -91,10 +94,9 @@ class Parser(object): MAX_HEIGHT = 1000 def __new__(cls, *args, **kwargs): - try: + if PARSER == PARSER_C: return ovs._json.Parser(*args, **kwargs) - except NameError: - return super(Parser, cls).__new__(cls) + return super(Parser, cls).__new__(cls) def __init__(self, check_trailer=False): self.check_trailer = check_trailer |
