There is no need to run horizon-integration-tests as we use
the default language, English, in the integration tests and
proposed translation files are validated in the pep8 job.
It reduced the CI resources and waiting time.
Change-Id: I70851622a91280eab99005bf285d8190bfbf8933
Django 1.11 support was dropped. Django 1.11 ends its extended support
in April 2020 which is before Ussuri release. Considering this,
horizon dropped Django 1.11 support.
Unnecessary Django version checks in the code are also dropped.
Change-Id: I2c58934f2b026745fbc97a58212b91d149db3657
We already have a template 'horizon-non-primary-django-jobs'
to test horizon and plugins with non-primary django versions,
but we still need to update tox.ini in all horizon plugins
whenever we change Django versions used.
This commit prepares per-Django environment in the zuul job.
Per-Django tox environments like py3-{dj111,dj20,dj22} are
no longer needed. It would be a big merit that we will no longer
need to update tox.ini in all horizon plugins.
The downside is that we do not provide a convenient way to
test it locally, but I think it can be covered in the document.
Change-Id: I726b19130ee9e7d06eb33231071c2673cfd3a49f
This commit introduces a new zuul project-template which support
django22 in horizon plugins. By using the project-template,
we can add/change/drop some jobs related to Django versions
without changing all horizon plugin repos.
One possible example is the change of the primary
Django version in upper-constraints.txt.
My plan is to switch the current job defintions in horizon plugins
to the new template when supportnig Django 2.2.
Change-Id: Id0a7b57a19f46c3f1ed87d71ccbb17e0e4301755
As part of Train community goal 'Support IPv6-Only Deployments and
Testing'[1], Tempest has defined the base job 'devstack-tempest-ipv6'
(adding in Depends-On patch) which will deploy services on IPv6.
This commit adds the new job 'horizon-tempest-plugin-ipv6'
run on gate which is derived from 'devstack-tempest-ipv6'.
Verification structure will be:
- 'devstack-IPv6' deploy the service on IPv6
- 'devstack-tempest-ipv6' run will verify the IPv6-only setting and
listen address
- 'horizon-tempest-plugin-ipv6' will run the tests.
Story: #2005477
Task: #35893
Depends-On: https://review.opendev.org/#/c/671231/
[1] https://governance.openstack.org/tc/goals/train/ipv6-support-and-testing.html
Change-Id: I1acdff5f2389ae88872ed198a2b3cee9dc61f705
Something has changed and the quoting used in the zuul jobs
configuration no longer works. This patch removes the excess
quoting.
Change-Id: I4c6c3b1d0e0c38c8130440c2b6c162fd65532179
This goal is to implement the process set out in the 2018-10-24 Python
Update Process TC resolution[1], for the Train cycle to ensure unit
testing is in place for all of the Tested Runtimes for Train[2].
Using the Zuul template for Train will ensure that all projects that
support Python3 will be tested against the agreed runtime versions,
and make it easier to update them in future.
[1]https://governance.openstack.org/tc/resolutions/20181024-python-update-process.html
[2]https://governance.openstack.org/tc/reference/runtimes/train.html
Change-Id: I406a4f1ecbff5b6c8e18ff1b93a3b2ceef49343a
As Migration to bionic is completed or nodejs10 job running.
So we not required nodejs4 job anymore.
Change-Id: I179706cbd53b33f15bdc485168a7eba09fc788e5
These jobs are stable enough so we can make them voting:
* horizon-selenium-headless
* horizon-integration-tests
* horizon-tox-bandit-baseline - this job is now voting and configured
only for 'check' queue.
Change-Id: Ifca858e4c85748d801c412d7e91dce3362f0204f
Monty recently setup a project-template for nodejs4 jobs[1], but
some projects (Octavia for one) want to be bionic/nodejs10 (LTS)
ready.
This patch sets up a template for bionic nodepool instances using
nodejs 10 (LTS).
[1] https://review.openstack.org/#/c/643198
Change-Id: Ibc2c4b5b5207e66700b5c4e04aca3c6a00d392be
The horizon plugins all use a set of consistent jobs, but we're
currently copying them in. That means making coordinated updates
is a bit harder. Make a project-template that horizon plugins
can use.
Change-Id: I6ecba7d593268654535aa37ef6ae62baebb58378
tox env for the integration tests is now renamed to 'integration'
as it is no longer run under python 2.7.
__hash__() method is now defined in integration_tests.helpers.BaseTestCase
to avoid unhashable error during loading django test runner. This is
originally caused by the fact that the base testcase class for integration
tests is implemented on top of testtools and testtools does not define
__hash__() method. In Python 3, __hash__() method must be defined
if a class (re)defines __eq__() method to make the class hashable [1].
Ideally integration base TestCase class can be implemented on top of
Django test case, but the current implementation depends on features
from testtools a lot, so it seems better to add __hash__() method
as a workaround.
Unbound methods don't exist in Python 3[2], so six.create_unbound_method
doesn' work as expected. To dynamic method generation we have to use new
descriptors interface [3] or just generate new
functools.partialmethod [4] function introduced in Python 3.4 to
generate class methods with pre-defined 'path' argument and pass 'self'
as a first function argument for class instance.
[1] https://docs.python.org/3.5/reference/datamodel.html#object.__hash__
[2] https://six.readthedocs.io/#six.create_unbound_method
[3] https://docs.python.org/3/howto/descriptor.html
[4] https://docs.python.org/3/library/functools.html#functools.partialmethod
Change-Id: I5c3078bdc66e33fe676d431bb28d92b35faaf479
Python 3.5 was the target runtime for the Rocky release. The current
target py3 runtime for Stein is Python 3.6, so there is no reason to
keep testing against the older version as mentioned here[1].
[1] https://governance.openstack.org/tc/reference/runtimes/stein.html
Change-Id: Ib585add30e8b34016a4af18d567a3613aaa74241
We now support both python 2.7 and python 3 environments,
but bug 1814028 turns out that we cannot detect python2/3 difference
only with unit tests. It sounds reasonable to me to add python 2.7
version of the tempest job. Horizon runs only one devstack job now,
so I believe it is okay to add one more job.
Change-Id: I35fb6c04f67d68109fccd29af332f291b738d9b3
Thi patch skip integration tests which fails on gates until specified
bug will be resolved.
@decorators.skip_because doesn't work somewhy so I used unittest.skip
instead of it. I'll fix skip_because decorator in a follow up patch.
Related-Bug: #1792028
Change-Id: Ida79b5064c2457afc15db6e63a45478d711e02b5
Python 3 and python 3.6 classifiers are added
so that DevStack recognizes horizon works with python3.
Change-Id: I2ab0a1a9df9292090f8f14b1591b98d691e16bc4
Small cleanups:
* Use openstack-lower-constraints-jobs template, remove individual
jobs.
* Sort list of templates
Change-Id: Id9e8f44d7c4d352682ca4df80f9470c7e6144509
Needed-By: https://review.openstack.org/623229
This is a mechanically generated patch to switch the documentation
jobs to use the new PTI versions of the jobs as part of the
python3-first goal.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: I35b3967f8fe3423bea698284078bdb07f4a1b814
Story: #2002586
Task: #24299
This is a mechanically generated patch to complete step 1 of moving
the zuul job settings out of project-config and into each project
repository.
Because there will be a separate patch on each branch, the branch
specifiers for branch-specific jobs have been removed.
Because this patch is generated by a script, there may be some
cosmetic changes to the layout of the YAML file(s) as the contents are
normalized.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: I1378696509f727d5b6feda01fee71b32f6488824
Story: #2002586
Task: #24299
horizon-openstack-tox-py35dj20 is now not used by any horizon plugins.
We can drop horizon-openstack-tox-py35dj20 job now :)
Change-Id: I9c309d260c554101167fbd3bea27b0f799fa2e9a
This commit adds two new tox environments for bandit scanner. To run any
of them you can use tox commands:
1) 'tox -e bandit' to run bandit scanner against all the code
2) 'tox -e bandit-baseline' to run bandit scanner only against the last
commit or the current changes.
Bandit job uses 'bandit-baseline' tox environment to veryfy that no new
issues were introduced.
Change-Id: I1fc3bb0d5d151f215b9efc916f921fabaa72e7d8
This patch leave selenuim-headless non-voting since it was broken for a
while so we should be sure that it's stable enough.
Related blueprint: improve-horizon-testing
Change-Id: Ic2a877a4eefc2f10fb25e64c387b81fc18302a2a
Nose has been in maintenance mode for the past several years. It has
issue with exit code [1] which leads to false positive results for our
seleniun-headless job.
This patch changes test runner for Horizon tests and does the following
things:
* Django test runner executes test in a different order than Nose does.
That's why we've got an issue with side-effect in
horizon.tests.unit.tables.test_tables.MyToggleAction class. This patch
adds workaround to it.
* Rename filename of test files to names starting with 'test_'
so that the django test runner can find tests expectedly.
* '--with-html-output' option is temporary dropped and will be added in
a following patch.
* Integraion tests is marked via django.test.tag mechanism which is
introduced in Django 1.10
* 'selenium-headless' is broken now because we don't have geckodriver on
gates, this patch makes it non-voting.
* 'tox -e cover' is fixed
* Remove @memorized decorator from
dashboards.project.images.images.tables.filter_tenant_ids function.
[1] https://github.com/nose-devs/nose/issues/984
Depends-On: https://review.openstack.org/572095
Depends-On: https://review.openstack.org/572124
Depends-On: https://review.openstack.org/572390
Depends-On: https://review.openstack.org/572391
Related blueprint: improve-horizon-testing
Change-Id: I7fb2fd7dd40f301ea822154b9809a9a07610c507
Django 2.0 is now used in tox py35 job, so there is no need for
py35dj20 job. Instead, Django 1.11 with python3 is not covered.
- py35dj20 job is dropped from tox.ini.
- python3-django111 is added to tox.ini.
python3 is specified to basepython to avoid a specific python version.
- Zuul job to consume python3-django111 is added.
Note that horizon-openstack-tox-py35dj20 cannot be dropped
because this job is used by horizon plugins.
Change-Id: Ic3b5e06d591a6f1d667993d19dcddfaf40882dee
Create a tox environment for running the unit tests against the lower
bounds of the dependencies.
Create a lower-constraints.txt to be used to enforce the lower bounds
in those tests.
Add openstack-tox-lower-constraints job to the zuul configuration.
See http://lists.openstack.org/pipermail/openstack-dev/2018-March/128352.html
for more details.
---
horizon specific change:
* Django minimum version is bumped to >=1.11 as horizon rocky
dropped Django 1.8-1.10 support.
* django-babel needs to be bumped to 0.6.2 to support Django 2.0
8762ff5dc0
* nose-exclude needs to be bumped to 0.5.0 to run horizon unit tests
properly. According to my test, 0.4.0 also works but this is
a testing dependency, so we don't need to care multiple versions much.
Otherwise only one test is run for openstack_dashboard unit tests.
https://review.openstack.org/555402 allows us to bump lower requirements.
Co-Authored-By: Akihiro Motoki <amotoki@gmail.com>
Change-Id: I73c3e4531c57d015f6016ca00b056a6fd0d8fc1a
Depends-On: https://review.openstack.org/555034
Depends-On: https://review.openstack.org/555402
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Signed-off-by: Akihiro Motoki <amotoki@gmail.com>
After Django 2.0 support, we no longer supports Django 1.10 or older
(Actually Django 1.10 seems to work though).
The current django.VERSION branches are all related to Django 1.10
or older, so we can drop all conditions.
py35dj20 job is now voting.
blueprint django2-support
Change-Id: Iefc0ab1c62c82f2842ec7761a9b981da9351cbd2
django 1.8 to 1.10 are incompatible with django 2.0.
We only supports Django >= 1.11 in Rocky and UTs with
Django <= 1.10 are no longer needed.
Conditions using django.VERSION will be dropped in a later patch
only because moving them to this patch causes many merge conflicts.
blueprint django2-support
Change-Id: I0611297e70d8e58d53e94635b0b7175d94df195b
Zuul no longer requires the project-name for in-repo configuration.
Omitting it makes forking or renaming projects easier.
Change-Id: I898631af31c12498434223949dab4c0d6a58c3db
For consistency with the tox jobs, use tox_envlist instead of
tox_venvlist.
We need first to add a new parameter, then change the job, then
remove the old parameter.
Change-Id: I3d4fa8a68d511d4b5555753bb1faa9bde8ee8c86
Depends-On: I67a20b1faa77ff0166ad96fd95432c11948abc74
For consistency with the tox jobs, use tox_envlist instead of
tox_venvlist.
We need first to add a new parameter, then change the job, then
remove the old parameter.
Change-Id: I035584aaeaa71b62c1d0c7e0a62dbf053a3488b6
Needed-By: I67a20b1faa77ff0166ad96fd95432c11948abc74
Test cases of horizon-dsvm-tempest-plugin are defined in
tempest-horizon repository. When we touch only test codes,
horizon-dsvm-tempest-plugin can be skipped.
The running time of horizon-dsvm-tempest-plugin is longest
in our gate jobs and this allows us to get CI results earlier.
Change-Id: I0a29f416885466c3acc47be4f415c20244f9b1a3
There is no need to run tempest job for changes only with translations.
Also adds openstack_auth/locale/ to the skip condition.
Change-Id: I9b21de25a06cb08d1a08dd91637cd0135bf937be