2013-07-03 19:39:46 -04:00
|
|
|
Neutron Style Commandments
|
2015-11-29 05:18:06 -08:00
|
|
|
==========================
|
2012-04-09 20:12:49 -07:00
|
|
|
|
2013-10-16 16:30:23 +05:30
|
|
|
- Step 1: Read the OpenStack Style Commandments
|
2013-11-11 10:32:34 -08:00
|
|
|
http://docs.openstack.org/developer/hacking/
|
2013-10-16 16:30:23 +05:30
|
|
|
- Step 2: Read on
|
2012-04-09 20:12:49 -07:00
|
|
|
|
2013-10-16 16:30:23 +05:30
|
|
|
Neutron Specific Commandments
|
2015-11-29 05:18:06 -08:00
|
|
|
-----------------------------
|
2012-04-09 20:12:49 -07:00
|
|
|
|
2014-05-16 23:48:21 -07:00
|
|
|
- [N319] Validate that debug level logs are not translated
|
2014-05-01 06:10:57 -07:00
|
|
|
- [N320] Validate that LOG messages, except debug ones, have translations
|
2014-08-08 00:04:44 +02:00
|
|
|
- [N321] Validate that jsonutils module is used instead of json
|
2015-01-12 17:04:14 +01:00
|
|
|
- [N322] Detect common errors with assert_called_once_with
|
2015-03-25 05:40:45 -07:00
|
|
|
- [N324] Prevent use of deprecated contextlib.nested.
|
2015-05-19 11:05:27 +02:00
|
|
|
- [N325] Python 3: Do not use xrange.
|
2015-05-20 15:09:13 +02:00
|
|
|
- [N326] Python 3: do not use basestring.
|
2015-06-01 20:53:46 +00:00
|
|
|
- [N327] Python 3: do not use dict.iteritems.
|
2015-10-06 07:50:18 +09:00
|
|
|
- [N328] Detect wrong usage with assertEqual
|
2015-10-29 07:40:05 -07:00
|
|
|
- [N329] Method's default argument shouldn't be mutable
|
2016-01-13 06:18:42 -08:00
|
|
|
- [N330] Use assertEqual(*empty*, observed) instead of
|
|
|
|
assertEqual(observed, *empty*)
|
2016-01-06 11:27:34 +08:00
|
|
|
- [N331] Detect wrong usage with assertTrue(isinstance()).
|
2016-01-28 17:42:53 +08:00
|
|
|
- [N332] Use assertEqual(expected_http_code, observed_http_code) instead of
|
|
|
|
assertEqual(observed_http_code, expected_http_code).
|
2015-12-29 23:25:55 +08:00
|
|
|
- [N333] Validate that LOG.warning is used instead of LOG.warn. The latter
|
|
|
|
is deprecated.
|
2016-02-24 19:28:44 +00:00
|
|
|
- [N334] Use unittest2 uniformly across Neutron.
|
2016-01-26 10:52:47 +09:00
|
|
|
- [N340] Check usage of <module>.i18n (and neutron.i18n)
|
|
|
|
- [N341] Check usage of _ from python builtins
|
2016-07-07 22:19:33 +09:00
|
|
|
- [N342] String interpolation should be delayed at logging calls.
|
2012-04-09 20:12:49 -07:00
|
|
|
|
|
|
|
Creating Unit Tests
|
|
|
|
-------------------
|
|
|
|
For every new feature, unit tests should be created that both test and
|
|
|
|
(implicitly) document the usage of said feature. If submitting a patch for a
|
|
|
|
bug that had no unit test, a new passing unit test should be added. If a
|
|
|
|
submitted bug fix does have a unit test, be sure to add a new one that fails
|
|
|
|
without the patch and passes with the patch.
|
|
|
|
|
2013-02-23 10:35:28 +00:00
|
|
|
All unittest classes must ultimately inherit from testtools.TestCase. In the
|
2013-07-03 19:39:46 -04:00
|
|
|
Neutron test suite, this should be done by inheriting from
|
2016-02-24 19:28:44 +00:00
|
|
|
neutron.tests.base.BaseTestCase. If the third party unittest library has to
|
|
|
|
be used directly then it is recommended to use unittest2 as it contains bug
|
|
|
|
fixes to unittest for all versions of Python prior to version 3.5.
|
2013-02-23 10:35:28 +00:00
|
|
|
|
2013-02-06 17:01:30 +11:00
|
|
|
All setUp and tearDown methods must upcall using the super() method.
|
|
|
|
tearDown methods should be avoided and addCleanup calls should be preferred.
|
|
|
|
Never manually create tempfiles. Always use the tempfile fixtures from
|
|
|
|
the fixture library to ensure that they are cleaned up.
|