Commit Graph

450 Commits

Author SHA1 Message Date
melanie witt 43b36a4240 Pass GENERATE_HASHES to the tox test environment
When bumping nova object versions, it's necessary to generate new
hashes for those that have changed. New hashes are generated when the
GENERATE_HASHES environment variable is set. Let tox copy GENERATE_HASHES
to the test environment to allow object hash generation for a command
line like:

 GENERATE_HASHES=1 tox -epy27

Change-Id: Id652a7a9fbaeaf35db06744cbaf2484504fc2531
2016-09-08 23:50:25 +00:00
Jenkins ef5afcdc1d Merge "List system dependencies for running common tests" 2016-08-30 12:59:30 +00:00
Jenkins 3609487867 Merge "Add oslopolicy script runs to the docs tox target" 2016-08-25 10:37:38 +00:00
Andrew Laski 83bab97cbd Add oslopolicy script runs to the docs tox target
In an untouched codebase these two commands should not output anything
of interest as they are primarily tools for managing a custom
policy.json file. But it's useful to run them to ensure that they do not
error out.

Change-Id: I33e0b27164a0e9df240337c7e9b467f0f3859eac
2016-08-24 17:00:17 -04:00
Jeremy Stanley 7cdd5da7d7 List system dependencies for running common tests
Add a bindep.txt file containing a cross-platform list
of dependencies needed for running included tox-based tests. Also
include a tox environment for convenience calling the bindep[*]
utility to list any missing system requirements, and simplify the
contributor documentation to recommend this rather than embedding an
ad-hoc list of package names in an untestable document.

This change is self-testing.

[*] http://docs.openstack.org/infra/bindep/

Change-Id: I7c18b0921c39b99df89f2c356208303c2bad5a97
2016-08-24 06:49:32 +02:00
Jenkins 5e62bd3af6 Merge "Move JSON linting to pep8" 2016-08-18 15:57:28 +00:00
Takashi NATSUME d177395e75 Fix 'No data to report' error
Remove 2 unnecessary commands in 'testenv:cover' of tox.ini.
HTML coverage reports can be generated in 'cover' directory
by 'python setup.py testr --coverage' only
without the removed commands.

Change-Id: Ib9539f845aad29269a9cb07db719b22e35f7bbeb
Closes-Bug: #1613256
2016-08-17 02:52:17 +00:00
Andreas Jaeger af13871fc8 Use constraints for all tox environments
Infra is now ready to use constraints everywhere, adapt
the venv environment to use the default install command instead of a
specific non-constrainted install command.

With this change, now all tox environments use constraints.

Change-Id: Ibb73b4a27b5b0462a9e9f2dd80e437bcc8c7f8f4
2016-08-09 15:28:16 +02:00
Andreas Jaeger 190081c865 Move JSON linting to pep8
The docs job is not run in the gate, add the linting command from
the docs environment that checks for valid JSON files to the pep8
environement so that jobs run it.
Add a simple comment to both invocations to explain what it does.

Note that pep8 is our general linting target and thus should include
these kind of tests.

Change-Id: Ibb2ad29ca59b86fef41ebfe0ec3b8e8ea38e6d72
2016-08-09 13:07:09 +02:00
Andreas Jaeger 52f03d9324 Use constraints for releasenotes
OpenStack CI has now enabled constraints for releasenotes, use them -
remove the special install command.

Note that venv still cannot use constraints, this needs more changes
in OpenStack CI.

Change-Id: I125cb906f89c1de4227dc53521e1a60241ace997
Depends-On: If5d6b11bd795091eef949001cca6e8d4ec723ef2
2016-08-08 21:06:59 +02:00
Sean Dague 98ad916659 update wording around pep8 exceptions
At least once a cycle we get contributions from new folks that attempt
to update a bunch of pep8 formatting. They believe that this is in
good faith helping, but don't realize we really aren't likely to
accept that.

Update the text here to explain that more clearly, so that people
don't keep falling down this rabbit hole.

Change-Id: Iec383a18cb3d64b9655e5bd1d82cabd3e785686c
2016-08-04 15:51:12 +00:00
Jenkins b5822aa446 Merge "Reminder that release notes are built from commits" 2016-08-03 10:44:04 +00:00
Artom Lifshitz 5ee95b3240 Reminder that release notes are built from commits
This patch introduces a new tools/releasenotes_tox.sh script for the
tox -e releasenotes test environment. It will detect when there are
uncommitted release notes and print a reminder to commit them.

Change-Id: I54af12d7eb20b37263e23443900745884cffacea
2016-07-29 13:32:33 -04:00
Jenkins b6a0066855 Merge "Update tox.ini: Constraints are possible for api* jobs" 2016-07-28 01:23:10 +00:00
Jenkins 6cf0e9e213 Merge "tox: Use conditional targets" 2016-07-25 18:38:03 +00:00
Jenkins aaeaaf5c16 Merge "tox: Don't create '.pyc' files" 2016-07-25 18:37:10 +00:00
Andreas Jaeger 064c4db632 Update tox.ini: Constraints are possible for api* jobs
OpenStack CI setup has been changed so that api jobs can
use constraints, remove the extra install_command.

Change-Id: I1eb8c5b74adf28e8b6267f25b116341c540729dd
Depends-On: I8f45a53429b9fcbf3689a268f096afdf5f32f461
2016-07-21 10:27:28 +02:00
Andreas Jaeger 1a95ac48b7 Use constraints for coverage job
OpenStack CI supports now constraints in the coverage job - as a first
job to check that recent changes for zuul-cloner work correctly.

Use constraints for cover environment. If this works successfully, the
other environments can be updated in followups.

Change-Id: I6069bee0a89d38f6a3ec57418e7bda9850dc6f64
2016-07-17 15:50:02 +02:00
Stephen Finucane 17630d37fc tox: Use conditional targets
This simplifies our tox file and reduces duplication.

Change-Id: I085899e00a249fb850c81737b1088bb82ce820ba
2016-07-11 17:50:26 +01:00
Stephen Finucane 0d6d1616b9 tox: Don't create '.pyc' files
There's no reason to create these files and cleaning them up takes
precious time during each test run. Don't do it.

The benefits of this can be seen in running both the full test suite
and part of the test suite. For the former case - running the full
test suite:

    $ time ( tox -e py27 )

Without this change:

    real    12m48.003s
    user    38m27.039s
    sys     1m2.786s

With this change:

    real    11m53.921s
    user    39m33.360s
    sys     1m1.686s

For the latter case - running part of the full test suite:

    $ time ( tox -e py27 -- nova.tests.unit.test_configdrive2 )

Without this change:

    real    2m0.686s
    user    1m3.080s
    sys     0m12.950s

With this change:

    real    1m37.098s
    user    1m16.559s
    sys     0m11.846s

The actual results can vary massively, but this change is always
faster.

Change-Id: Iffd759e368878f39c015258935d8b37de09d9745
2016-07-11 17:48:32 +01:00
Jens Rosenboom df0aa8acaa Add a py35 environment to tox
Infra will start running python35 jobs soon [1], targeting to replace
the current python34 jobs. This is due to the change from Ubuntu Trusty
to Xenial, where only python3.5 will be available.

So we add a py35 environment with the same definitions for skipping
not-yet-working checks as we have in place for py34 already.

[1] https://review.openstack.org/336272

Change-Id: I017478fafa31121f40c95d73e49ac4dced80c7a2
2016-07-01 17:04:41 +02:00
Jenkins d68acca919 Merge "Add ability to select specific tests for py34" 2016-06-29 16:31:23 +00:00
Andrew Laski 5e38fa3cb5 Add policy sample generation
This adds the entry point and config file necessary for using the
oslo.policy sample generation script. It also adds a tox target to
simplify the usage of it.

The command is also run in the docs tox target since the sample file
can be considered documentation.

Change-Id: I18a1fa567fc04b0e0a37c02f20024b2ce483f060
Partially-Implements: bp policy-in-code
2016-06-28 20:52:44 +00:00
Jens Rosenboom 0196f4676e Add ability to select specific tests for py34
For py27 you can simply run specific tests by calling

    tox -e py27 nova.tests.unit.test_something

Add a similiar option for the py34 environment. This will skip the
blacklist of tests that would otherwise be ignored for python3.

Change-Id: I9bf5901afed4abf592e1aaff2f4820b9e3abc671
2016-06-28 05:24:48 +02:00
Akihiro Motoki c30562f458 tox.ini: Remove unnecessary comments in api-ref target
We pass -W option to sphinx-build to generate api-ref now.
The comment looks no longer correct.

Change-Id: Ie5dfaf46e9d3369c32c43da07c02501b224fb092
2016-06-10 04:23:52 +00:00
Jenkins f48c58915d Merge "Let setup.py compile_catalog process all language files" 2016-05-24 20:56:24 +00:00
melanie witt c19dd499f0 Pass OS_DEBUG to the tox test environment
The StandardLogging fixture defaults to log level INFO and has
the ability to log at level DEBUG if the OS_DEBUG environment
variable is set to a true value. Let tox copy OS_DEBUG to the
test environment to allow debug log capture for a command line
like:

  OS_DEBUG=True tox -epy27

Change-Id: Ibe51653f652c99aee56f702be571130cbb7f913d
2016-05-21 01:48:06 +00:00
Sven Anderson ece7b8f1e7 Let setup.py compile_catalog process all language files
Two years ago the translation files have been split into several
files, separating the log messages of different log levels from each
other, like X.pot, X-log-warning.pot, X-log-info.pot, and so on.
However, the setup.py command `compile_catalogs`, that comes from the
babel package and compiles the corresponding .po files into .mo
files, only supported one file per python package.  This means that
during packaging `compile_catalogs` never compiled the X-log-*.po
files, so the corresponding translations were always missing.

Since babel 2.3 the domain can be set to a space separated list of
domains.  This change adds the the additional log level files to the
domain list.

The obsolete check that .po and .pot files are valid is removed from
tox.ini.

Change-Id: I0d9cb16ac50caae570c57a1db6bed656bf13c3dc
Closes-Bug: #1536226
2016-05-20 17:56:06 +02:00
Sean Dague 1555736e3c Final warnings removals for api-ref
This removes the final warnings from the api-ref code base, and flips
the sphinx switch to enforce warnings as errors.

It also adds code to the rest_parameters extension to make it more
clear where a problem is when it comes to included parameters. This
puts us in a place where we can start doing the file per file look at
content.

Part of bp:api-ref-in-rst

Change-Id: Ic2c99d96d6addcafa00b9f16785c2fe59b1798d3
2016-04-20 11:25:30 -04:00
ChangBo Guo(gcb) b1871e5759 Nuke cliutils from oslo-incubator
Oslo team won't create new libary to include functions of module cliutils.
Nova only use two methods in cmd/manage.py, so copy these two methods
to nova/utils.py and clean up oslo-incubator related stuff.

Note:There is tiny change of method validate_args to make it Python 3
compatible.

Change-Id: Ibef5076f9556fa3224c2ca32e8c7fe2c4c1f739b
2016-04-03 23:38:31 +08:00
Sean Dague 329898ffbc Add sample API content
This adds sample API content for versions and servers resources,
including the parameters.yaml that is needed in both of these cases.

It also makes a new tox.ini target 'api-ref' for building these docs,
which will be used as part of the publishing pipeline.

Change-Id: I310ed352dc5dd81d01f2fd5f1a2fab662c29f0dc
2016-03-29 16:35:33 -04:00
Andreas Jaeger f25648a963 Error on API Guide warnings
Error on warnings in building the API guide and fix any problem
encountered:
* tox.ini: Enable tread warnings as errors
* index.rst: Add unreferenced file extra_specs_and_properties as
  hidden file so that it does not show up in index. It is still
  built and will be referenced from other files.
* general_info.rst: Remove reference to non-existing file
* server_concept: Add missing empty line after code directives

Also fix a typo and remove extra EOL whitespace.

Change-Id: Ie766f8d2f7d82b7b5b02541b342f9829ca4550a0
2016-03-17 07:57:23 +01:00
Andreas Jaeger 7c7a6e0d1b Do not use constraints for venv
The venv environment is used by infra scripts to build tarballs and
documents - and used by both check and post jobs. In post jobs, we
currently do not support constraints, so add the non-constraints install
command here so that nova-docs (publishing of documents to
docs.openstack.org) and the tarball jobs work again.

Change-Id: I2e5c0a4d739296b8b9d4ef7f58b69e1eff3c9575
2016-02-28 19:06:50 +01:00
Sean Dague 1e287ae14b reduce pep8 requirements to just hacking
Because we are constrained by the constraints mechanism we no longer
need to install all of test-requirements to get hacking at the right
version, because we'll only install the upper-constraints version.

Change-Id: I877ffec045cc43a32f97be8afe453d4755507217
2016-02-24 20:23:05 -05:00
Stephen Finucane 19758d9303 tox: Remove 'oslo.versionedobjects' dependency
The dependency mentioned in the TODO has been resolved, thus the TODO
can now be addressed.

Change-Id: I306f83bb9474371a4aa8277a2a5e1e258471b400
2016-02-23 15:59:25 +00:00
Jenkins 2cff8de4be Merge "always use pip constraints" 2016-02-22 19:45:25 +00:00
Sean Dague 05583d1496 always use python2.7 for pep8
pep8 doesn't work with python3 on our codebase. If someone is on a
platform that defaults to python => python3, pep8 won't work for
them. This is actually really easy to fix with a single line in tox.

Change-Id: I7a888e4f7cc828638a9d61d2249a854ba1f3cb7b
Closes-Bug: #1456955
2016-02-19 21:10:42 -05:00
Sean Dague 1f0dec3a03 always use pip constraints
This flips the tox.ini to always use constraints installation for all
targets. It drops the extra -constraints targets in the process. This
makes it so there is no developer change required to operate in our
new world order.

Change-Id: I857032002c2ca873510ce7c39138e0e35cc5d3b3
2016-02-16 07:57:28 -05:00
Jenkins 853424ca11 Merge "Remove releasenotes/build between releasenotes runs" 2016-01-23 04:10:39 +00:00
Andreas Jaeger b18c5c3422 Validate translations
Validate that translations are ok using msgfmt, so that no invalid
ones can be imported.

Closes-Bug: #1536214
Change-Id: Ic1f106684270a8f2197e0fb2a67d6fc00535ee65
2016-01-21 07:52:56 +00:00
Matt Riedemann ce8030f251 Remove releasenotes/build between releasenotes runs
Just like in the docs target, we should remove the releasenotes/build
directory between runs of the releasenotes target to avoid stale
sphinx results corrupting the current run results.

Change-Id: Ia9e0409344671e04148308e08c26e8796227f0f7
Closes-Bug: #1534640
2016-01-18 12:42:27 -08:00
Matt Riedemann 702c01e26b Revert "Workaround reno reverts by accepting warnings"
This reverts commit ef8335185a

Now that Ibf84ee0a604da94f709a0eeb436efe988d21274c is merged
on stable/liberty we should be OK again.

Change-Id: I1a56426a86747bdcd1a9179ecbff46cf54a98202
Related-Bug: #1534613
2016-01-16 14:31:06 +00:00
Sylvain Bauza ef8335185a Workaround reno reverts by accepting warnings
b2acc9fa864b6fe10bc0c5f3786b976b472b1b27 on stable/liberty introduced a
sphinx warning which was not treated as an error in stable/liberty nova
releasenotes tox runs so it slipped in, but it is treated as an error
in master branch nova releasenotes tox runs, and since reno scans the
branches, master is broken because of the error in stable/liberty.

Plus, reno scans the git history, so right now it's not obvious how to
travel back in time and fix the stable/liberty change.

This change reduces the level of control we have by not treating reno warnings
as errors. This is not fun but it's the only way we can still land
release notes until an appropriate fix is merged (in reno or nova).

Again, this is a temporary patch and we consider reverting it once bug 1534613
is fixed.

Change-Id: Iedb69c66632383e056840e3294a90cda651a8778
Related-Bug: #1534613
2016-01-15 15:53:10 +00:00
Sean Dague 088bf2bd80 update min tox version to 2.0
The commands used by constraints need at least tox 2.0. Update to
reflect reality, which should help with local running of constraints
targets.

Change-Id: I27348462a21daab479d76b24b48e3a4e017504cc
2016-01-13 13:51:10 -05:00
Matthew Treinish 056bfd538f Stop explicitly running test discovery for py34
This commit removes the direct call to discovery in the tox py34 job.
This was added as a temporary step to enable importing of everything
and is now include by standard in the use of ostestr. There isn't any
reason to keep it around anymore.

Change-Id: I117fbc2108b285aa148cb447c1c01145c43031dd
2016-01-05 11:35:34 -05:00
Jenkins 89dbc207c2 Merge "Add a note about fixing "db type could not be determined" with py34" 2015-12-16 16:15:31 +00:00
Ondřej Nový 944f4ac9d3 Deprecated tox -downloadcache option removed
Caching is enabled by default from pip version 6.0

More info:
https://testrun.org/tox/latest/config.html#confval-downloadcache=path
https://pip.pypa.io/en/stable/reference/pip_install/#caching

Change-Id: I83b5333f4f4b1600b9bbd508b5e0bc04c0068836
2015-12-11 21:22:29 +01:00
Matt Riedemann bc62d7b258 Add a note about fixing "db type could not be determined" with py34
Due to testrepository bug 1212909, if you run py27 before py34, py34
fails with "db type could not be determined". The workaround is to
delete the .testrepository directory and try again. As long as you run
py34 before py27 you're OK.

Change-Id: I13c4f9a39b97573e78fe397efc7d87f78bac4a58
2015-12-08 14:39:08 -08:00
Sean Dague 6b9c534658 add api-samples tox target
api-samples generation is no longer straight forward, now that tox is
blocking environment changes, and that PYTHONHASHSEED is randomized in
each run.

This creates a tox target to make it easy to generate the api-samples.

Change-Id: Ie88597fecee5ce81fb29ce2cfb73b15d60f3f389
2015-12-03 22:43:26 +00:00
Sylvain Bauza 9235151e00 force releasenotes warnings to be treated as errors
Per http://lists.openstack.org/pipermail/openstack-dev/2015-November/080521.html,
we need to make sure that there are no warnings for reno.

Change-Id: I50ce202f82e3213d07c3989780833e18b4c2bf08
2015-11-30 16:04:19 +01:00