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
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
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
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
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
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
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
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.