aboutsummaryrefslogtreecommitdiffstats
path: root/osmopy/osmo_interact
AgeCommit message (Collapse)AuthorFilesLines
2024-05-02fix "SyntaxWarning: invalid escape sequence '\('"HEADmasterVadim Yanitskiy2-2/+2
This is a new warning introduced in Python 3.12: https://docs.python.org/dev/whatsnew/3.12.html#other-language-changes Python 3 interprets string literals as Unicode strings, and so '\(' is treated as an escaped Unicode character. Fix this by prefixing the regexp strings with 'r' and thus converting them to raw strings. Change-Id: I7a9f546dc7cdf9bc250516a58f35b50b46017dc3
2023-03-25InteractVty: re.escape() the VTY prompt in connect()Vadim Yanitskiy1-1/+1
The VTY prompt may contain regular expression metacharacters in it, so the self.re_prompt will not match as expected. One example is the modem app in osmocom-bb.git using promot 'OsmocomBB(modem)'. Change-Id: I47b1f1c1765acb1b935dcbcc54bbb5eb539db4f0
2019-12-11Drop python2 support (again)Oliver Smith2-6/+1
Re-apply reverted commit Iabda95073faa2191fd117e9637e0858c589e9d9e ("Drop python2 support"), but with additional changes to make the scripts actually work with python3 and to make it build without python2. I have verified, that the contrib/jenkins.sh scripts of all Osmocom repositories (with their python3 patches on top) are working with this patch and that all Osmocom repositories with the python3 patches build in OBS (tested in own namespace). All related patches for changing from python2 to 3 in other repositories must be merged shortly after this one, as soon as the build slaves were (automatically) updated to have the new osmo-python-tests installed: https://gerrit.osmocom.org/q/topic:drop-py2 New fixes: * osmopy/obscvty.py: verify: fix compare Comparing maps in python3 does not work the same as in python2. Convert them to lists first, so the compare works as intended again. Fix error: File "/home/user/code/osmo-dev/src/osmo-python-tests/scripts/osmotestvty.py", line 57, in test_history assert(self.vty.w_verify(test_str, [t1])) AssertionError * osmopy/obscvty.py: use enc/dec with send/recv Fix error: self.socket.send("%s\r" % request) TypeError: a bytes-like object is required, not 'str' * scripts/osmotestconfig.py: use encode() before writing to file Fix error: File "/home/user/code/osmo-dev/src/osmo-python-tests/scripts/osmotestconfig.py", line 91, in copy_config tmpfile.write(open(config).read()) File "/usr/lib/python3.5/tempfile.py", line 622, in func_wrapper return func(*args, **kwargs) TypeError: a bytes-like object is required, not 'str' * debian/control: add --buildsystem=pybuild. Otherwise "--with python3" is ignored and the build fails if python2 is not installed, with: Can't exec "pyversions": No such file or directory at /usr/[...]/python_distutils.pm line 120. Related: OS#2819 Change-Id: I3ffc3519bf6c22536a49dad7a966188ddad351a7
2019-12-06Revert "Drop python2 support"Oliver Smith2-1/+6
This reverts commit fb1dc7c405f6114687338382149bfc775597935a. I was under the impression, that all previous scripts were already working with python 3. But as it turns out, this isn't true. Reverting, so I can properly post follow-up patches, that fix the issues before we apply this "drop python2" patch again. Related: OS#2819 Change-Id: Ic1559d1a9f7839fa86a841d62a04b22e1caed466
2019-12-05Drop python2 supportOliver Smith2-6/+1
Remove all compatibility code for python2. All scripts are already python 3 compatible since I80e5850a8978d78cda793e2192ef4bd3fd54a121 and I1b4a629f12863c498a8681b555f57b4e255cebfb. dpkg-buildpackage shows that it is still invoking setup.py with python in addition to python3, on debian stretch. But after spending quite some time on trying to convince it to not care about python2 without success (trying different variables, overrides, --without python2 flags etc.), I'm leaving it as is. The resulting package is the python3 package, which is what we want. Related: OS#2819 Change-Id: Iabda95073faa2191fd117e9637e0858c589e9d9e
2019-10-31osmo_interact_vty.py: fix py3 encoding bugNeels Hofmeyr1-1/+1
That code in common.py is hit when invoking via osmo_interact_vty.py. It has a unicode string already, its attempt to decode hits a python exception (no 'decode' method). Must be a long standing bug that no-one saw because we're only ever using the osmo_verify_transcript_vty.py variant. Change-Id: I1b4a629f12863c498a8681b555f57b4e255cebfb
2019-08-23vty.py: Fix endl removed when pkt buffer content ends exactly on a newline charosmith/before-py2-dropPau Espin Pedrol1-3/+10
As a result, osmo_interact_vty.py was printing incorrect output: """ - <param name='shutdown' doc='Remove the APN from administrative shut-down' /> - </params> + <param name='shutdown' doc='Remove the APN from administrative shut-down' /> </params """ Change-Id: Ib1dbf39db1b27331ea4c39051e550a87780d9f76
2018-09-10osmo_interact/common: ignore trailing empty lines in received resultsNeels Hofmeyr1-0/+4
If the VTY/CTRL output contains trailing newlines, do not cause those to trigger mismatch errors, rather drop those. Rationale: in transcript scripts, the amount of empty lines between expected results is ignored, to allow cosmetically arranging into sections. So trailing newlines are dropped, and there is no way to preserve those. Change-Id: I1930868451c5738b17e318a9807590d948210b9a
2018-09-10osmo_interact/vty.py: fix parsing of vty loggingNeels Hofmeyr1-1/+7
Because the VTY logging target currently prints '\n\r' instead of '\r\n', the python splitlines() separates those as interleaving empty lines. Ignore '\r' to allow verifying VTY logging output as well. Change-Id: I8de9cebaa9aad275f65c3672985b7cbca343b5a6
2017-12-20add cmdline doc to osmo_interact_* and osmo_verify_*Neels Hofmeyr3-8/+137
The tools are so far badly under-documented. Alleviate that by comprehensive description and examples shown by -h option output. Hint at that from the README. Change-Id: I94dcad257558b917cb54fc877122594cd164f496
2017-12-19fix osmo_interact_* and osmo_verify_transcript_* after dir splitNeels Hofmeyr4-0/+780
After I30cdf0f85b2a60a235960911c9827f4129da40db, * the osmo_interact_{vty,ctrl}.py can no longer import osmo_interact_common, since it was moved to scripts/ in error. * the osmo_verify_{vty,ctrl} scripts can no longer import osmo_interact_{vty,ctrl}, since it is also in scripts/. Notably, the osmo_interact_{vty,ctrl}.py also served as scripts while being modules at the same time, which is not good. Fix these issues by adding a new osmopy/osmo_interact/ submodule with osmopy/osmo_interact/common.py, /vty.py and /ctrl.py as modules, and add in scripts thin wrappers that invoke the modules' main(). Change-Id: I40a37b212274cb70ebb1e1d9d1b3743eb2d64d05