20 Commits

Author SHA1 Message Date
James Carey
6f76039fa2 Activate pep8 check that _ is imported
Remove the specification in tox.ini that _ is a builtin so that
it will no longer assume that _ does not need to be imported.

This helps ensure that the _ from i18n is used.

Activating this check did not flag any violations.

Change-Id: I077b9b2060e618823ef6dd6f95ce9fe7dcc52a06
2014-10-31 20:29:28 +00:00
Gordon Sim
f1afac446c Add driver independent functional tests
Add driver independent functional tests of the messaging API

The url used to select (and configure) the driver is specified as an
environment variable named TRANSPORT_URL.

Change-Id: I867001a15ffaca06ae831cfd0240ed3397bf6503
2014-10-22 17:07:45 +02:00
Julien Danjou
3dd6a23271 Finish transition to oslo.i18n
Change-Id: Ia0c8c15ba95b1fac6c815b86ccd8771b3ca24327
2014-10-06 13:28:05 +02:00
Davanum Srinivas
487bbf5b13 Enable oslo.i18n for oslo.messaging
Change-Id: Ic8e05ae4ffe3eb871ae64243c41a9955f47cbe2a
2014-09-24 22:18:50 -04:00
Jeremy Stanley
e0adc7db6c Work toward Python 3.4 support and testing
Change-Id: I766de4fa6f352fa1c9284187134654de1a468622
2014-09-09 23:25:31 +00:00
Gordon Sim
fbee94170f An initial implementation of an AMQP 1.0 based messaging driver
The key driver interfaces are implemented in the ProtonDriver class in
driver.py.  The logic for interfacing with Pyngus in order to
send/receive messages, manage AMQP connections and links, and handle
protocol events is in controller.py.  eventloop.py is a fairly generic
socket connection and I/O processor which runs in its own thread.
controller.py uses the eventloop.py thread to schedule subscription
and message send requests from the driver, as well as handle all
protocol event callbacks coming from Pyngus.

Included in this patch are a set of functional tests that can be run
under tox (tox -eamqp1).  These tests fully exercise the new driver,
from the driver API down to the 'wire' - nothing in the driver is
mocked out.  The functional tests implement a simple loopback test
broker, which allows the driver to send and receive messages via the
local network.  All RPC call patterns, RPC timeouts, and even broker
failover are verified by the included functional tests.

This driver uses the Pyngus module, which is a pure-python client API
built on the Proton AMQP 1.0 protocol engine library from the Apache
Qpid project.  Pyngus is available via pypi.python.org.

This driver introduces a dependency on the Proton AMQP 1.0 protocol
library, which is a platform-dependent library that must be installed
in order to use this driver and run the functional tests.

Change-Id: I871703e4cdc04cee3e6c214e911c9df464ede2ed
Implements: blueprint amqp10-driver-implementation
2014-09-04 15:12:43 -04:00
Julien Danjou
4cb33ecc94 Port to Python 3
This patch enables running all the unit tests (except the qpid ones that
are skipped) under Python 3.3 and Python 3.4.

Change-Id: I711663b4eedfb3cdeea7e6da7d28c6b92663e611
2014-08-18 17:08:13 +02:00
Christian Berendt
dd1d6d12ed Enable PEP8 check E714
Change-Id: I1562330af99553b4322f7dc062b310cc4ef93ccf
2014-08-08 06:07:17 +00:00
Christian Berendt
ec9ffdb979 Enable PEP8 check E265
Change-Id: Idf41d967fb06a063d02c19987733ba3757aa466f
2014-08-08 06:07:09 +00:00
Christian Berendt
8151da821b Enable PEP8 check E241
* E241 multiple spaces after ':'

Change-Id: I2310ffc00b7fe58d0781705a73212eefa116c999
2014-08-08 06:06:55 +00:00
Christian Berendt
500f1e5dca Enable check for E226
* E226 missing whitespace around arithmetic operator

Change-Id: Iee5f6a952d9b12c6c8a4a79ef656fc7f94170776
2014-08-04 12:15:34 +00:00
Christian Berendt
5be1b6a6a9 Enabled hacking checks H305 and H307
* H305  imports not grouped correctly
* H307  like imports should be grouped together

Change-Id: I08dafc4fa150d2213b2bb002da7c9ee0ee517fac
2014-07-17 12:41:21 +02:00
Jenkins
3d956f5f5f Merge "Synced jsonutils and its dependencies from oslo-incubator" 2014-07-09 21:46:55 +00:00
Mark McLoughlin
8babb0d1bd Add 'docs' tox environment
To make it easy to build docs with 'tox -e docs'.

Change-Id: Idd47c617196b25539b6b1fc88fac0a45b7fc0911
2014-06-26 06:52:25 +01:00
Ihar Hrachyshka
503b48a6b8 Synced jsonutils and its dependencies from oslo-incubator
The sync includes change that makes sure we get unicode-only dicts from
jsonutils no matter which json module implementation is selected.

The latest commit in oslo-incubator:
- 2e1214b74b5448825d3db26e1308a51b468d3d5c

Included commits:
* gettextutils.py:
  - de4adbc4: pep8: fixed multiple violations
  - 9912e5df: Add API for creating translation functions
  - 6cc96d05: Fix test_gettextutils on Python 3
  - fd33d1ea: Fix gettextutil.Message handling of deep copy failures
  - 047b2e4e: Change lazy translation to retain complete dict
  - 6d55e26a: Add support for translating log levels separately
* importutils.py:
  - 1173e469: Remove ValueError when accessing sys.modules
  - 885828af: Deleted duplicated method in cliutils.
* jsonutils.py:
  - 0d7296f6: Add kwargs to jsonutils.load(s) functions
  - 18f2bc1b: Enforce unicode json output for jsonutils.load[s]()
  - 9e5a3938: jsonutils.load() accepts file pointer, not string
* timeutils.py:
  - 250cd88c: Fixed a new pep8 error and a small typo

The sync adds new module: strutils.

Disabled pep8 import checks for gettextutils to avoid raising 'H302:
import only modules.'

Change-Id: Ic815ca3df94c33edec9104172048b2cd94b92e3f
Closes-Bug: 1314129
2014-06-24 14:14:02 +02:00
Davanum Srinivas
d0254b736e Bump hacking to 0.9.x series
In order to keep this patch to just a requirements bump, ignore new and
stricter hacking rules that are being triggered. Fixing up the code and
turning these on is out of scope of this patch and is for future patches.

Change-Id: I5711e066da1076486d291bc4f45359ecb26e1b1a
2014-06-12 09:53:40 -04:00
Doug Hellmann
0f1aeee7b2 Don't run python 3 tests by default
Remove py33 from the list of environments used when someone
runs "tox" without any arguments. The python 3.3 tests do
not pass yet, and the expected failure is confusing to new
contributors.

Change-Id: I1f1307153c4a32e59bcffbf340c31dbf3e70173c
2014-02-28 14:23:55 -08:00
Jeremy Hanmer
fb453e4f08 Convert to oslo.test
bp graduate-oslo-test

Change-Id: Iff1eebac011dab26468a7f1475b5c36b0bb2a7d2
2014-02-26 17:06:03 -08:00
Mark McLoughlin
03aafcb49c Simplify public symbol exports
Inspired by tulip, have every module define a __all__ list and import *
from the top-level module.

Rename transport.set_defaults() since we don't want this to be a
top-level set_defaults() function as there may be multiple.

Also, rather than configuring flake8 to allow star imports, just exclude
the __init__.py files from flake8 checks.
2013-06-24 12:52:30 +01:00
Mark McLoughlin
b5c41bba00 Add oslo.messaging project infrastructure 2013-06-15 08:43:50 +01:00