[Asterisk-code-review] CI: Use virtual environment for testsuite (asterisk[development/16/python3])

Michael Bradeen asteriskteam at digium.com
Tue Aug 2 09:46:11 CDT 2022


Michael Bradeen has submitted this change. ( https://gerrit.asterisk.org/c/asterisk/+/18690 )

Change subject: CI: Use virtual environment for testsuite
......................................................................

CI: Use virtual environment for testsuite

As part of the move to Python3, the testsuite is now designed
to work with a virtual environment.

This change is to have runTestsuite use the venv method if
possible and fall back if it can't.  If the script is run from
an externally activated virtual enviroment, then use that and
don't try either method.

Change-Id: I9724c446d67a5ee9e550644e4a78739de823536e
---
A tests/CI/extras.txt
A tests/CI/requirements.txt
M tests/CI/runTestsuite.sh
3 files changed, 49 insertions(+), 1 deletion(-)

Approvals:
  Joshua Colp: Looks good to me, but someone else must approve
  Michael Bradeen: Looks good to me, approved; Approved for Submit



diff --git a/tests/CI/extras.txt b/tests/CI/extras.txt
new file mode 100644
index 0000000..36428be
--- /dev/null
+++ b/tests/CI/extras.txt
@@ -0,0 +1,2 @@
+https://github.com/asterisk/starpy/archive/refs/heads/1.1.zip
+https://github.com/asterisk/yappcap/archive/refs/heads/master.zip
diff --git a/tests/CI/requirements.txt b/tests/CI/requirements.txt
new file mode 100644
index 0000000..b233fa4
--- /dev/null
+++ b/tests/CI/requirements.txt
@@ -0,0 +1,26 @@
+attrs==21.4.0
+autobahn==21.2.1
+Automat==20.2.0
+certifi==2021.10.8
+cffi==1.15.0
+charset-normalizer==2.0.12
+constantly==15.1.0
+construct==2.10.68
+cryptography==37.0.2
+Cython==0.29.28
+hyperlink==21.0.0
+idna==3.3
+incremental==21.3.0
+lxml==4.8.0
+netifaces>=0.10.4
+pycparser==2.21
+PyYAML==6.0
+PyXB==1.2.6
+rawsocket==0.2
+requests==2.27.1
+six==1.16.0
+Twisted==22.4.0
+txaio==22.2.1
+typing_extensions==4.1.1
+urllib3==1.26.9
+zope.interface==5.4.0
diff --git a/tests/CI/runTestsuite.sh b/tests/CI/runTestsuite.sh
index 466991a..423783a 100755
--- a/tests/CI/runTestsuite.sh
+++ b/tests/CI/runTestsuite.sh
@@ -12,13 +12,33 @@
 
 pushd $TESTSUITE_DIR
 
+if [[ "$VIRTUAL_ENV" != "" ]]
+then
+		echo "Detected activated virtual environment:"
+		echo $VIRTUAL_ENV
+		echo "Skipping creation of new environment"
+else
+	python3 -m venv ${TESTSUITE_DIR}/.venv
+	source ${TESTSUITE_DIR}/.venv/bin/activate
+	if [[ "$VIRTUAL_ENV" != "" ]]
+	then
+		echo "Successfully activated virtual environment:"
+		echo $VIRTUAL_ENV
+		python -m pip install --upgrade pip
+		python -m pip install -r ${CIDIR}/requirements.txt
+		python -m pip install -r ${CIDIR}/extras.txt
+	else
+		echo "Virtual environment failed, attempting fall-back method"
+		export PYTHONPATH=./lib/python/
+	fi
+fi
+
 ./cleanup-test-remnants.sh
 
 if [ $REALTIME -eq 1 ] ; then
 	$CIDIR/setupRealtime.sh --initialize-db=${INITIALIZE_DB:?0}
 fi
 
-export PYTHONPATH=./lib/python/
 echo "Running tests ${TESTSUITE_COMMAND} ${AST_WORK_DIR:+with work directory ${AST_WORK_DIR}}"
 ./runtests.py --cleanup --timeout=${TEST_TIMEOUT} ${TESTSUITE_COMMAND} | contrib/scripts/pretty_print --no-color --no-timer --term-width=120 --show-errors || :
 

-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/18690
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: development/16/python3
Gerrit-Change-Id: I9724c446d67a5ee9e550644e4a78739de823536e
Gerrit-Change-Number: 18690
Gerrit-PatchSet: 3
Gerrit-Owner: Michael Bradeen <mbradeen at sangoma.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Joshua Colp <jcolp at sangoma.com>
Gerrit-Reviewer: Michael Bradeen <mbradeen at sangoma.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20220802/6279b7e2/attachment-0001.html>


More information about the asterisk-code-review mailing list