[arch-commits] Commit in python-cmd2/trunk (PKGBUILD fix-test.patch)
Felix Yan
felixonmars at archlinux.org
Sun Jul 9 17:06:24 UTC 2017
Date: Sunday, July 9, 2017 @ 17:06:24
Author: felixonmars
Revision: 243441
upgpkg: python-cmd2 0.7.5-1
Added:
python-cmd2/trunk/fix-test.patch
Modified:
python-cmd2/trunk/PKGBUILD
----------------+
PKGBUILD | 15 ++++----
fix-test.patch | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 110 insertions(+), 7 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2017-07-09 17:00:34 UTC (rev 243440)
+++ PKGBUILD 2017-07-09 17:06:24 UTC (rev 243441)
@@ -4,7 +4,7 @@
pkgbase=python-cmd2
pkgname=(python-cmd2 python2-cmd2)
-pkgver=0.7.4
+pkgver=0.7.5
pkgrel=1
pkgdesc="Extra features for standard library's cmd module"
arch=('any')
@@ -13,10 +13,13 @@
makedepends=('python-setuptools' 'python2-setuptools' 'python-pyparsing' 'python2-pyparsing'
'python-pyperclip' 'python2-pyperclip')
checkdepends=('python-pytest-runner' 'python2-pytest-runner' 'python-mock' 'python2-mock' 'vi')
-source=("$pkgbase-$pkgver.tar.gz::https://github.com/python-cmd2/cmd2/archive/$pkgver.tar.gz")
-sha512sums=('9d2d84a773a6ee534336b4044e32521def400b81a7e5ac22dbc9b18ac4088d2adff34139965b382fb35d278c0f1dce83f43219a79c5fb8a642aafbfebe6dea83')
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/python-cmd2/cmd2/archive/$pkgver.tar.gz"
+ fix-test.patch)
+sha512sums=('27f8d4076d6abcafef5e7a79049ab281e4bd76fa22ee83ea0c390af646cd8af03d93b4a05ab27eddb3974955fe5eb4f3fbff531b8903e2fa49fbd7d370603da9'
+ '4d9b2bd0125540935353d88d29ea5ffa78065cdf45d8f35b38ddf3eedd8c6193d518813aeccddb9261344c49b79fcdada39cb4de2f439a5e5faa2134147bd928')
prepare() {
+ (cd cmd2-$pkgver; patch -p1 -i ../fix-test.patch)
cp -a cmd2-$pkgver{,-py2}
}
@@ -29,13 +32,11 @@
}
check() {
- # https://github.com/python-cmd2/cmd2/issues/171
-
cd "$srcdir"/cmd2-$pkgver
- python setup.py pytest --addopts "-k 'not test_path_completion_user_expansion'"
+ python setup.py pytest
cd "$srcdir"/cmd2-$pkgver-py2
- python2 setup.py pytest --addopts "-k 'not test_path_completion_user_expansion'"
+ python2 setup.py pytest
}
package_python-cmd2() {
Added: fix-test.patch
===================================================================
--- fix-test.patch (rev 0)
+++ fix-test.patch 2017-07-09 17:06:24 UTC (rev 243441)
@@ -0,0 +1,102 @@
+commit 87e04d73046e910b639aaec462b4b77a1735f404
+Author: Felix Yan <felixonmars at archlinux.org>
+Date: Mon Jul 10 00:29:42 2017 +0800
+
+ Use monkeypatch to ensure os.system is restored
+
+ Without this patch, running tests like test_edit_number before
+ test_default_to_shell_good in the same process will trigger
+ this error:
+
+ ```
+ _______________________________________________________________ test_default_to_shell_good ________________________________________________________________
+
+ capsys = <_pytest.capture.CaptureFixture object at 0x7f7e90103898>
+
+ def test_default_to_shell_good(capsys):
+ app = cmd2.Cmd()
+ app.default_to_shell = True
+ line = 'ls'
+ statement = app.parser_manager.parsed(line)
+ retval = app._default(statement)
+ assert not retval
+ out, err = capsys.readouterr()
+ > assert out == ''
+ E AssertionError: assert '*** Unknown syntax: ls \n' == ''
+ E - *** Unknown syntax: ls
+
+ tests/test_cmd2.py:840: AssertionError
+ ```
+
+ Using monkeypatch fixture to restore os.system fixes the problem here.
+
+diff --git a/tests/test_cmd2.py b/tests/test_cmd2.py
+index 1deff47..0e25529 100644
+--- a/tests/test_cmd2.py
++++ b/tests/test_cmd2.py
+@@ -661,13 +661,13 @@ def test_edit_no_editor(base_app, capsys):
+ expected = _expected_no_editor_error()
+ assert normalize(str(err)) == expected
+
+-def test_edit_file(base_app, request):
++def test_edit_file(base_app, request, monkeypatch):
+ # Set a fake editor just to make sure we have one. We aren't really going to call it due to the mock
+ base_app.editor = 'fooedit'
+
+ # Mock out the os.system call so we don't actually open an editor
+ m = mock.MagicMock(name='system')
+- os.system = m
++ monkeypatch.setattr("os.system", m)
+
+ test_dir = os.path.dirname(request.module.__file__)
+ filename = os.path.join(test_dir, 'script.txt')
+@@ -677,13 +677,13 @@ def test_edit_file(base_app, request):
+ # We think we have an editor, so should expect a system call
+ m.assert_called_once_with('{} {}'.format(base_app.editor, filename))
+
+-def test_edit_number(base_app):
++def test_edit_number(base_app, monkeypatch):
+ # Set a fake editor just to make sure we have one. We aren't really going to call it due to the mock
+ base_app.editor = 'fooedit'
+
+ # Mock out the os.system call so we don't actually open an editor
+ m = mock.MagicMock(name='system')
+- os.system = m
++ monkeypatch.setattr("os.system", m)
+
+ # Run help command just so we have a command in history
+ run_cmd(base_app, 'help')
+@@ -693,13 +693,13 @@ def test_edit_number(base_app):
+ # We have an editor, so should expect a system call
+ m.assert_called_once()
+
+-def test_edit_blank(base_app):
++def test_edit_blank(base_app, monkeypatch):
+ # Set a fake editor just to make sure we have one. We aren't really going to call it due to the mock
+ base_app.editor = 'fooedit'
+
+ # Mock out the os.system call so we don't actually open an editor
+ m = mock.MagicMock(name='system')
+- os.system = m
++ monkeypatch.setattr("os.system", m)
+
+ # Run help command just so we have a command in history
+ run_cmd(base_app, 'help')
+@@ -1222,7 +1222,7 @@ def abbrev_app():
+ app.stdout = StdOut()
+ return app
+
+-def test_exclude_from_history(abbrev_app):
++def test_exclude_from_history(abbrev_app, monkeypatch):
+ # Run all variants of run
+ run_cmd(abbrev_app, 'run')
+ run_cmd(abbrev_app, 'ru')
+@@ -1230,7 +1230,7 @@ def test_exclude_from_history(abbrev_app):
+
+ # Mock out the os.system call so we don't actually open an editor
+ m = mock.MagicMock(name='system')
+- os.system = m
++ monkeypatch.setattr("os.system", m)
+
+ # Run all variants of edit
+ run_cmd(abbrev_app, 'edit')
More information about the arch-commits
mailing list