24589822 deliver httplib2 for Python 3.x
authorDanek Duvall <danek.duvall@oracle.com>
Thu, 08 Sep 2016 17:47:13 -0700
changeset 6910 93182fb9923a
parent 6909 6f3076f8d9bf
child 6911 7b878dfe6f0d
24589822 deliver httplib2 for Python 3.x
components/python/httplib2/Makefile
components/python/httplib2/httplib2-PYVER.p5m
components/python/pyrabbit/Makefile
--- a/components/python/httplib2/Makefile	Thu Sep 15 09:58:49 2016 -0700
+++ b/components/python/httplib2/Makefile	Thu Sep 08 17:47:13 2016 -0700
@@ -36,18 +36,22 @@
 
 TPNO=			29114
 
-# Depends on SocksiPy; for Python 2.x, the module is part of httplib2, but
-# for Python 3.x, it is separate.  Once we add this module, httplib2 will
-# most likely work with Python 3.
-PYTHON_VERSIONS=	$(PYTHON2_VERSIONS)
-
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
-COMPONENT_TEST_DIR =	$(SOURCE_DIR)/python2
+# Set up the tests for running with multiple versions.  Many of the tests
+# attempt to connect to URLs outside the firewall, some of which no longer
+# exist.  Others could be set up on a local server with the tests directory
+# from the git repo.  But for the most part, just expect the tests to fail.
+COMPONENT_PRE_TEST_ACTION = \
+	v=$$(echo $(PYTHON_VERSION) | cut -c1); \
+	$(CP) -r $(COMPONENT_SRC)/python$$v/httplib2/test $(@D); \
+	$(CP) $(COMPONENT_SRC)/python$$v/httplib2test.py $(@D); \
+
+COMPONENT_TEST_DIR =	$(@D)
 COMPONENT_TEST_ARGS =	httplib2test.py
 
 # common targets
--- a/components/python/httplib2/httplib2-PYVER.p5m	Thu Sep 15 09:58:49 2016 -0700
+++ b/components/python/httplib2/httplib2-PYVER.p5m	Thu Sep 08 17:47:13 2016 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 set name=pkg.fmri \
@@ -42,7 +42,10 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/httplib2/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/httplib2/cacerts.txt
 file path=usr/lib/python$(PYVER)/vendor-packages/httplib2/iri2uri.py
-file path=usr/lib/python$(PYVER)/vendor-packages/httplib2/socks.py
+# Support for a socks proxy is only available on Python 2.  See
+# https://github.com/httplib2/httplib2/issues/25
+$(PYTHON_2.7_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/httplib2/socks.py
+#
 license httplib2.license license="MIT, BSD, LGPLv2.1, Apache v2.0"
 
 # force the rename with an optional dependency on the old name
--- a/components/python/pyrabbit/Makefile	Thu Sep 15 09:58:49 2016 -0700
+++ b/components/python/pyrabbit/Makefile	Thu Sep 08 17:47:13 2016 -0700
@@ -36,11 +36,6 @@
 
 TPNO=			29383
 
-# pyrabbit itself is Python 3 ready: builds & publishes cleanly.  But it
-# depends on httplib2 which has its own dependency issues (see its Makefile
-# for details).  So don't build for Python 3 until dependencies resolved.
-PYTHON_VERSIONS=	$(PYTHON2_VERSIONS)
-
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
@@ -52,7 +47,8 @@
 
 install:	$(INSTALL_NO_ARCH)
 
-# pyrabbit has no tests.
+# PyRabbit doesn't bundle tests in its tarball.  They're mostly tests that
+# require a live RabbitMQ server, anyway.
 test:		$(NO_TESTS)
 
 system-test:    $(NO_TESTS)