[Libosinfo] [osinfo-db PATCH] Makefile: Do not remove xmllint check when building on older OSes
Cole Robinson
crobinso at redhat.com
Wed Mar 20 15:40:48 UTC 2019
On 3/19/19 12:09 PM, Fabiano Fidêncio wrote:
> Let's not remove the lint target as it can still be used by older OSes
> which do not support python3.
>
> Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
> ---
> Makefile | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index 0000306..5d904ff 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -32,6 +32,8 @@ ARCHIVE = osinfo-db-$(TODAY).tar.xz
>
> ZANATA = zanata
>
> +XMLLINT = xmllint
> +
> PYTHON = python3
>
> V = 0
> @@ -120,6 +122,16 @@ update-po:
> fi; \
> done
>
> +lint: $(DATA_FILES) $(SCHEMA_FILES)
> + @command -v $(PYTHON) > /dev/null; \
> + if [ $$? -ne 0 ] ; then \
> + for xml in `find data -name '*.xml' | sort`; do \
> + if ! $(XMLLINT) --relaxng data/schema/osinfo.rng --noout $$xml; then \
> + exit 1; \
> + fi; \
> + done \
> + fi
> +
> unit-tests: $(DATA_FILES) $(SCHEMA_FILES)
> @command -v $(PYTHON) > /dev/null; \
> if [ $$? -eq 0 ] ; then \
> @@ -131,4 +143,4 @@ unit-tests: $(DATA_FILES) $(SCHEMA_FILES)
> echo "unit-tests are not going to be executed as no $(PYTHON) has been found"; \
> fi
>
> -check: unit-tests
> +check: lint unit-tests
>
If this is just to appease rhel7/centos7 CI, I'd rather either;
- make the tests work on python2
- have CI pull down python3 packages from EPEL
- just not run the tests on centos7
On the code side, making the tests work on python2 is as simple as:
diff --git a/tests/osinfo.py b/tests/osinfo.py
index eb63724..02c8f7e 100644
--- a/tests/osinfo.py
+++ b/tests/osinfo.py
@@ -1,9 +1,13 @@
# This work is licensed under the GNU GPLv2 or later.
# See the COPYING file in the top-level directory.
-from http.client import responses
-import logging
import re
+import sys
+
+if sys.version_info[0] > 3:
+ from http.client import responses
+else:
+ from httplib import responses
import requests
However 'make check' isn't going to 'just work' in this case, because it
needs to differentiate using py.test (on centos7) vs pytest-3. And CI
will need to pull down all the python2 deps: python-requests,
libxml2-python, python-pytest. I also didn't test the network tests,
there might be issues lurking there.
I don't have a strong opinion one way or the other if it's worth it. But
re-adding this bit which will double run xml validation and drown out
the pytest results with the xmllint spam is not nice IMO
- Cole
More information about the Libosinfo
mailing list