diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 9b219f9..08908a4 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -4,6 +4,16 @@ set -ex COM_FLAGS='-m compileall' +# FIXME: remove once python 2 support is deprecated +PY2=python2 +PY2_LIST="osmopy scripts/osmodumpdoc.py scripts/osmotestvty.py scripts/osmotestconfig.py" +$PY2 ./setup.py install +$PY2 tests/test_py2.py +for f in $PY2_LIST +do + $PY2 $COM_FLAGS $f +done + rm -rf ./build PY3=python3 PY3_LIST="osmopy scripts/osmo_ctrl.py scripts/osmo_rate_ctr2csv.py scripts/osmodumpdoc.py scripts/osmotestvty.py scripts/osmotestconfig.py scripts/osmo_interact_ctrl.py scripts/osmo_interact_vty.py scripts/osmo_verify_transcript_ctrl.py scripts/osmo_verify_transcript_vty.py scripts/soap.py scripts/twisted_ipa.py" diff --git a/debian/control b/debian/control index 1ad871d..52b614c 100644 --- a/debian/control +++ b/debian/control @@ -2,12 +2,26 @@ Source: osmo-python-tests Section: python Priority: optional Maintainer: Harald Welte -Build-Depends: debhelper (>= 9), dh-python, python3, python3-setuptools +Build-Depends: debhelper (>= 9), python, dh-python, python-setuptools, python3, python3-setuptools Standards-Version: 3.9.8 Homepage: http://git.osmocom.org/python/osmo-python-tests/ Vcs-Git: git://git.osmocom.org/python/osmo-python-tests Vcs-Browser: http://git.osmocom.org/python/osmo-python-tests/ +Package: python2-osmopy-libs +Architecture: all +Depends: ${python:Depends}, ${misc:Depends} +Description: Python code (not only) for testing of Osmocom programs + . + This package contains the Python 2 version of osmopy libraries. + +Package: python2-osmopy-utils +Architecture: all +Depends: ${python:Depends}, ${misc:Depends}, python2-osmopy-libs +Description: Python code (not only) for testing of Osmocom programs + . + This package contains the Python 2 version of osmopy utils. + Package: python3-osmopy-libs Architecture: all Depends: ${python3:Depends}, ${misc:Depends} diff --git a/debian/rules b/debian/rules index d0817c3..04b59f6 100755 --- a/debian/rules +++ b/debian/rules @@ -1,9 +1,13 @@ #!/usr/bin/make -f %: - dh $@ --with python3 + dh $@ --with python2,python3 override_dh_auto_install: + python2 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python2-osmopy-libs + rm -rf $(CURDIR)/debian/python2-osmopy-libs/usr/bin + python2 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python2-osmopy-utils + rm -rf $(CURDIR)/debian/python2-osmopy-utils/usr/lib python3 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python3-osmopy-libs rm -rf $(CURDIR)/debian/python3-osmopy-libs/usr/bin python3 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python3-osmopy-utils diff --git a/osmopy/__init__.py b/osmopy/__init__.py index 18362ec..ce78caf 100644 --- a/osmopy/__init__.py +++ b/osmopy/__init__.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python __version__ = '0.1.0' __all__ = ['obscvty', 'osmoutil', 'osmo_ipa', 'osmo_interact', 'trap_helper', 'twisted_ipa'] diff --git a/osmopy/obscvty.py b/osmopy/obscvty.py index ab280c0..d39d3da 100755 --- a/osmopy/obscvty.py +++ b/osmopy/obscvty.py @@ -16,6 +16,7 @@ # # VTY helper code for OpenBSC # +from __future__ import print_function import re import socket import sys, subprocess diff --git a/osmopy/osmo_interact/__init__.py b/osmopy/osmo_interact/__init__.py index 036238a..4fc4fac 100644 --- a/osmopy/osmo_interact/__init__.py +++ b/osmopy/osmo_interact/__init__.py @@ -1,2 +1,2 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python __all__ = ['common', 'vty', 'ctrl'] diff --git a/osmopy/osmo_interact/common.py b/osmopy/osmo_interact/common.py index 87eca6a..cc7e190 100644 --- a/osmopy/osmo_interact/common.py +++ b/osmopy/osmo_interact/common.py @@ -24,6 +24,11 @@ This implements all of application interaction, piping and verification. vty.py and ctrl.py plug VTY and CTRL interface specific bits. ''' +# Our setup.py currently wants everything to be parsable by both py2 and py3. +# IMHO that is not a good idea, but until that changes, let's just keep this +# py2 legacy shim in here so we can syntax-check this py3 module with py2. +from __future__ import print_function + import argparse import sys import os diff --git a/osmopy/osmoutil.py b/osmopy/osmoutil.py index ec9c8c3..54a3456 100755 --- a/osmopy/osmoutil.py +++ b/osmopy/osmoutil.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python # (C) 2013 by Katerina Barone-Adesi # This program is free software: you can redistribute it and/or modify @@ -14,6 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +from __future__ import print_function import subprocess import os import sys diff --git a/scripts/osmodumpdoc.py b/scripts/osmodumpdoc.py index 64b088f..d71edc8 100755 --- a/scripts/osmodumpdoc.py +++ b/scripts/osmodumpdoc.py @@ -1,9 +1,10 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python # Make sure this code is in sync with the BTS directory. # Fixes may need to be applied to both. """Start the process and dump the documentation to the doc dir.""" +from __future__ import print_function import subprocess import time import os diff --git a/scripts/osmotestconfig.py b/scripts/osmotestconfig.py index 70a32a4..f227504 100755 --- a/scripts/osmotestconfig.py +++ b/scripts/osmotestconfig.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python # (C) 2013 by Katerina Barone-Adesi # This program is free software: you can redistribute it and/or modify @@ -13,6 +13,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +from __future__ import print_function import os import os.path import time diff --git a/scripts/osmotestvty.py b/scripts/osmotestvty.py index 600860f..55017a5 100755 --- a/scripts/osmotestvty.py +++ b/scripts/osmotestvty.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python # (C) 2013 by Katerina Barone-Adesi # This program is free software: you can redistribute it and/or modify @@ -13,6 +13,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +from __future__ import print_function import os import time import unittest diff --git a/setup.py b/setup.py index ab604ce..69e18b0 100755 --- a/setup.py +++ b/setup.py @@ -19,20 +19,24 @@ from setuptools import setup, find_packages from osmopy import __version__ import sys -scripts = [ - "scripts/osmodumpdoc.py", - "scripts/osmotestvty.py", - "scripts/osmotestconfig.py", - "scripts/osmo_ctrl.py", - "scripts/osmo_rate_ctr2csv.py", - "scripts/soap.py", - "scripts/ctrl2cgi.py", - "scripts/osmo_trap2cgi.py", - "scripts/osmo_interact_vty.py", - "scripts/osmo_interact_ctrl.py", - "scripts/osmo_verify_transcript_vty.py", - "scripts/osmo_verify_transcript_ctrl.py", - ] +if sys.version_info.major == 2: + scripts = [ + "scripts/osmodumpdoc.py", + "scripts/osmotestconfig.py", + "scripts/osmotestvty.py", + ] +elif sys.version_info.major == 3: + scripts = [ + "scripts/osmo_ctrl.py", + "scripts/osmo_rate_ctr2csv.py", + "scripts/soap.py", + "scripts/ctrl2cgi.py", + "scripts/osmo_trap2cgi.py", + "scripts/osmo_interact_vty.py", + "scripts/osmo_interact_ctrl.py", + "scripts/osmo_verify_transcript_vty.py", + "scripts/osmo_verify_transcript_ctrl.py", + ] setup( name = 'osmopython', diff --git a/tests/test_py2.py b/tests/test_py2.py new file mode 100644 index 0000000..cac5261 --- /dev/null +++ b/tests/test_py2.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python2 + +# just import a smoke test for osmopy + +import osmopy + +print '[Python2] Smoke test PASSED.'