summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jenkins_jobs/__main__.py4
-rw-r--r--jenkins_jobs/cli/entry.py17
-rwxr-xr-xtools/test-commands.sh8
-rw-r--r--tox.ini2
4 files changed, 21 insertions, 10 deletions
diff --git a/jenkins_jobs/__main__.py b/jenkins_jobs/__main__.py
new file mode 100644
index 00000000..8171c614
--- /dev/null
+++ b/jenkins_jobs/__main__.py
@@ -0,0 +1,4 @@
+from jenkins_jobs.cli.entry import main
+
+if __name__ == "__main__":
+ main()
diff --git a/jenkins_jobs/cli/entry.py b/jenkins_jobs/cli/entry.py
index 484b7a3d..888c21c1 100644
--- a/jenkins_jobs/cli/entry.py
+++ b/jenkins_jobs/cli/entry.py
@@ -17,7 +17,6 @@ import io
import os
import logging
import platform
-import sys
from stevedore import extension
import yaml
@@ -27,9 +26,6 @@ from jenkins_jobs.config import JJBConfig
from jenkins_jobs import utils
from jenkins_jobs import version
-if sys.version_info[0] != 2:
- from importlib import reload
-
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()
@@ -147,14 +143,15 @@ def main():
# utf-8 workaround for avoiding unicode errors in stdout/stderr
# see https://stackoverflow.com/a/2001767/99834
- import codecs
import sys
- reload(sys)
- sys.setdefaultencoding('utf-8')
- sys.stdout = codecs.getwriter('utf8')(sys.stdout)
- sys.stderr = codecs.getwriter('utf8')(sys.stderr)
- # end of workaround
+ if sys.version_info[0] == 2:
+ import codecs
+ reload(sys) # noqa
+ sys.setdefaultencoding('utf-8')
+ sys.stdout = codecs.getwriter('utf8')(sys.stdout)
+ sys.stderr = codecs.getwriter('utf8')(sys.stderr)
+ # end of workaround
argv = sys.argv[1:]
jjb = JenkinsJobs(argv)
diff --git a/tools/test-commands.sh b/tools/test-commands.sh
new file mode 100755
index 00000000..f44c46b0
--- /dev/null
+++ b/tools/test-commands.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+set -exou pipefail
+
+VAL1=$(jenkins-jobs --version 2>&1) || exit 1
+VAL2=$(python -m jenkins_jobs --version 2>&1) || exit 2
+
+# we assure that both calling methods to get the same output
+[ "${VAL1}" == "${VAL2}" ] || exit 3
diff --git a/tox.ini b/tox.ini
index 769fc992..127f8675 100644
--- a/tox.ini
+++ b/tox.ini
@@ -18,6 +18,8 @@ deps = -r{toxinidir}/test-requirements.txt
commands =
- find . -type f -name "*.pyc" -delete
- find . -type d -name "__pycache__" -delete
+ # test that we can call jjb using both variants with same results
+ bash {toxinidir}/tools/test-commands.sh
stestr run --slowest {posargs}
whitelist_externals =
bash