packages/python/python-subunit2sql/fix-migrations-test.patch

94 lines
3.8 KiB
Diff

From 99f770ca133c0d079532e4eefa519555d546164a Mon Sep 17 00:00:00 2001
From: Masayuki Igawa <masayuki@igawa.io>
Date: Thu, 18 Jul 2019 11:07:38 +0900
Subject: [PATCH] Fix gate error "mysqladmin: command not found" and etc
mysqladmin package is required in tools/test-setup.sh
so adding bindep.txt file for this binary dependencies. And postgresql
packages are also required as well.
- http://lists.openstack.org/pipermail/openstack-discuss/2019-June/007272.html
This commit also updated sphinx versions in test-requirements.txt to
avoid this error.
ERROR: Sphinx requires Python '>=3.5' but the running Python is 2.7.15
And also, this commit fixes a sqlalchemy error. This probably caused by
sqlalchemy version updates. It might be better to fix the code rather
than the sqlalchemy version cap.
sqlalchemy.exc.ArgumentError: Textual SQL expression
"tests.id='fake_null_test_..." should be explicitly declared as
text("tests.id='fake_null_test_...")
Change-Id: Iff79081403fbc26442165ff5feb300bc317b0dfc
---
bindep.txt | 8 ++++++++
subunit2sql/tests/migrations/test_migrations.py | 2 +-
test-requirements.txt | 3 ++-
tox.ini | 11 +++++++++++
4 files changed, 22 insertions(+), 2 deletions(-)
create mode 100644 bindep.txt
diff --git a/bindep.txt b/bindep.txt
new file mode 100644
index 0000000..2f11192
--- /dev/null
+++ b/bindep.txt
@@ -0,0 +1,8 @@
+# This is a cross-platform list tracking distribution packages needed by tests;
+# see http://docs.openstack.org/infra/bindep/ for additional information.
+
+mysql-client [platform:dpkg]
+mysql-server [platform:dpkg]
+postgresql
+postgresql-client [platform:dpkg]
+postgresql-server-dev-all [platform:dpkg]
diff --git a/subunit2sql/tests/migrations/test_migrations.py b/subunit2sql/tests/migrations/test_migrations.py
index 483d0aa..5df7067 100644
--- a/subunit2sql/tests/migrations/test_migrations.py
+++ b/subunit2sql/tests/migrations/test_migrations.py
@@ -321,7 +321,7 @@ class TestWalkMigrations(base.TestCase):
test_ids = [data['tests'][x]['id'] for x in data['tests']]
# Query the DB for the tests from the sample dataset above
where = ' OR '.join(["tests.id='%s'" % x for x in test_ids])
- result = tests.select(where).execute()
+ result = tests.select(sqlalchemy.sql.text(where)).execute()
run_time_pairs = list(map(lambda x: (x['id'], x['run_time']), result))
# Ensure the test with one failure is None
self.assertIn(('fake_null_test_id_fails', None), run_time_pairs)
diff --git a/test-requirements.txt b/test-requirements.txt
index 319d05c..fcf5c13 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -2,7 +2,8 @@ hacking>=0.12.0,!=0.13.0,<0.14
coverage>=3.6
fixtures>=0.3.14
mock>=1.0
-sphinx>=1.6.2 # BSD
+sphinx!=1.6.6,!=1.6.7,<2.0.0;python_version=='2.7' # BSD
+sphinx!=1.6.6,!=1.6.7,!=2.1.0;python_version>='3.4' # BSD
testscenarios>=0.4
stestr>=1.0.0
testtools>=0.9.34
diff --git a/tox.ini b/tox.ini
index ae8b00d..8befe6f 100644
--- a/tox.ini
+++ b/tox.ini
@@ -63,3 +63,14 @@ commands =
[testenv:releasenotes]
basepython = python3
commands = sphinx-build -a -E -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
+
+[testenv:bindep]
+# Do not install any requirements. We want this to be fast and work even if
+# system dependencies are missing, since it's used to tell you what system
+# dependencies are missing! This also means that bindep must be installed
+# separately, outside of the requirements files, and develop mode disabled
+# explicitly to avoid unnecessarily installing the checked-out repo too (this
+# further relies on "tox.skipsdist = True" above).
+usedevelop = False
+deps = bindep
+commands = bindep test