# octavia.hacking package

## Submodules

## octavia.hacking.checks module

Guidelines for writing new hacking checks

> - Use only for Octavia specific tests. OpenStack general tests should be submitted to the common ‘hacking’ module.
> - Pick numbers in the range O3xx. Find the current test with the highest allocated number and then pick the next value.
> - Keep the test method code in the source file ordered based on the O3xx value.
> - List the new rule in the top level HACKING.rst file
> - Add test cases for each new rule to octavia/tests/unit/test_hacking.py

`assert_equal_in`(logical_line)

  Check for assertEqual(A in B, True), assertEqual(True, A in B),

  assertEqual(A in B, False) or assertEqual(False, A in B) sentences

  O338

`assert_equal_or_not_none`(logical_line)

  Check for assertEqual(A, None) or assertEqual(None, A) sentences,

  assertNotEqual(A, None) or assertNotEqual(None, A) sentences

  O318

`assert_equal_true_or_false`(logical_line)

  Check for assertEqual(True, A) or assertEqual(False, A) sentences

  O323

`assert_true_instance`(logical_line)

  Check for assertTrue(isinstance(a, b)) sentences

  O316

`check_line_continuation_no_backslash`(logical_line, tokens)

  O346 - Don’t use backslashes for line continuation.

  Parameters:

  - logical_line – The logical line to check. Not actually used.
  - tokens – List of tokens to check.

  Returns: | None if the tokens don’t contain any issues, otherwise a tuple is yielded that contains the offending index in the logical line and a message describe the check validation failure.

`check_no_eventlet_imports`(logical_line)

  O345 - Usage of Python eventlet module not allowed.

  Parameters: | logical_line – The logical line to check.
  Returns: | None if the logical line passes the check, otherwise a tuple is yielded that contains the offending index in logical line and a message describe the check validation failure.

`check_no_logging_imports`(logical_line)

  O348 - Usage of Python logging module not allowed.

  Parameters: | logical_line – The logical line to check.
  Returns: | None if the logical line passes the check, otherwise a tuple is yielded that contains the offending index in logical line and a message describe the check validation failure.

`check_raised_localized_exceptions`(logical_line, filename)

  O342 - Untranslated exception message.

  Parameters:

  - logical_line – The logical line to check.
  - filename – The file name where the logical line exists.

  Returns: | None if the logical line passes the check, otherwise a tuple is yielded that contains the offending index in logical line and a message describe the check validation failure.

`no_log_warn`(logical_line)

  Disallow ‘LOG.warn(‘

  O339

`no_mutable_default_args`(logical_line)

`no_translate_logs`(logical_line, filename)

  O341 - Don’t translate logs.

  Check for ‘LOG.*(_(‘ and ‘LOG.*(_Lx(‘

  Translators don’t provide translations for log messages, and operators asked not to translate them.

  - This check assumes that ‘LOG’ is a logger.

  Parameters:

  - logical_line – The logical line to check.
  - filename – The file name where the logical line exists.

  Returns: | None if the logical line passes the check, otherwise a tuple is yielded that contains the offending index in logical line and a message describe the check validation failure.

`revert_must_have_kwargs`(logical_line)

  O347 - Taskflow revert methods must have **kwargs.

  Parameters: | logical_line – The logical line to check.
  Returns: | None if the logical line passes the check, otherwise a tuple is yielded that contains the offending index in logical line and a message describe the check validation failure.

## Module contents

this page last updated: 2020-04-10 18:17:54

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug questions?