Hello community,

here is the log from the commit of package python-oslo.context for 
openSUSE:Factory checked in at 2016-03-07 13:23:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.context (Old)
 and      /work/SRC/openSUSE:Factory/.python-oslo.context.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-oslo.context"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.context/python-oslo.context.changes  
2015-10-30 13:42:28.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-oslo.context.new/python-oslo.context.changes 
    2016-03-07 13:23:32.000000000 +0100
@@ -1,0 +2,27 @@
+Fri Feb 26 13:17:47 UTC 2016 - [email protected]
+
+- update to 2.2.0:
+  * Standardize an oslo.policy credentials dictionary
+  * Revert "Add common oslo.log format parameters"
+  * Add roles to context
+  * Agnostic approach to construct context from_dict
+  * Add common oslo.log format parameters
+  * Improve Context docs with example syntax
+  * Define method for oslo.log context parameters
+  * Add additional unit tests
+  * Fix request_id type on Python 3: use text (Unicode)
+  * Updated from global requirements
+  * Provide a helper to load a context from environment
+  * Revert "Add properties for id attributes"
+  * Add properties for id attributes
+  * Trival: Remove 'MANIFEST.in'
+  * Updated from global requirements
+  * Remove python 2.6 classifier
+  * Remove python 2.6 and cleanup tox.ini
+  * Remove reference to undefined attributes
+  * Fix coverage configuration and execution
+  * Add shields.io version/downloads links/badges into README.rst
+  * Change ignore-errors to ignore_errors
+  * Updated from global requirements
+
+-------------------------------------------------------------------

Old:
----
  oslo.context-0.6.0.tar.gz

New:
----
  oslo.context-2.2.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-oslo.context.spec ++++++
--- /var/tmp/diff_new_pack.9BBb7M/_old  2016-03-07 13:23:33.000000000 +0100
+++ /var/tmp/diff_new_pack.9BBb7M/_new  2016-03-07 13:23:33.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-oslo.context
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           python-oslo.context
-Version:        0.6.0
+Version:        2.2.0
 Release:        0
 Url:            https://launchpad.net/oslo.context
 Summary:        Helpers to maintain useful information about a request context
@@ -62,16 +62,16 @@
 %{__python2} setup.py install --skip-build --root %{buildroot}
 
 %check
-export PYTHONPATH="%{python2_sitelib}:%{buildroot}%{python2_sitelib}"
-export PYTHON="python -S"
 testr init && testr run --parallel
 
 %files
-%defattr(-,root,root,-)
-%doc README.rst ChangeLog LICENSE AUTHORS
-%{python2_sitelib}/*
+%license LICENSE
+%doc README.rst ChangeLog AUTHORS
+%{python2_sitelib}/oslo_context
+%{python2_sitelib}/oslo.context*egg-info
 
 %files doc
+%license LICENSE
 %doc html
 
 %changelog

++++++ oslo.context-0.6.0.tar.gz -> oslo.context-2.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/.coveragerc 
new/oslo.context-2.2.0/.coveragerc
--- old/oslo.context-0.6.0/.coveragerc  2015-09-08 17:39:25.000000000 +0200
+++ new/oslo.context-2.2.0/.coveragerc  2016-02-25 07:04:46.000000000 +0100
@@ -1,7 +1,8 @@
 [run]
 branch = True
-source = context
-omit = context/tests/*,context/openstack/*
+source = oslo_context
+omit = oslo_context/tests/*
 
 [report]
-ignore-errors = True
+ignore_errors = True
+precision = 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/AUTHORS 
new/oslo.context-2.2.0/AUTHORS
--- old/oslo.context-0.6.0/AUTHORS      2015-09-08 17:39:45.000000000 +0200
+++ new/oslo.context-2.2.0/AUTHORS      2016-02-25 07:05:11.000000000 +0100
@@ -1,20 +1,26 @@
 Alexander Gorodnev <[email protected]>
 Andrew Bogott <[email protected]>
+ChangBo Guo(gcb) <[email protected]>
 Cyril Roelandt <[email protected]>
+Davanum Srinivas (dims) <[email protected]>
 Davanum Srinivas <[email protected]>
 Davanum Srinivas <[email protected]>
 Dina Belova <[email protected]>
 Doug Hellmann <[email protected]>
 Flavio Percoco <[email protected]>
 James Carey <[email protected]>
+Jamie Lennox <[email protected]>
 Jason Kölker <[email protected]>
 Jay Pipes <[email protected]>
 Jeremy Stanley <[email protected]>
 Joe Gordon <[email protected]>
+Joshua Harlow <[email protected]>
 Michael Basnight <[email protected]>
 Monty Taylor <[email protected]>
+Ronald Bradford <[email protected]>
 Sean Dague <[email protected]>
 Steve Martinelli <[email protected]>
 Thomas Herve <[email protected]>
 Victor Sergeyev <[email protected]>
+Victor Stinner <[email protected]>
 Zhongyue Luo <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/ChangeLog 
new/oslo.context-2.2.0/ChangeLog
--- old/oslo.context-0.6.0/ChangeLog    2015-09-08 17:39:45.000000000 +0200
+++ new/oslo.context-2.2.0/ChangeLog    2016-02-25 07:05:11.000000000 +0100
@@ -1,6 +1,60 @@
 CHANGES
 =======
 
+2.2.0
+-----
+
+* Standardize an oslo.policy credentials dictionary
+* Revert "Add common oslo.log format parameters"
+* Add roles to context
+
+2.1.0
+-----
+
+* Agnostic approach to construct context from_dict
+* Add common oslo.log format parameters
+
+2.0.0
+-----
+
+* Improve Context docs with example syntax
+* Define method for oslo.log context parameters
+* Add additional unit tests
+* Fix request_id type on Python 3: use text (Unicode)
+* Updated from global requirements
+* Provide a helper to load a context from environment
+
+1.0.1
+-----
+
+* Revert "Add properties for id attributes"
+* Add properties for id attributes
+* Trival: Remove 'MANIFEST.in'
+
+1.0.0
+-----
+
+* Updated from global requirements
+* Remove python 2.6 classifier
+* Remove python 2.6 and cleanup tox.ini
+
+0.9.0
+-----
+
+* Remove reference to undefined attributes
+
+0.8.0
+-----
+
+* Fix coverage configuration and execution
+
+0.7.0
+-----
+
+* Add shields.io version/downloads links/badges into README.rst
+* Change ignore-errors to ignore_errors
+* Updated from global requirements
+
 0.6.0
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/MANIFEST.in 
new/oslo.context-2.2.0/MANIFEST.in
--- old/oslo.context-0.6.0/MANIFEST.in  2015-09-08 17:39:25.000000000 +0200
+++ new/oslo.context-2.2.0/MANIFEST.in  1970-01-01 01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-include AUTHORS
-include ChangeLog
-exclude .gitignore
-exclude .gitreview
-
-global-exclude *.pyc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/PKG-INFO 
new/oslo.context-2.2.0/PKG-INFO
--- old/oslo.context-0.6.0/PKG-INFO     2015-09-08 17:39:45.000000000 +0200
+++ new/oslo.context-2.2.0/PKG-INFO     2016-02-25 07:05:11.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: oslo.context
-Version: 0.6.0
+Version: 2.2.0
 Summary: Oslo Context library
 Home-page: http://launchpad.net/oslo
 Author: OpenStack
@@ -10,6 +10,14 @@
         Oslo Context Library
         ====================
         
+        .. image:: https://img.shields.io/pypi/v/oslo.context.svg
+            :target: https://pypi.python.org/pypi/oslo.context/
+            :alt: Latest Version
+        
+        .. image:: https://img.shields.io/pypi/dm/oslo.context.svg
+            :target: https://pypi.python.org/pypi/oslo.context/
+            :alt: Downloads
+        
         The Oslo context library has helpers to maintain useful information
         about a request context. The request context is usually populated in
         the WSGI pipeline and used by various modules such as logging.
@@ -29,6 +37,5 @@
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 2.6
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/README.rst 
new/oslo.context-2.2.0/README.rst
--- old/oslo.context-0.6.0/README.rst   2015-09-08 17:39:25.000000000 +0200
+++ new/oslo.context-2.2.0/README.rst   2016-02-25 07:04:46.000000000 +0100
@@ -2,6 +2,14 @@
 Oslo Context Library
 ====================
 
+.. image:: https://img.shields.io/pypi/v/oslo.context.svg
+    :target: https://pypi.python.org/pypi/oslo.context/
+    :alt: Latest Version
+
+.. image:: https://img.shields.io/pypi/dm/oslo.context.svg
+    :target: https://pypi.python.org/pypi/oslo.context/
+    :alt: Downloads
+
 The Oslo context library has helpers to maintain useful information
 about a request context. The request context is usually populated in
 the WSGI pipeline and used by various modules such as logging.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/doc/source/conf.py 
new/oslo.context-2.2.0/doc/source/conf.py
--- old/oslo.context-0.6.0/doc/source/conf.py   2015-09-08 17:39:25.000000000 
+0200
+++ new/oslo.context-2.2.0/doc/source/conf.py   2016-02-25 07:04:46.000000000 
+0100
@@ -38,7 +38,7 @@
 
 # General information about the project.
 project = u'oslo.context'
-copyright = u'2014, OpenStack Foundation'
+copyright = u'2016, OpenStack Foundation'
 
 # If true, '()' will be appended to :func: etc. cross-reference text.
 add_function_parentheses = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/doc/source/examples/usage.py 
new/oslo.context-2.2.0/doc/source/examples/usage.py
--- old/oslo.context-0.6.0/doc/source/examples/usage.py 1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.context-2.2.0/doc/source/examples/usage.py 2016-02-25 
07:04:46.000000000 +0100
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2015 OpenStack Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""A respresentative usage example of Oslo Context
+
+This example requires the following modules to be installed.
+
+$ pip install oslo.context oslo.log
+
+More information can be found at:
+
+  http://docs.openstack.org/developer/oslo.context/usage.html
+"""
+
+from oslo_config import cfg
+from oslo_context import context
+from oslo_log import log as logging
+
+CONF = cfg.CONF
+DOMAIN = "demo"
+
+logging.register_options(CONF)
+logging.setup(CONF, DOMAIN)
+
+LOG = logging.getLogger(__name__)
+
+LOG.info("Message without context")
+# ids in Openstack are 32 characters long
+# For readability a shorter id value is used
+context.RequestContext(user='6ce90b4d',
+                       tenant='d6134462',
+                       project_domain='a6b9360e')
+LOG.info("Message with context")
+
+context = context.RequestContext(user='ace90b4d',
+                                 tenant='b6134462',
+                                 project_domain='c6b9360e')
+LOG.info("Message with passed context", context=context)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.context-0.6.0/doc/source/examples/usage_simple.py 
new/oslo.context-2.2.0/doc/source/examples/usage_simple.py
--- old/oslo.context-0.6.0/doc/source/examples/usage_simple.py  1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.context-2.2.0/doc/source/examples/usage_simple.py  2016-02-25 
07:04:46.000000000 +0100
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2015 OpenStack Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""A simple usage example of Oslo Context
+
+This example requires the following modules to be installed.
+
+$ pip install oslo.context oslo.log
+
+More information can be found at:
+
+  http://docs.openstack.org/developer/oslo.context/usage.html
+"""
+
+from oslo_config import cfg
+from oslo_context import context
+from oslo_log import log as logging
+
+CONF = cfg.CONF
+DOMAIN = "demo"
+
+logging.register_options(CONF)
+logging.setup(CONF, DOMAIN)
+
+LOG = logging.getLogger(__name__)
+
+LOG.info("Message without context")
+context.RequestContext()
+LOG.info("Message with context")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.context-0.6.0/doc/source/examples/usage_user_identity.py 
new/oslo.context-2.2.0/doc/source/examples/usage_user_identity.py
--- old/oslo.context-0.6.0/doc/source/examples/usage_user_identity.py   
1970-01-01 01:00:00.000000000 +0100
+++ new/oslo.context-2.2.0/doc/source/examples/usage_user_identity.py   
2016-02-25 07:04:46.000000000 +0100
@@ -0,0 +1,48 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2015 OpenStack Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+"""A usage example of Oslo Context with user_identity
+
+This example requires the following modules to be installed.
+
+$ pip install oslo.context oslo.log
+
+More information can be found at:
+
+  http://docs.openstack.org/developer/oslo.context/usage.html
+"""
+
+from oslo_config import cfg
+from oslo_context import context
+from oslo_log import log as logging
+
+CONF = cfg.CONF
+DOMAIN = "demo"
+
+logging.register_options(CONF)
+CONF.logging_user_identity_format = "%(user)s/%(tenant)s@%(project_domain)s"
+logging.setup(CONF, DOMAIN)
+
+LOG = logging.getLogger(__name__)
+
+LOG.info("Message without context")
+# ids in Openstack are 32 characters long
+# For readability a shorter id value is used
+context.RequestContext(request_id='req-abc',
+                       user='6ce90b4d',
+                       tenant='d6134462',
+                       project_domain='a6b9360e')
+LOG.info("Message with context")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/doc/source/examples.rst 
new/oslo.context-2.2.0/doc/source/examples.rst
--- old/oslo.context-0.6.0/doc/source/examples.rst      1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo.context-2.2.0/doc/source/examples.rst      2016-02-25 
07:04:46.000000000 +0100
@@ -0,0 +1,37 @@
+==========
+ Examples
+==========
+
+.. _examples:
+
+These files can be found in the doc/source/examples directory of
+the git source of this project.  They can also be found at the
+`online git respository`_ of this project.
+
+.. _online git respository: 
http://git.openstack.org/cgit/openstack/oslo.context/tree/doc/source/examples
+
+
+.. _example_usage_simple.py:
+
+usage_simple.py
+---------------
+
+.. highlight:: python
+.. literalinclude:: examples/usage_simple.py
+   :linenos:
+
+.. _example_usage.py:
+
+usage.py
+--------
+
+.. literalinclude:: examples/usage.py
+   :linenos:
+
+.. _example_usage_user_identity.py:
+
+usage_user_identity.py
+----------------------
+
+.. literalinclude:: examples/usage_user_identity.py
+   :linenos:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/doc/source/index.rst 
new/oslo.context-2.2.0/doc/source/index.rst
--- old/oslo.context-0.6.0/doc/source/index.rst 2015-09-08 17:39:25.000000000 
+0200
+++ new/oslo.context-2.2.0/doc/source/index.rst 2016-02-25 07:04:46.000000000 
+0100
@@ -7,6 +7,7 @@
 
    installation
    usage
+   examples
    contributing
    history
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/doc/source/usage.rst 
new/oslo.context-2.2.0/doc/source/usage.rst
--- old/oslo.context-0.6.0/doc/source/usage.rst 2015-09-08 17:39:25.000000000 
+0200
+++ new/oslo.context-2.2.0/doc/source/usage.rst 2016-02-25 07:04:46.000000000 
+0100
@@ -2,6 +2,123 @@
  Usage
 =======
 
-To use oslo.context in a project::
+oslo.context is used in conjunction with `oslo.log`_ to provide context
+aware log records when specifying a 
:class:`~oslo_context.context.RequestContext`
+object.
 
-    from oslo_context import context
+This code example demonstrates two INFO log records with varying output
+format due to the use of RequestContext.
+
+.. _oslo.log: http://docs.openstack.org/developer/oslo.log/
+
+.. highlight:: python
+.. literalinclude:: examples/usage_simple.py
+   :linenos:
+   :lines: 28-42
+   :emphasize-lines: 2,14
+
+Source: :ref:`example_usage_simple.py`
+
+**Example Logging Output:**
+
+::
+
+    2016-01-20 21:56:29.283 8428 INFO __main__ [-] Message without context
+    2016-01-20 21:56:29.284 8428 INFO __main__ 
[req-929d23e9-f50e-46ae-a8a7-02bc8c3fd2c8 - - - - -] Message with context
+
+The format of these log records are defined by the 
+`logging_default_format_string`_ and `logging_context_format_string`_ 
+configuration options respectively. The `logging_user_identity_format`_ option
+also provides further context aware definition flexibility.
+
+.. _logging_default_format_string: 
http://docs.openstack.org/developer/oslo.log/opts.html#logging_default_format_string
+.. _logging_context_format_string: 
http://docs.openstack.org/developer/oslo.log/opts.html#logging_context_format_string
+.. _logging_user_identity_format: 
http://docs.openstack.org/developer/oslo.log/opts.html#logging_user_identity_format
+
+-----------------
+Context Variables
+-----------------
+
+The oslo.context variables used in the **logging_context_format_string** and 
+**logging_user_identity_format** configuration options include:
+
+* request_id - A request id (e.g. req-9f2c484a-b504-4fd9-b44c-4357544cca50)
+* user - A user id (e.g. e5bc7033e6b7473c9fe8ee1bd4df79a3)
+* tenant - A tenant/project id (e.g. 79e338475db84f7c91ee4e86b79b34c1)
+* domain - A domain id
+* user_domain - A user domain id
+* project_domain - A project domain id
+
+
+This code example demonstrates defining a context with specific attributes
+that are presented in the output log record.
+
+.. literalinclude:: examples/usage.py
+   :linenos:
+   :lines: 28-46
+   :emphasize-lines: 2,16-18
+
+Source: :ref:`example_usage.py`
+
+**Example Logging Output:**
+
+::
+
+    2016-01-21 17:30:50.263 12201 INFO __main__ [-] Message without context
+    2016-01-21 17:30:50.264 12201 INFO __main__ 
[req-e591e881-36c3-4627-a5d8-54df200168ef 6ce90b4d d6134462 - - a6b9360e] 
Message with context
+
+A context object can also be passed as an argument to any logging level
+message.
+
+.. literalinclude:: examples/usage.py
+   :linenos:
+   :lines: 48-51
+   :emphasize-lines: 4
+
+**Example Logging Output:**
+
+::
+
+    2016-01-21 22:43:55.621 17295 INFO __main__ 
[req-ac2d4a3a-ff3c-4c2b-97a0-2b76b33d9e72 ace90b4d b6134462 - - c6b9360e] 
Message with passed context
+
+.. note::
+
+    To maintain consistent log messages for operators across multiple
+    OpenStack projects it is highly recommended that
+    **logging_default_format_string** and **logging_context_format_string** are
+    not modified from oslo.log default values.
+
+
+--------------------------
+Project Specific Variables
+--------------------------
+
+Individual projects can also subclass 
:class:`~oslo_context.context.RequestContext`
+to provide additional attributes that can be using with oslo.log. The Nova
+`RequestContext`_ class for example provides additional variables including
+user_name and project_name.
+
+.. _RequestContext: 
http://git.openstack.org/cgit/openstack/nova/tree/nova/context.py
+
+This can for example enable the defining of **logging_user_identity_format =
+%(user_name)s %(project_name)s** which would produce a log record
+containing a context portion using names instead of ids such as
+**[req-e4b9a194-a9b1-4829-b7d0-35226fc101fc admin demo]**
+
+This following code example shows how a modified 
**logging_user_identity_format**
+configuration alters the context portion of the log record.
+
+.. literalinclude:: examples/usage_user_identity.py
+   :linenos:
+   :lines: 28-48
+   :emphasize-lines: 9
+
+Source: :ref:`example_usage_user_identity.py`
+
+
+**Example Logging Output:**
+
+::
+
+    2016-01-21 20:56:43.964 14816 INFO __main__ [-] Message without context
+    2016-01-21 20:56:43.965 14816 INFO __main__ [req-abc 
6ce90b4d/d6134462@a6b9360e] Message with context
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/oslo.context.egg-info/PKG-INFO 
new/oslo.context-2.2.0/oslo.context.egg-info/PKG-INFO
--- old/oslo.context-0.6.0/oslo.context.egg-info/PKG-INFO       2015-09-08 
17:39:45.000000000 +0200
+++ new/oslo.context-2.2.0/oslo.context.egg-info/PKG-INFO       2016-02-25 
07:05:11.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: oslo.context
-Version: 0.6.0
+Version: 2.2.0
 Summary: Oslo Context library
 Home-page: http://launchpad.net/oslo
 Author: OpenStack
@@ -10,6 +10,14 @@
         Oslo Context Library
         ====================
         
+        .. image:: https://img.shields.io/pypi/v/oslo.context.svg
+            :target: https://pypi.python.org/pypi/oslo.context/
+            :alt: Latest Version
+        
+        .. image:: https://img.shields.io/pypi/dm/oslo.context.svg
+            :target: https://pypi.python.org/pypi/oslo.context/
+            :alt: Downloads
+        
         The Oslo context library has helpers to maintain useful information
         about a request context. The request context is usually populated in
         the WSGI pipeline and used by various modules such as logging.
@@ -29,6 +37,5 @@
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 2
 Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 2.6
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/oslo.context.egg-info/SOURCES.txt 
new/oslo.context-2.2.0/oslo.context.egg-info/SOURCES.txt
--- old/oslo.context-0.6.0/oslo.context.egg-info/SOURCES.txt    2015-09-08 
17:39:45.000000000 +0200
+++ new/oslo.context-2.2.0/oslo.context.egg-info/SOURCES.txt    2016-02-25 
07:05:11.000000000 +0100
@@ -6,7 +6,6 @@
 ChangeLog
 HACKING.rst
 LICENSE
-MANIFEST.in
 README.rst
 babel.cfg
 requirements.txt
@@ -16,6 +15,7 @@
 tox.ini
 doc/source/conf.py
 doc/source/contributing.rst
+doc/source/examples.rst
 doc/source/history.rst
 doc/source/index.rst
 doc/source/installation.rst
@@ -23,6 +23,9 @@
 doc/source/api/context.rst
 doc/source/api/fixture.rst
 doc/source/api/index.rst
+doc/source/examples/usage.py
+doc/source/examples/usage_simple.py
+doc/source/examples/usage_user_identity.py
 oslo.context.egg-info/PKG-INFO
 oslo.context.egg-info/SOURCES.txt
 oslo.context.egg-info/dependency_links.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/oslo.context.egg-info/pbr.json 
new/oslo.context-2.2.0/oslo.context.egg-info/pbr.json
--- old/oslo.context-0.6.0/oslo.context.egg-info/pbr.json       2015-09-08 
17:39:45.000000000 +0200
+++ new/oslo.context-2.2.0/oslo.context.egg-info/pbr.json       2016-02-25 
07:05:11.000000000 +0100
@@ -1 +1 @@
-{"is_release": true, "git_version": "73c91b8"}
\ No newline at end of file
+{"git_version": "187d574", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.context-0.6.0/oslo.context.egg-info/requires.txt 
new/oslo.context-2.2.0/oslo.context.egg-info/requires.txt
--- old/oslo.context-0.6.0/oslo.context.egg-info/requires.txt   2015-09-08 
17:39:45.000000000 +0200
+++ new/oslo.context-2.2.0/oslo.context.egg-info/requires.txt   2016-02-25 
07:05:11.000000000 +0100
@@ -1,2 +1,2 @@
-pbr<2.0,>=1.6
+pbr>=1.6
 Babel>=1.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/oslo_context/context.py 
new/oslo.context-2.2.0/oslo_context/context.py
--- old/oslo.context-0.6.0/oslo_context/context.py      2015-09-08 
17:39:25.000000000 +0200
+++ new/oslo.context-2.2.0/oslo_context/context.py      2016-02-25 
07:04:47.000000000 +0100
@@ -14,12 +14,19 @@
 #    under the License.
 
 """
-Simple class that stores security context information in the web request.
+Base class for holding contextual information of a request
+
+This class has several uses:
+
+* Used for storing security information in a web request.
+* Used for passing contextual details to oslo.log.
 
 Projects should subclass this class if they wish to enhance the request
-context or provide additional information in their specific WSGI pipeline.
+context or provide additional information in their specific WSGI pipeline
+or logging context.
 """
 
+import inspect
 import itertools
 import threading
 import uuid
@@ -29,7 +36,8 @@
 
 
 def generate_request_id():
-    return b'req-' + str(uuid.uuid4()).encode('ascii')
+    """Generate a unique request id."""
+    return 'req-%s' % uuid.uuid4()
 
 
 class RequestContext(object):
@@ -45,7 +53,7 @@
     def __init__(self, auth_token=None, user=None, tenant=None, domain=None,
                  user_domain=None, project_domain=None, is_admin=False,
                  read_only=False, show_deleted=False, request_id=None,
-                 resource_uuid=None, overwrite=True):
+                 resource_uuid=None, overwrite=True, roles=None):
         """Initialize the RequestContext
 
         :param overwrite: Set to False to ensure that the greenthread local
@@ -61,6 +69,7 @@
         self.read_only = read_only
         self.show_deleted = show_deleted
         self.resource_uuid = resource_uuid
+        self.roles = roles or []
         if not request_id:
             request_id = generate_request_id()
         self.request_id = request_id
@@ -68,9 +77,29 @@
             self.update_store()
 
     def update_store(self):
+        """Store the context in the current thread."""
         _request_store.context = self
 
+    def to_policy_values(self):
+        """A dictionary of context attributes to enforce policy with.
+
+        oslo.policy enforcement requires a dictionary of attributes
+        representing the current logged in user on which it applies policy
+        enforcement. This dictionary defines a standard list of attributes that
+        should be available for enforcement across services.
+
+        It is expected that services will often have to override this method
+        with either deprecated values or additional attributes used by that
+        service specific policy.
+        """
+        return {'user_id': self.user,
+                'user_domain_id': self.user_domain,
+                'project_id': self.tenant,
+                'project_domain_id': self.project_domain,
+                'roles': self.roles}
+
     def to_dict(self):
+        """Return a dictionary of context attributes."""
         user_idt = (
             self.user_idt_format.format(user=self.user or '-',
                                         tenant=self.tenant or '-',
@@ -89,22 +118,47 @@
                 'auth_token': self.auth_token,
                 'request_id': self.request_id,
                 'resource_uuid': self.resource_uuid,
+                'roles': self.roles,
                 'user_identity': user_idt}
 
+    def get_logging_values(self):
+        """Return a dictionary of logging specific context attributes."""
+        values = self.to_dict()
+        return values
+
+    @classmethod
+    def from_dict(cls, values):
+        """Construct a context object from a provided dictionary."""
+        allowed = [arg for arg in
+                   inspect.getargspec(RequestContext.__init__).args
+                   if arg != 'self']
+        kwargs = {k: v for (k, v) in values.items() if k in allowed}
+        return cls(**kwargs)
+
     @classmethod
-    def from_dict(cls, ctx):
-        return cls(
-            auth_token=ctx.get("auth_token"),
-            user=ctx.get("user"),
-            tenant=ctx.get("tenant"),
-            domain=ctx.get("domain"),
-            user_domain=ctx.get("user_domain"),
-            project_domain=ctx.get("project_domain"),
-            is_admin=ctx.get("is_admin", False),
-            read_only=ctx.get("read_only", False),
-            show_deleted=ctx.get("show_deleted", False),
-            request_id=ctx.get("request_id"),
-            resource_uuid=ctx.get("resource_uuid"))
+    def from_environ(cls, environ, **kwargs):
+        """Load a context object from a request environment.
+
+        If keyword arguments are provided then they override the values in the
+        request environment.
+
+        :param environ: The environment dictionary associated with a request.
+        :type environ: dict
+        """
+        # Load a new context object from the environment variables set by
+        # auth_token middleware. See:
+        # 
http://docs.openstack.org/developer/keystonemiddleware/api/keystonemiddleware.auth_token.html#what-auth-token-adds-to-the-request-for-use-by-the-openstack-service
+        kwargs.setdefault('auth_token', environ.get('HTTP_X_AUTH_TOKEN'))
+        kwargs.setdefault('user', environ.get('HTTP_X_USER_ID'))
+        kwargs.setdefault('tenant', environ.get('HTTP_X_PROJECT_ID'))
+        kwargs.setdefault('user_domain', environ.get('HTTP_X_USER_DOMAIN_ID'))
+        kwargs.setdefault('project_domain',
+                          environ.get('HTTP_X_PROJECT_DOMAIN_ID'))
+
+        roles = environ.get('HTTP_X_ROLES')
+        kwargs.setdefault('roles', roles.split(',') if roles else [])
+
+        return cls(**kwargs)
 
 
 def get_admin_context(show_deleted=False):
@@ -133,12 +187,10 @@
 
 def is_user_context(context):
     """Indicates if the request context is a normal user."""
-    if not context:
+    if not context or not isinstance(context, RequestContext):
         return False
     if context.is_admin:
         return False
-    if not context.user_id or not context.project_id:
-        return False
     return True
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo.context-0.6.0/oslo_context/tests/test_context.py 
new/oslo.context-2.2.0/oslo_context/tests/test_context.py
--- old/oslo.context-0.6.0/oslo_context/tests/test_context.py   2015-09-08 
17:39:25.000000000 +0200
+++ new/oslo.context-2.2.0/oslo_context/tests/test_context.py   2016-02-25 
07:04:47.000000000 +0100
@@ -13,12 +13,18 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
+import uuid
+
 from oslotest import base as test_base
 
 from oslo_context import context
 from oslo_context import fixture
 
 
+class Object(object):
+    pass
+
+
 class ContextTest(test_base.BaseTestCase):
 
     def setUp(self):
@@ -48,15 +54,27 @@
         ctx1 = context.RequestContext(overwrite=True)
         context.get_admin_context()
         self.assertIs(context.get_current(), ctx1)
+        self.assertFalse(ctx1.is_admin)
 
     def test_store_current(self):
         # By default a new context is stored.
         ctx = context.RequestContext()
         self.assertIs(context.get_current(), ctx)
 
+    def test_no_context(self):
+        self.assertIsNone(context.get_current())
+
     def test_admin_context_show_deleted_flag_default(self):
         ctx = context.get_admin_context()
+        self.assertIsInstance(ctx, context.RequestContext)
+        self.assertTrue(ctx.is_admin)
         self.assertFalse(ctx.show_deleted)
+        self.assertIsNone(ctx.tenant)
+
+    def test_admin_context_show_deleted_flag_set(self):
+        ctx = context.get_admin_context(show_deleted=True)
+        self.assertTrue(ctx.is_admin)
+        self.assertTrue(ctx.show_deleted)
 
     def test_from_dict(self):
         dct = {
@@ -85,3 +103,237 @@
         self.assertTrue(ctx.show_deleted)
         self.assertEqual("request1", ctx.request_id)
         self.assertEqual("instance1", ctx.resource_uuid)
+
+    def test_from_dict_unknown_keys(self):
+        dct = {
+            "auth_token": "token1",
+            "user": "user1",
+            "read_only": True,
+            "roles": "role1,role2,role3",  # future review provides this
+            "color": "red",
+            "unknown": ""
+        }
+        ctx = context.RequestContext.from_dict(dct)
+        self.assertEqual("token1", ctx.auth_token)
+        self.assertEqual("user1", ctx.user)
+        self.assertIsNone(ctx.tenant)
+        self.assertFalse(ctx.is_admin)
+        self.assertTrue(ctx.read_only)
+        self.assertRaises(KeyError, lambda: ctx.__dict__['color'])
+
+    def test_is_user_context(self):
+        self.assertFalse(context.is_user_context(None))
+        ctx = context.RequestContext(is_admin=True)
+        self.assertFalse(context.is_user_context(ctx))
+        ctx = context.RequestContext(is_admin=False)
+        self.assertTrue(context.is_user_context(ctx))
+        self.assertFalse(context.is_user_context("non context object"))
+
+    def test_from_environ_variables(self):
+        auth_token = uuid.uuid4().hex
+        user_id = uuid.uuid4().hex
+        project_id = uuid.uuid4().hex
+        user_domain_id = uuid.uuid4().hex
+        project_domain_id = uuid.uuid4().hex
+        roles = [uuid.uuid4().hex, uuid.uuid4().hex, uuid.uuid4().hex]
+
+        environ = {'HTTP_X_AUTH_TOKEN': auth_token,
+                   'HTTP_X_USER_ID': user_id,
+                   'HTTP_X_PROJECT_ID': project_id,
+                   'HTTP_X_USER_DOMAIN_ID': user_domain_id,
+                   'HTTP_X_PROJECT_DOMAIN_ID': project_domain_id,
+                   'HTTP_X_ROLES': ','.join(roles)}
+
+        ctx = context.RequestContext.from_environ(environ)
+
+        self.assertEqual(auth_token, ctx.auth_token)
+        self.assertEqual(user_id, ctx.user)
+        self.assertEqual(project_id, ctx.tenant)
+        self.assertEqual(user_domain_id, ctx.user_domain)
+        self.assertEqual(project_domain_id, ctx.project_domain)
+        self.assertEqual(roles, ctx.roles)
+
+    def test_from_environ_no_roles(self):
+        ctx = context.RequestContext.from_environ(environ={})
+        self.assertEqual([], ctx.roles)
+
+        ctx = context.RequestContext.from_environ(environ={'HTTP_X_ROLES': ''})
+        self.assertEqual([], ctx.roles)
+
+    def test_from_function_and_args(self):
+        ctx = context.RequestContext(user="user1")
+        arg = []
+        kw = dict(c=ctx, s="s")
+        fn = context.get_context_from_function_and_args
+        ctx1 = context.get_context_from_function_and_args(fn, arg, kw)
+        self.assertIs(ctx1, ctx)
+
+    def test_not_in_from_function_and_args(self):
+        arg = []
+        kw = dict()
+        fn = context.get_context_from_function_and_args
+        ctx1 = context.get_context_from_function_and_args(fn, arg, kw)
+        self.assertIsNone(ctx1)
+
+    def test_values(self):
+        auth_token = "token1"
+        user = "user1"
+        tenant = "tenant1"
+        domain = "domain1"
+        user_domain = "user_domain1"
+        project_domain = "project_domain1"
+        is_admin = True
+        read_only = True
+        show_deleted = True
+        request_id = "id1"
+        resource_uuid = "uuid1"
+
+        ctx = context.RequestContext(auth_token=auth_token,
+                                     user=user,
+                                     tenant=tenant,
+                                     domain=domain,
+                                     user_domain=user_domain,
+                                     project_domain=project_domain,
+                                     is_admin=is_admin,
+                                     read_only=read_only,
+                                     show_deleted=show_deleted,
+                                     request_id=request_id,
+                                     resource_uuid=resource_uuid)
+        self.assertEqual(auth_token, ctx.auth_token)
+        self.assertEqual(user, ctx.user)
+        self.assertEqual(tenant, ctx.tenant)
+        self.assertEqual(domain, ctx.domain)
+        self.assertEqual(user_domain, ctx.user_domain)
+        self.assertEqual(project_domain, ctx.project_domain)
+        self.assertEqual(is_admin, ctx.is_admin)
+        self.assertEqual(read_only, ctx.read_only)
+        self.assertEqual(show_deleted, ctx.show_deleted)
+        self.assertEqual(request_id, ctx.request_id)
+        self.assertEqual(resource_uuid, ctx.resource_uuid)
+
+        d = ctx.to_dict()
+        self.assertIn('auth_token', d)
+        self.assertIn('user', d)
+        self.assertIn('tenant', d)
+        self.assertIn('domain', d)
+        self.assertIn('user_domain', d)
+        self.assertIn('project_domain', d)
+        self.assertIn('is_admin', d)
+        self.assertIn('read_only', d)
+        self.assertIn('show_deleted', d)
+        self.assertIn('request_id', d)
+        self.assertIn('resource_uuid', d)
+        self.assertIn('user_identity', d)
+        self.assertIn('roles', d)
+
+        self.assertEqual(auth_token, d['auth_token'])
+        self.assertEqual(tenant, d['tenant'])
+        self.assertEqual(domain, d['domain'])
+        self.assertEqual(user_domain, d['user_domain'])
+        self.assertEqual(project_domain, d['project_domain'])
+        self.assertEqual(is_admin, d['is_admin'])
+        self.assertEqual(read_only, d['read_only'])
+        self.assertEqual(show_deleted, d['show_deleted'])
+        self.assertEqual(request_id, d['request_id'])
+        self.assertEqual(resource_uuid, d['resource_uuid'])
+        user_identity = "%s %s %s %s %s" % (user, tenant, domain,
+                                            user_domain, project_domain)
+        self.assertEqual(user_identity, d['user_identity'])
+        self.assertEqual([], d['roles'])
+
+    def test_get_logging_values(self):
+        auth_token = "token1"
+        user = "user1"
+        tenant = "tenant1"
+        domain = "domain1"
+        user_domain = "user_domain1"
+        project_domain = "project_domain1"
+        is_admin = True
+        read_only = True
+        show_deleted = True
+        request_id = "id1"
+        resource_uuid = "uuid1"
+
+        ctx = context.RequestContext(auth_token=auth_token,
+                                     user=user,
+                                     tenant=tenant,
+                                     domain=domain,
+                                     user_domain=user_domain,
+                                     project_domain=project_domain,
+                                     is_admin=is_admin,
+                                     read_only=read_only,
+                                     show_deleted=show_deleted,
+                                     request_id=request_id,
+                                     resource_uuid=resource_uuid)
+        self.assertEqual(auth_token, ctx.auth_token)
+        self.assertEqual(user, ctx.user)
+        self.assertEqual(tenant, ctx.tenant)
+        self.assertEqual(domain, ctx.domain)
+        self.assertEqual(user_domain, ctx.user_domain)
+        self.assertEqual(project_domain, ctx.project_domain)
+        self.assertEqual(is_admin, ctx.is_admin)
+        self.assertEqual(read_only, ctx.read_only)
+        self.assertEqual(show_deleted, ctx.show_deleted)
+        self.assertEqual(request_id, ctx.request_id)
+        self.assertEqual(resource_uuid, ctx.resource_uuid)
+
+        d = ctx.get_logging_values()
+        self.assertIn('auth_token', d)
+        self.assertIn('user', d)
+        self.assertIn('tenant', d)
+        self.assertIn('domain', d)
+        self.assertIn('user_domain', d)
+        self.assertIn('project_domain', d)
+        self.assertIn('is_admin', d)
+        self.assertIn('read_only', d)
+        self.assertIn('show_deleted', d)
+        self.assertIn('request_id', d)
+        self.assertIn('resource_uuid', d)
+        self.assertIn('user_identity', d)
+
+        self.assertEqual(auth_token, d['auth_token'])
+        self.assertEqual(tenant, d['tenant'])
+        self.assertEqual(domain, d['domain'])
+        self.assertEqual(user_domain, d['user_domain'])
+        self.assertEqual(project_domain, d['project_domain'])
+        self.assertEqual(is_admin, d['is_admin'])
+        self.assertEqual(read_only, d['read_only'])
+        self.assertEqual(show_deleted, d['show_deleted'])
+        self.assertEqual(request_id, d['request_id'])
+        self.assertEqual(resource_uuid, d['resource_uuid'])
+        user_identity = "%s %s %s %s %s" % (user, tenant, domain,
+                                            user_domain, project_domain)
+        self.assertEqual(user_identity, d['user_identity'])
+
+    def test_dict_empty_user_identity(self):
+        ctx = context.RequestContext()
+        d = ctx.to_dict()
+        self.assertEqual("- - - - -", d['user_identity'])
+
+    def test_generate_request_id(self):
+        id = context.generate_request_id()
+        self.assertEqual("req-", id[:4])
+
+    def test_generate_request_id_unique(self):
+        id1 = context.generate_request_id()
+        id2 = context.generate_request_id()
+        self.assertNotEqual(id1, id2)
+
+    def test_policy_dict(self):
+        user = uuid.uuid4().hex
+        user_domain = uuid.uuid4().hex
+        tenant = uuid.uuid4().hex
+        project_domain = uuid.uuid4().hex
+        roles = [uuid.uuid4().hex, uuid.uuid4().hex, uuid.uuid4().hex]
+
+        ctx = context.RequestContext(user=user,
+                                     user_domain=user_domain,
+                                     tenant=tenant,
+                                     project_domain=project_domain,
+                                     roles=roles)
+
+        self.assertEqual({'user_id': user,
+                          'user_domain_id': user_domain,
+                          'project_id': tenant,
+                          'project_domain_id': project_domain,
+                          'roles': roles}, ctx.to_policy_values())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/requirements.txt 
new/oslo.context-2.2.0/requirements.txt
--- old/oslo.context-0.6.0/requirements.txt     2015-09-08 17:39:25.000000000 
+0200
+++ new/oslo.context-2.2.0/requirements.txt     2016-02-25 07:04:46.000000000 
+0100
@@ -2,5 +2,5 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-pbr<2.0,>=1.6
-Babel>=1.3
+pbr>=1.6 # Apache-2.0
+Babel>=1.3 # BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/setup.cfg 
new/oslo.context-2.2.0/setup.cfg
--- old/oslo.context-0.6.0/setup.cfg    2015-09-08 17:39:45.000000000 +0200
+++ new/oslo.context-2.2.0/setup.cfg    2016-02-25 07:05:11.000000000 +0100
@@ -15,7 +15,6 @@
        Programming Language :: Python
        Programming Language :: Python :: 2
        Programming Language :: Python :: 2.7
-       Programming Language :: Python :: 2.6
        Programming Language :: Python :: 3
        Programming Language :: Python :: 3.4
 
@@ -52,7 +51,7 @@
 universal = true
 
 [egg_info]
-tag_build = 
 tag_svn_revision = 0
 tag_date = 0
+tag_build = 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/setup.py 
new/oslo.context-2.2.0/setup.py
--- old/oslo.context-0.6.0/setup.py     2015-09-08 17:39:25.000000000 +0200
+++ new/oslo.context-2.2.0/setup.py     2016-02-25 07:04:46.000000000 +0100
@@ -25,5 +25,5 @@
     pass
 
 setuptools.setup(
-    setup_requires=['pbr>=1.3'],
+    setup_requires=['pbr>=1.8'],
     pbr=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/test-requirements.txt 
new/oslo.context-2.2.0/test-requirements.txt
--- old/oslo.context-0.6.0/test-requirements.txt        2015-09-08 
17:39:25.000000000 +0200
+++ new/oslo.context-2.2.0/test-requirements.txt        2016-02-25 
07:04:46.000000000 +0100
@@ -4,8 +4,8 @@
 
 hacking<0.11,>=0.10.0
 oslotest>=1.10.0 # Apache-2.0
-coverage>=3.6
+coverage>=3.6 # Apache-2.0
 
 # These are needed for docs generation
-oslosphinx>=2.5.0 # Apache-2.0
-sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
+oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
+sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo.context-0.6.0/tox.ini 
new/oslo.context-2.2.0/tox.ini
--- old/oslo.context-0.6.0/tox.ini      2015-09-08 17:39:25.000000000 +0200
+++ new/oslo.context-2.2.0/tox.ini      2016-02-25 07:04:46.000000000 +0100
@@ -1,19 +1,9 @@
 [tox]
 minversion = 1.6
-envlist = py34,py26,py27,pypy,pep8
-# NOTE(dhellmann): We cannot set skipdist=True
-# for oslo libraries because of the namespace package.
-#skipsdist = True
+envlist = py34,py27,pypy,pep8
 
 [testenv]
-# NOTE(dhellmann): We cannot set usedevelop=True
-# for oslo libraries because of the namespace package.
-#usedevelop = True
-install_command = pip install -U {opts} {packages}
-setenv =
-   VIRTUAL_ENV={envdir}
-deps = -r{toxinidir}/requirements.txt
-       -r{toxinidir}/test-requirements.txt
+deps = -r{toxinidir}/test-requirements.txt
 commands = python setup.py testr --slowest --testr-args='{posargs}'
 
 [testenv:pep8]
@@ -26,7 +16,7 @@
 commands = python setup.py build_sphinx
 
 [testenv:cover]
-commands = python setup.py testr --coverage --testr-args='{posargs}'
+commands = python setup.py test --coverage 
--coverage-package-name=oslo_context --testr-args='{posargs}'
 
 [flake8]
 # H803 skipped on purpose per list discussion.


Reply via email to