You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ad...@apache.org on 2014/06/16 08:16:03 UTC

svn commit: r1602804 [2/3] - in /labs/panopticon: ./ bin/ docs/ docs/source/ docs/source/reference/api/ docs/source/reference/commands/ pan-commands/ pan-commands/bin/ pan-commands/docs/ pan-commands/docs/source/ pan-commands/docs/source/reference/ pan...

Added: labs/panopticon/pan-site/LICENSE.txt
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/LICENSE.txt?rev=1602804&view=auto
==============================================================================
--- labs/panopticon/pan-site/LICENSE.txt (added)
+++ labs/panopticon/pan-site/LICENSE.txt Mon Jun 16 06:15:59 2014
@@ -0,0 +1,259 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.
+
+
+SUBCOMPONENTS:
+
+The software includes a number of subcomponents with separate copyright notices
+and license terms. Your use of the source code for the these subcomponents is
+subject to the terms and conditions of the following licenses.
+
+For the zkpath component:
+
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF hereby
+grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
+analyze, test, perform and/or display publicly, prepare derivative works,
+distribute, and otherwise use Python alone or in any derivative version,
+provided, however, that PSF's License Agreement and PSF's notice of copyright,
+i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+Python Software Foundation; All Rights Reserved" are retained in Python alone or
+in any derivative version prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python.
+
+4. PSF is making Python available to Licensee on an "AS IS"
+basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee.  This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.

Copied: labs/panopticon/pan-site/MANIFEST.in (from r1594458, labs/panopticon/MANIFEST.in)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/MANIFEST.in?p2=labs/panopticon/pan-site/MANIFEST.in&p1=labs/panopticon/MANIFEST.in&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/NOTICE.txt (from r1594458, labs/panopticon/NOTICE.txt)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/NOTICE.txt?p2=labs/panopticon/pan-site/NOTICE.txt&p1=labs/panopticon/NOTICE.txt&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Added: labs/panopticon/pan-site/README.rst
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/README.rst?rev=1602804&view=auto
==============================================================================
--- labs/panopticon/pan-site/README.rst (added)
+++ labs/panopticon/pan-site/README.rst Mon Jun 16 06:15:59 2014
@@ -0,0 +1,6 @@
+=============
+Panopticon
+=============
+
+.. rubric:: Panopticon.
+

Copied: labs/panopticon/pan-site/bin/panopticon.wsgi (from r1594458, labs/panopticon/bin/ezmlm.wsgi)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/bin/panopticon.wsgi?p2=labs/panopticon/pan-site/bin/panopticon.wsgi&p1=labs/panopticon/bin/ezmlm.wsgi&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/bin/ezmlm.wsgi (original)
+++ labs/panopticon/pan-site/bin/panopticon.wsgi Mon Jun 16 06:15:59 2014
@@ -1,4 +1,4 @@
-# !/usr/bin/env python
+#!/usr/bin/env python
 #
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
@@ -18,13 +18,10 @@
 # under the License.
 #
 """
-CGI based WSGI API to mailing lists.
+WSGI script to access panopticon web site.
 """
-import os
+from asf.panopticon import app
 
 
 def application(environ, start_response):
-    os.environ['EZMLM_FLASK_CONFIG'] = environ['EZMLM_FLASK_CONFIG']
-    from asf.wsgi.ezmlm import app
-
     return app.wsgi_app(environ, start_response)

Copied: labs/panopticon/pan-site/docs/Makefile (from r1594458, labs/panopticon/docs/Makefile)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/docs/Makefile?p2=labs/panopticon/pan-site/docs/Makefile&p1=labs/panopticon/docs/Makefile&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/docs/source/conf.py (from r1594458, labs/panopticon/docs/source/conf.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/docs/source/conf.py?p2=labs/panopticon/pan-site/docs/source/conf.py&p1=labs/panopticon/docs/source/conf.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/docs/source/index.rst (from r1594458, labs/panopticon/docs/source/index.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/docs/source/index.rst?p2=labs/panopticon/pan-site/docs/source/index.rst&p1=labs/panopticon/docs/source/index.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/docs/source/reference/api/index.en.rst (from r1594458, labs/panopticon/docs/source/reference/api/index.en.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/docs/source/reference/api/index.en.rst?p2=labs/panopticon/pan-site/docs/source/reference/api/index.en.rst&p1=labs/panopticon/docs/source/reference/api/index.en.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/docs/source/reference/api/person.en.rst (from r1594458, labs/panopticon/docs/source/reference/api/person.en.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/docs/source/reference/api/person.en.rst?p2=labs/panopticon/pan-site/docs/source/reference/api/person.en.rst&p1=labs/panopticon/docs/source/reference/api/person.en.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/docs/source/reference/commands/common_arguments.en.rst (from r1594458, labs/panopticon/docs/source/reference/commands/common_arguments.en.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/docs/source/reference/commands/common_arguments.en.rst?p2=labs/panopticon/pan-site/docs/source/reference/commands/common_arguments.en.rst&p1=labs/panopticon/docs/source/reference/commands/common_arguments.en.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/docs/source/reference/commands/index.en.rst (from r1594458, labs/panopticon/docs/source/reference/commands/index.en.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/docs/source/reference/commands/index.en.rst?p2=labs/panopticon/pan-site/docs/source/reference/commands/index.en.rst&p1=labs/panopticon/docs/source/reference/commands/index.en.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/docs/source/reference/commands/moderator.en.rst (from r1594458, labs/panopticon/docs/source/reference/commands/moderator.en.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/docs/source/reference/commands/moderator.en.rst?p2=labs/panopticon/pan-site/docs/source/reference/commands/moderator.en.rst&p1=labs/panopticon/docs/source/reference/commands/moderator.en.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Added: labs/panopticon/pan-site/requirements.txt
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/requirements.txt?rev=1602804&view=auto
==============================================================================
--- labs/panopticon/pan-site/requirements.txt (added)
+++ labs/panopticon/pan-site/requirements.txt Mon Jun 16 06:15:59 2014
@@ -0,0 +1,4 @@
+Flask
+Flask-Principal
+
+pan-utils
\ No newline at end of file

Added: labs/panopticon/pan-site/setup.cfg
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/setup.cfg?rev=1602804&view=auto
==============================================================================
--- labs/panopticon/pan-site/setup.cfg (added)
+++ labs/panopticon/pan-site/setup.cfg Mon Jun 16 06:15:59 2014
@@ -0,0 +1,6 @@
+[egg_info]
+tag_build = a1
+
+[flake8]
+ignore = E501
+exclude = .tox,.git,.venv,docs,tests

Copied: labs/panopticon/pan-site/setup.py (from r1594458, labs/panopticon/setup.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/setup.py?p2=labs/panopticon/pan-site/setup.py&p1=labs/panopticon/setup.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/setup.py (original)
+++ labs/panopticon/pan-site/setup.py Mon Jun 16 06:15:59 2014
@@ -61,44 +61,14 @@ class Doc(Command):
                          '   %s/\n' % (mode, path))
 
 
-class Test(Command):
-    description = 'run nosetests'
-    user_options = [('verbose', 'v', 'run nosetests with -v option')]
-    boolean_options = ['verbose']
-
-    def initialize_options(self):
-        self.verbose = False
-
-    def finalize_options(self):
-        pass
-
-    def run(self):
-        if self.verbose:
-            verbose = '-v'
-        else:
-            verbose = ''
-
-        status = subprocess.call(['nosetests', verbose])
-
-        if status:
-            raise RuntimeError('nosetests step failed')
-
-
-with open('requirements.txt') as f:
-    install_requires = f.read().splitlines()
-
-tests_requires = install_requires + [
-    'nose >= 1.2',
-]
-
 setup(
-    name='panopticon',
+    name='panopticon-site',
     version=VERSION,
     url='https://svn.apache.org/repos/asf/labs/panopticon/',
     license='Apache Software License (http://www.apache.org/licenses/LICENSE-2.0)',
     author='Apache Software Foundation',
     author_email='labs@labs.apache.org',
-    description='ASF Panopticon',
+    description='ASF Panopticon Web Site',
     # don't ever depend on refcounting to close files anywhere else
     long_description=open('README.rst', encoding='utf-8').read(),
 
@@ -110,10 +80,8 @@ setup(
 
     zip_safe=False,
     platforms='any',
-    install_requires=install_requires,
 
-    tests_require=tests_requires,
-    test_suite='nose.collector',
+    tests_require=['tox'],
 
     classifiers=[
         'Intended Audience :: Developers',

Copied: labs/panopticon/pan-site/src/asf/__init__.py (from r1594458, labs/panopticon/src/asf/__init__.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/__init__.py?p2=labs/panopticon/pan-site/src/asf/__init__.py&p1=labs/panopticon/src/asf/__init__.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/__init__.py (from r1594458, labs/panopticon/src/asf/panopticon/__init__.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/__init__.py?p2=labs/panopticon/pan-site/src/asf/panopticon/__init__.py&p1=labs/panopticon/src/asf/panopticon/__init__.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/src/asf/panopticon/__init__.py (original)
+++ labs/panopticon/pan-site/src/asf/panopticon/__init__.py Mon Jun 16 06:15:59 2014
@@ -27,6 +27,7 @@ from asf.person import Person, PersonErr
 
 
 app = Flask(__name__)
+app.config.from_envvar('PANOPTICON_FLASK_CONFIG')
 
 # TODO set this via an external configuration
 app.secret_key = '\xd0\xe8\x13\x08\xfd\xa3\x97*\x161FY\x9d\xdd\xbb\xff\xacWF\xd4}\t\x03\xf2'

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/css/bootstrap.css (from r1594458, labs/panopticon/src/asf/panopticon/static/css/bootstrap.css)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/css/bootstrap.css?p2=labs/panopticon/pan-site/src/asf/panopticon/static/css/bootstrap.css&p1=labs/panopticon/src/asf/panopticon/static/css/bootstrap.css&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/css/bootstrap.min.css (from r1594458, labs/panopticon/src/asf/panopticon/static/css/bootstrap.min.css)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/css/bootstrap.min.css?p2=labs/panopticon/pan-site/src/asf/panopticon/static/css/bootstrap.min.css&p1=labs/panopticon/src/asf/panopticon/static/css/bootstrap.min.css&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/css/panopticon.css (from r1594458, labs/panopticon/src/asf/panopticon/static/css/panopticon.css)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/css/panopticon.css?p2=labs/panopticon/pan-site/src/asf/panopticon/static/css/panopticon.css&p1=labs/panopticon/src/asf/panopticon/static/css/panopticon.css&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/favicon.ico (from r1594458, labs/panopticon/src/asf/panopticon/static/favicon.ico)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/favicon.ico?p2=labs/panopticon/pan-site/src/asf/panopticon/static/favicon.ico&p1=labs/panopticon/src/asf/panopticon/static/favicon.ico&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.eot (from r1594458, labs/panopticon/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.eot)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.eot?p2=labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.eot&p1=labs/panopticon/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.eot&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.svg (from r1594458, labs/panopticon/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.svg)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.svg?p2=labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.svg&p1=labs/panopticon/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.svg&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.ttf (from r1594458, labs/panopticon/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.ttf)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.ttf?p2=labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.ttf&p1=labs/panopticon/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.ttf&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.woff (from r1594458, labs/panopticon/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.woff)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.woff?p2=labs/panopticon/pan-site/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.woff&p1=labs/panopticon/src/asf/panopticon/static/fonts/glyphicons-halflings-regular.woff&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/js/bootstrap.js (from r1594458, labs/panopticon/src/asf/panopticon/static/js/bootstrap.js)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/js/bootstrap.js?p2=labs/panopticon/pan-site/src/asf/panopticon/static/js/bootstrap.js&p1=labs/panopticon/src/asf/panopticon/static/js/bootstrap.js&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/js/bootstrap.min.js (from r1594458, labs/panopticon/src/asf/panopticon/static/js/bootstrap.min.js)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/js/bootstrap.min.js?p2=labs/panopticon/pan-site/src/asf/panopticon/static/js/bootstrap.min.js&p1=labs/panopticon/src/asf/panopticon/static/js/bootstrap.min.js&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/js/handlebars.js (from r1594458, labs/panopticon/src/asf/panopticon/static/js/handlebars.js)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/js/handlebars.js?p2=labs/panopticon/pan-site/src/asf/panopticon/static/js/handlebars.js&p1=labs/panopticon/src/asf/panopticon/static/js/handlebars.js&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/static/js/user-popover.js (from r1594458, labs/panopticon/src/asf/panopticon/static/js/user-popover.js)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/static/js/user-popover.js?p2=labs/panopticon/pan-site/src/asf/panopticon/static/js/user-popover.js&p1=labs/panopticon/src/asf/panopticon/static/js/user-popover.js&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/templates/error.html (from r1594458, labs/panopticon/src/asf/panopticon/templates/error.html)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/templates/error.html?p2=labs/panopticon/pan-site/src/asf/panopticon/templates/error.html&p1=labs/panopticon/src/asf/panopticon/templates/error.html&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/templates/forbidden.html (from r1594458, labs/panopticon/src/asf/panopticon/templates/forbidden.html)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/templates/forbidden.html?p2=labs/panopticon/pan-site/src/asf/panopticon/templates/forbidden.html&p1=labs/panopticon/src/asf/panopticon/templates/forbidden.html&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/templates/index.html (from r1594458, labs/panopticon/src/asf/panopticon/templates/index.html)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/templates/index.html?p2=labs/panopticon/pan-site/src/asf/panopticon/templates/index.html&p1=labs/panopticon/src/asf/panopticon/templates/index.html&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/templates/layout.html (from r1594458, labs/panopticon/src/asf/panopticon/templates/layout.html)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/templates/layout.html?p2=labs/panopticon/pan-site/src/asf/panopticon/templates/layout.html&p1=labs/panopticon/src/asf/panopticon/templates/layout.html&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/src/asf/panopticon/templates/not_found.html (from r1594458, labs/panopticon/src/asf/panopticon/templates/not_found.html)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/src/asf/panopticon/templates/not_found.html?p2=labs/panopticon/pan-site/src/asf/panopticon/templates/not_found.html&p1=labs/panopticon/src/asf/panopticon/templates/not_found.html&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Added: labs/panopticon/pan-site/tests/data/panopticon-flask.properties
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/tests/data/panopticon-flask.properties?rev=1602804&view=auto
==============================================================================
    (empty)

Copied: labs/panopticon/pan-site/tests/test_panopticon.py (from r1594458, labs/panopticon/src/asf/incubator/__init__.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/tests/test_panopticon.py?p2=labs/panopticon/pan-site/tests/test_panopticon.py&p1=labs/panopticon/src/asf/incubator/__init__.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/src/asf/incubator/__init__.py (original)
+++ labs/panopticon/pan-site/tests/test_panopticon.py Mon Jun 16 06:15:59 2014
@@ -7,7 +7,7 @@
 # "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
+# 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
@@ -16,3 +16,7 @@
 # specific language governing permissions and limitations
 # under the License.
 #
+
+
+def test_panopticon():
+    pass
\ No newline at end of file

Added: labs/panopticon/pan-site/tox.ini
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/tox.ini?rev=1602804&view=auto
==============================================================================
--- labs/panopticon/pan-site/tox.ini (added)
+++ labs/panopticon/pan-site/tox.ini Mon Jun 16 06:15:59 2014
@@ -0,0 +1,13 @@
+[tox]
+deps=-rrequirements.txt
+envlist=flake8,pytest
+
+[testenv:pytest]
+deps=pytest
+     mock
+     -rrequirements.txt
+commands=py.test {posargs} # substitute with tox' positional arguments
+
+[testenv:flake8]
+commands = flake8 {posargs}
+deps = flake8

Added: labs/panopticon/pan-site/uwsgi.ini
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-site/uwsgi.ini?rev=1602804&view=auto
==============================================================================
--- labs/panopticon/pan-site/uwsgi.ini (added)
+++ labs/panopticon/pan-site/uwsgi.ini Mon Jun 16 06:15:59 2014
@@ -0,0 +1,9 @@
+[uwsgi]
+http = 127.0.0.1:8080
+env = PANOPTICON_FLASK_CONFIG=../../../tests/data/panopticon-flask.properties
+wsgi-file = ./bin/panopticon.wsgi
+callable = app
+pythonpath = src
+processes = 4
+threads = 2
+stats = 127.0.0.1:9191

Copied: labs/panopticon/pan-utils/.gitignore (from r1594458, labs/panopticon/.gitignore)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/.gitignore?p2=labs/panopticon/pan-utils/.gitignore&p1=labs/panopticon/.gitignore&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Added: labs/panopticon/pan-utils/LICENSE.txt
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/LICENSE.txt?rev=1602804&view=auto
==============================================================================
--- labs/panopticon/pan-utils/LICENSE.txt (added)
+++ labs/panopticon/pan-utils/LICENSE.txt Mon Jun 16 06:15:59 2014
@@ -0,0 +1,259 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.
+
+
+SUBCOMPONENTS:
+
+The software includes a number of subcomponents with separate copyright notices
+and license terms. Your use of the source code for the these subcomponents is
+subject to the terms and conditions of the following licenses.
+
+For the zkpath component:
+
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF hereby
+grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
+analyze, test, perform and/or display publicly, prepare derivative works,
+distribute, and otherwise use Python alone or in any derivative version,
+provided, however, that PSF's License Agreement and PSF's notice of copyright,
+i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+Python Software Foundation; All Rights Reserved" are retained in Python alone or
+in any derivative version prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python.
+
+4. PSF is making Python available to Licensee on an "AS IS"
+basis.  PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee.  This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.

Copied: labs/panopticon/pan-utils/MANIFEST.in (from r1594458, labs/panopticon/MANIFEST.in)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/MANIFEST.in?p2=labs/panopticon/pan-utils/MANIFEST.in&p1=labs/panopticon/MANIFEST.in&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/NOTICE.txt (from r1594458, labs/panopticon/NOTICE.txt)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/NOTICE.txt?p2=labs/panopticon/pan-utils/NOTICE.txt&p1=labs/panopticon/NOTICE.txt&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Added: labs/panopticon/pan-utils/README.rst
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/README.rst?rev=1602804&view=auto
==============================================================================
--- labs/panopticon/pan-utils/README.rst (added)
+++ labs/panopticon/pan-utils/README.rst Mon Jun 16 06:15:59 2014
@@ -0,0 +1,6 @@
+=============
+Panopticon
+=============
+
+.. rubric:: Panopticon.
+

Copied: labs/panopticon/pan-utils/docs/Makefile (from r1594458, labs/panopticon/docs/Makefile)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/docs/Makefile?p2=labs/panopticon/pan-utils/docs/Makefile&p1=labs/panopticon/docs/Makefile&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/docs/source/conf.py (from r1594458, labs/panopticon/docs/source/conf.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/docs/source/conf.py?p2=labs/panopticon/pan-utils/docs/source/conf.py&p1=labs/panopticon/docs/source/conf.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/docs/source/index.rst (from r1594458, labs/panopticon/docs/source/index.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/docs/source/index.rst?p2=labs/panopticon/pan-utils/docs/source/index.rst&p1=labs/panopticon/docs/source/index.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/docs/source/reference/api/index.en.rst (from r1594458, labs/panopticon/docs/source/reference/api/index.en.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/docs/source/reference/api/index.en.rst?p2=labs/panopticon/pan-utils/docs/source/reference/api/index.en.rst&p1=labs/panopticon/docs/source/reference/api/index.en.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/docs/source/reference/api/person.en.rst (from r1594458, labs/panopticon/docs/source/reference/api/person.en.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/docs/source/reference/api/person.en.rst?p2=labs/panopticon/pan-utils/docs/source/reference/api/person.en.rst&p1=labs/panopticon/docs/source/reference/api/person.en.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/docs/source/reference/commands/common_arguments.en.rst (from r1594458, labs/panopticon/docs/source/reference/commands/common_arguments.en.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/docs/source/reference/commands/common_arguments.en.rst?p2=labs/panopticon/pan-utils/docs/source/reference/commands/common_arguments.en.rst&p1=labs/panopticon/docs/source/reference/commands/common_arguments.en.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/docs/source/reference/commands/index.en.rst (from r1594458, labs/panopticon/docs/source/reference/commands/index.en.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/docs/source/reference/commands/index.en.rst?p2=labs/panopticon/pan-utils/docs/source/reference/commands/index.en.rst&p1=labs/panopticon/docs/source/reference/commands/index.en.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/docs/source/reference/commands/moderator.en.rst (from r1594458, labs/panopticon/docs/source/reference/commands/moderator.en.rst)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/docs/source/reference/commands/moderator.en.rst?p2=labs/panopticon/pan-utils/docs/source/reference/commands/moderator.en.rst&p1=labs/panopticon/docs/source/reference/commands/moderator.en.rst&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/requirements.txt (from r1594458, labs/panopticon/requirements.txt)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/requirements.txt?p2=labs/panopticon/pan-utils/requirements.txt&p1=labs/panopticon/requirements.txt&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/requirements.txt (original)
+++ labs/panopticon/pan-utils/requirements.txt Mon Jun 16 06:15:59 2014
@@ -1,10 +1,5 @@
-argparse
 brownie
-Flask
-Flask-Principal
 keyring==1.6.1
-mock
-nose
 PyCrypto
 python-ldap
 restkit

Added: labs/panopticon/pan-utils/setup.cfg
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/setup.cfg?rev=1602804&view=auto
==============================================================================
--- labs/panopticon/pan-utils/setup.cfg (added)
+++ labs/panopticon/pan-utils/setup.cfg Mon Jun 16 06:15:59 2014
@@ -0,0 +1,6 @@
+[egg_info]
+tag_build = a1
+
+[flake8]
+ignore = E501
+exclude = .tox,.git,.venv,docs,tests

Copied: labs/panopticon/pan-utils/setup.py (from r1594458, labs/panopticon/setup.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/setup.py?p2=labs/panopticon/pan-utils/setup.py&p1=labs/panopticon/setup.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/setup.py (original)
+++ labs/panopticon/pan-utils/setup.py Mon Jun 16 06:15:59 2014
@@ -60,60 +60,25 @@ class Doc(Command):
         sys.stdout.write('\nDocumentation step "%s" performed, results here:\n'
                          '   %s/\n' % (mode, path))
 
-
-class Test(Command):
-    description = 'run nosetests'
-    user_options = [('verbose', 'v', 'run nosetests with -v option')]
-    boolean_options = ['verbose']
-
-    def initialize_options(self):
-        self.verbose = False
-
-    def finalize_options(self):
-        pass
-
-    def run(self):
-        if self.verbose:
-            verbose = '-v'
-        else:
-            verbose = ''
-
-        status = subprocess.call(['nosetests', verbose])
-
-        if status:
-            raise RuntimeError('nosetests step failed')
-
-
-with open('requirements.txt') as f:
-    install_requires = f.read().splitlines()
-
-tests_requires = install_requires + [
-    'nose >= 1.2',
-]
-
 setup(
-    name='panopticon',
+    name='panopticon-utils',
     version=VERSION,
     url='https://svn.apache.org/repos/asf/labs/panopticon/',
     license='Apache Software License (http://www.apache.org/licenses/LICENSE-2.0)',
     author='Apache Software Foundation',
     author_email='labs@labs.apache.org',
-    description='ASF Panopticon',
+    description='ASF Panopticon Utilities',
     # don't ever depend on refcounting to close files anywhere else
     long_description=open('README.rst', encoding='utf-8').read(),
 
-    scripts=['bin/moderator', 'bin/ezmlm.wsgi'],
-
     namespace_packages=['asf'],
     package_dir={'': 'src'},
     packages=find_packages('src'),
 
     zip_safe=False,
     platforms='any',
-    install_requires=install_requires,
 
-    tests_require=tests_requires,
-    test_suite='nose.collector',
+    tests_require=['tox'],
 
     classifiers=[
         'Intended Audience :: Developers',
@@ -124,5 +89,5 @@ setup(
         'Programming Language :: Python :: 2.6',
         'Topic :: Software Development :: Libraries :: Python Modules'
     ],
-    cmdclass={'doc': Doc, 'test': Test},
+    cmdclass={'doc': Doc},
 )

Copied: labs/panopticon/pan-utils/src/asf/__init__.py (from r1594458, labs/panopticon/src/asf/__init__.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/__init__.py?p2=labs/panopticon/pan-utils/src/asf/__init__.py&p1=labs/panopticon/src/asf/__init__.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/data/__init__.py (from r1594458, labs/panopticon/src/asf/data/__init__.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/data/__init__.py?p2=labs/panopticon/pan-utils/src/asf/data/__init__.py&p1=labs/panopticon/src/asf/data/__init__.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/data/aliases.py (from r1594458, labs/panopticon/src/asf/data/aliases.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/data/aliases.py?p2=labs/panopticon/pan-utils/src/asf/data/aliases.py&p1=labs/panopticon/src/asf/data/aliases.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/data/ldap.py (from r1594458, labs/panopticon/src/asf/data/ldap.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/data/ldap.py?p2=labs/panopticon/pan-utils/src/asf/data/ldap.py&p1=labs/panopticon/src/asf/data/ldap.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/src/asf/data/ldap.py (original)
+++ labs/panopticon/pan-utils/src/asf/data/ldap.py Mon Jun 16 06:15:59 2014
@@ -74,7 +74,6 @@ class LDAP(object):
         self.ldap = _ldap_cnx(LDAP_URL, TLS_CA_cert_file)
         self.ldap.simple_bind_s()
 
-
     def search(self, search_filter, attributes=None):
         """
           Perform a search against the LDAP server.
@@ -97,7 +96,7 @@ class LDAP(object):
 
         res = self.ldap.search_s(self.base, ldap.SCOPE_ONELEVEL, search_filter, attributes)
 
-        if res == []:
+        if not res:
             return None
 
         if res[0][0] is None:

Copied: labs/panopticon/pan-utils/src/asf/data/projects.py (from r1594458, labs/panopticon/src/asf/data/projects.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/data/projects.py?p2=labs/panopticon/pan-utils/src/asf/data/projects.py&p1=labs/panopticon/src/asf/data/projects.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/src/asf/data/projects.py (original)
+++ labs/panopticon/pan-utils/src/asf/data/projects.py Mon Jun 16 06:15:59 2014
@@ -93,4 +93,3 @@ def get_pmcs():
             PMCS[pmc.about] = pmc
 
     return PMCS
-

Copied: labs/panopticon/pan-utils/src/asf/incubator/__init__.py (from r1594458, labs/panopticon/src/asf/incubator/__init__.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/incubator/__init__.py?p2=labs/panopticon/pan-utils/src/asf/incubator/__init__.py&p1=labs/panopticon/src/asf/incubator/__init__.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/incubator/podlings.py (from r1594458, labs/panopticon/src/asf/incubator/podlings.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/incubator/podlings.py?p2=labs/panopticon/pan-utils/src/asf/incubator/podlings.py&p1=labs/panopticon/src/asf/incubator/podlings.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/person.py (from r1594458, labs/panopticon/src/asf/person.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/person.py?p2=labs/panopticon/pan-utils/src/asf/person.py&p1=labs/panopticon/src/asf/person.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/utils/__init__.py (from r1594458, labs/panopticon/src/asf/utils/__init__.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/__init__.py?p2=labs/panopticon/pan-utils/src/asf/utils/__init__.py&p1=labs/panopticon/src/asf/utils/__init__.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/utils/auth.py (from r1594458, labs/panopticon/src/asf/utils/auth.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/auth.py?p2=labs/panopticon/pan-utils/src/asf/utils/auth.py&p1=labs/panopticon/src/asf/utils/auth.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/src/asf/utils/auth.py (original)
+++ labs/panopticon/pan-utils/src/asf/utils/auth.py Mon Jun 16 06:15:59 2014
@@ -7,7 +7,7 @@
 # "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
+# 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
@@ -28,7 +28,6 @@
 
   Note that the OS X keychain is always available on OS X.
 """
-from ConfigParser import NoOptionError
 import getpass
 from logging import getLogger
 import os
@@ -64,17 +63,14 @@ class FixedOSXKeychain(OSXKeychain):
         """
         try:
             # set up the call for security.
-            call = subprocess.Popen([
-                                        'security',
-                                        'delete-generic-password',
-                                        '-a',
-                                        username,
-                                        '-s',
-                                        service
-                                    ],
+            call = subprocess.Popen(['security',
+                                     'delete-generic-password',
+                                     '-a',
+                                     username,
+                                     '-s',
+                                     service],
                                     stderr=subprocess.PIPE,
-                                    stdout=subprocess.PIPE,
-            )
+                                    stdout=subprocess.PIPE,)
             stdoutdata, stderrdata = call.communicate()
             code = call.returncode
             # check return code.
@@ -233,9 +229,6 @@ def get_password_from_keyring(entry=None
       :param entry: The entry in the keychain. This is a caller specific key.
       :param username: The username to get the password for. Default is the current user.
     """
-
-    password = None
-
     if username is None:
         username = get_username()
 

Copied: labs/panopticon/pan-utils/src/asf/utils/committers.py (from r1594458, labs/panopticon/src/asf/utils/committers.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/committers.py?p2=labs/panopticon/pan-utils/src/asf/utils/committers.py&p1=labs/panopticon/src/asf/utils/committers.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/utils/config.py (from r1594458, labs/panopticon/src/asf/utils/config.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/config.py?p2=labs/panopticon/pan-utils/src/asf/utils/config.py&p1=labs/panopticon/src/asf/utils/config.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/utils/constants.py (from r1594458, labs/panopticon/src/asf/utils/constants.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/constants.py?p2=labs/panopticon/pan-utils/src/asf/utils/constants.py&p1=labs/panopticon/src/asf/utils/constants.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/src/asf/utils/constants.py (original)
+++ labs/panopticon/pan-utils/src/asf/utils/constants.py Mon Jun 16 06:15:59 2014
@@ -20,9 +20,9 @@ import re
 
 
 VALID_URL_REGEX = re.compile(
-    r'^(?:http|ftp)s?://' # http:// or https://
-    r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|' #domain...
-    r'localhost|' #localhost...
-    r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' # ...or ip
-    r'(?::\d+)?' # optional port
+    r'^(?:http|ftp)s?://'  # http:// or https://
+    r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|'  # domain...
+    r'localhost|'  # localhost...
+    r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})'  # ...or ip
+    r'(?::\d+)?'  # optional port
     r'(?:/?|[/?]\S+)$', re.IGNORECASE)

Copied: labs/panopticon/pan-utils/src/asf/utils/emails.py (from r1594458, labs/panopticon/src/asf/utils/emails.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/emails.py?p2=labs/panopticon/pan-utils/src/asf/utils/emails.py&p1=labs/panopticon/src/asf/utils/emails.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/utils/execute.py (from r1594458, labs/panopticon/src/asf/utils/execute.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/execute.py?p2=labs/panopticon/pan-utils/src/asf/utils/execute.py&p1=labs/panopticon/src/asf/utils/execute.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/utils/ezmlm.py (from r1594458, labs/panopticon/src/asf/utils/ezmlm.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/ezmlm.py?p2=labs/panopticon/pan-utils/src/asf/utils/ezmlm.py&p1=labs/panopticon/src/asf/utils/ezmlm.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/utils/file.py (from r1594458, labs/panopticon/src/asf/utils/file.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/file.py?p2=labs/panopticon/pan-utils/src/asf/utils/file.py&p1=labs/panopticon/src/asf/utils/file.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/utils/safe.py (from r1594458, labs/panopticon/src/asf/utils/safe.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/safe.py?p2=labs/panopticon/pan-utils/src/asf/utils/safe.py&p1=labs/panopticon/src/asf/utils/safe.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/src/asf/utils/test.py (from r1594458, labs/panopticon/src/asf/utils/test.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/test.py?p2=labs/panopticon/pan-utils/src/asf/utils/test.py&p1=labs/panopticon/src/asf/utils/test.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/src/asf/utils/test.py (original)
+++ labs/panopticon/pan-utils/src/asf/utils/test.py Mon Jun 16 06:15:59 2014
@@ -7,7 +7,7 @@
 # "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
+# 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
@@ -16,17 +16,27 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-import nose
+import pytest
 
 from asf.utils.auth import get_stored_credentials
 
 
-def ensure_credentials_stored(function):
-    def wrapped(*args, **kwargs):
-        username, password = get_stored_credentials()
-        if not (username and password):
-            raise nose.SkipTest('Credentials not stored for testing')
+def test_credentials_stored():
+    u, p = get_stored_credentials()
+    return not u and p
 
-        return function(username, password, *args, **kwargs)
 
-    return nose.tools.make_decorator(function)(wrapped)
+ensure_credentials_stored = pytest.mark.skipif(test_credentials_stored(),
+                                               reason="Need to ensure that credentials are stored")
+
+
+@pytest.fixture
+def password():
+    u, p = get_stored_credentials()
+    return p
+
+
+@pytest.fixture
+def username():
+    u, p = get_stored_credentials()
+    return u

Copied: labs/panopticon/pan-utils/src/asf/utils/wsgi.py (from r1594458, labs/panopticon/src/asf/utils/wsgi.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/src/asf/utils/wsgi.py?p2=labs/panopticon/pan-utils/src/asf/utils/wsgi.py&p1=labs/panopticon/src/asf/utils/wsgi.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/tests/bin/ezmlm-list (from r1594458, labs/panopticon/tests/bin/ezmlm-list)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/bin/ezmlm-list?p2=labs/panopticon/pan-utils/tests/bin/ezmlm-list&p1=labs/panopticon/tests/bin/ezmlm-list&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/tests/bin/ezmlm-sub (from r1594458, labs/panopticon/tests/bin/ezmlm-sub)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/bin/ezmlm-sub?p2=labs/panopticon/pan-utils/tests/bin/ezmlm-sub&p1=labs/panopticon/tests/bin/ezmlm-sub&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/tests/bin/ezmlm-unsub (from r1594458, labs/panopticon/tests/bin/ezmlm-unsub)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/bin/ezmlm-unsub?p2=labs/panopticon/pan-utils/tests/bin/ezmlm-unsub&p1=labs/panopticon/tests/bin/ezmlm-unsub&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/tests/data/podlings.xml (from r1594458, labs/panopticon/tests/data/podlings.xml)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/data/podlings.xml?p2=labs/panopticon/pan-utils/tests/data/podlings.xml&p1=labs/panopticon/tests/data/podlings.xml&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/tests/data/test.apache.org/dev/archive/4/08 (from r1594458, labs/panopticon/tests/data/test.apache.org/dev/archive/4/08)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/data/test.apache.org/dev/archive/4/08?p2=labs/panopticon/pan-utils/tests/data/test.apache.org/dev/archive/4/08&p1=labs/panopticon/tests/data/test.apache.org/dev/archive/4/08&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/tests/data/test.apache.org/dev/archive/4/index (from r1594458, labs/panopticon/tests/data/test.apache.org/dev/archive/4/index)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/data/test.apache.org/dev/archive/4/index?p2=labs/panopticon/pan-utils/tests/data/test.apache.org/dev/archive/4/index&p1=labs/panopticon/tests/data/test.apache.org/dev/archive/4/index&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/tests/data/test.apache.org/dev/num (from r1594458, labs/panopticon/tests/data/test.apache.org/dev/num)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/data/test.apache.org/dev/num?p2=labs/panopticon/pan-utils/tests/data/test.apache.org/dev/num&p1=labs/panopticon/tests/data/test.apache.org/dev/num&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
    (empty)

Copied: labs/panopticon/pan-utils/tests/test_committers.py (from r1594458, labs/panopticon/tests/test_committers.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/test_committers.py?p2=labs/panopticon/pan-utils/tests/test_committers.py&p1=labs/panopticon/tests/test_committers.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/tests/test_committers.py (original)
+++ labs/panopticon/pan-utils/tests/test_committers.py Mon Jun 16 06:15:59 2014
@@ -16,13 +16,10 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-from nose.plugins.attrib import attr
-
 from asf.utils.committers import get_committer
-from asf.utils.test import ensure_credentials_stored
+from asf.utils.test import ensure_credentials_stored, username, password
 
 
-@attr('integration')
 @ensure_credentials_stored
 def test_get_committer(username, password):
     committer = get_committer('adc', username, password)
@@ -37,7 +34,6 @@ def test_get_committer(username, passwor
     assert committer is get_committer('adc', username, password)
 
 
-@attr('integration')
 @ensure_credentials_stored
 def test_get_non_existent_committer(username, password):
     try:

Copied: labs/panopticon/pan-utils/tests/test_config.py (from r1594458, labs/panopticon/tests/test_config.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/test_config.py?p2=labs/panopticon/pan-utils/tests/test_config.py&p1=labs/panopticon/tests/test_config.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/tests/test_config.py (original)
+++ labs/panopticon/pan-utils/tests/test_config.py Mon Jun 16 06:15:59 2014
@@ -39,7 +39,7 @@ def test_config_file_creation():
     with mock_tools_config_file() as mock_tools_cfg_file:
         assert not os.path.exists(mock_tools_cfg_file)
 
-        with load_config([], {}) as config:
+        with load_config([], {}):
             pass
 
         assert os.path.exists(mock_tools_cfg_file)

Copied: labs/panopticon/pan-utils/tests/test_emails.py (from r1594458, labs/panopticon/tests/test_emails.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/test_emails.py?p2=labs/panopticon/pan-utils/tests/test_emails.py&p1=labs/panopticon/tests/test_emails.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/tests/test_emails.py (original)
+++ labs/panopticon/pan-utils/tests/test_emails.py Mon Jun 16 06:15:59 2014
@@ -16,11 +16,9 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-from nose.plugins.attrib import attr
-
 from asf.data.aliases import get_mail_aliases
 from asf.utils.emails import aliases_for, email_from_alias, canonical_email_address, is_apache_email_address
-from asf.utils.test import ensure_credentials_stored
+from asf.utils.test import ensure_credentials_stored, username, password
 
 
 def test_canonical_email_address():
@@ -37,7 +35,6 @@ def test_is_apache_email_address():
     assert is_apache_email_address('adc@ApAcHe.org')
 
 
-@attr('integration')
 @ensure_credentials_stored
 def test_aliases_for(username, password):
     aliases = aliases_for('adc@ApAcHe.org', get_mail_aliases(username, password))
@@ -46,7 +43,6 @@ def test_aliases_for(username, password)
     assert 'alancabrera@gmail.com' in aliases
 
 
-@attr('integration')
 @ensure_credentials_stored
 def test_email_from_alias(username, password):
     assert email_from_alias('list@toolazydogs.com', get_mail_aliases(username, password)) == 'adc@apache.org'

Copied: labs/panopticon/pan-utils/tests/test_execute.py (from r1594458, labs/panopticon/tests/test_execute.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/test_execute.py?p2=labs/panopticon/pan-utils/tests/test_execute.py&p1=labs/panopticon/tests/test_execute.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/tests/test_execute.py (original)
+++ labs/panopticon/pan-utils/tests/test_execute.py Mon Jun 16 06:15:59 2014
@@ -18,22 +18,21 @@
 #
 import os
 
-from nose.tools import assert_equals
-
 from asf.utils.execute import execute, ExecutionError
 
 
 def test_execute():
     data_dir = os.path.join(os.path.dirname(__file__), 'data')
     stdout, stderr = execute('ls %s' % data_dir)
-    assert_equals( ['podlings.xml', 'test.apache.org'], stdout)
-    assert_equals([], stderr)
+    assert ['podlings.xml', 'test.apache.org'] == stdout
+    assert [] == stderr
+
 
 def test_execute_fail():
     try:
         execute('ls ZZZ')
         assert False, 'Execution should have thrown an error'
     except ExecutionError as ee:
-        assert_equals(1, ee.code)
-        assert_equals([], ee.stdout)
-        assert_equals([], ee.stderr)
+        assert 1 == ee.code
+        assert [] == ee.stdout
+        assert[] == ee.stderr

Copied: labs/panopticon/pan-utils/tests/test_ezmlm.py (from r1594458, labs/panopticon/tests/test_ezmlm.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/test_ezmlm.py?p2=labs/panopticon/pan-utils/tests/test_ezmlm.py&p1=labs/panopticon/tests/test_ezmlm.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/tests/test_ezmlm.py (original)
+++ labs/panopticon/pan-utils/tests/test_ezmlm.py Mon Jun 16 06:15:59 2014
@@ -18,7 +18,7 @@
 #
 import os
 
-from nose.tools import assert_equals, with_setup
+import pytest
 
 from asf.utils.ezmlm import Ezmlm
 
@@ -26,57 +26,50 @@ from asf.utils.ezmlm import Ezmlm
 MAIL_LIST_PATH = os.path.join(os.path.dirname(__file__), 'data', 'test.apache.org', 'dev')
 
 
-def setup_path():
+@pytest.fixture()
+def resource_a_setup(request):
     os.environ['PATH'] = '%s:%s' % (os.path.join(os.path.dirname(__file__), 'bin'), os.environ['PATH'])
 
-
-def teardown_path():
-    os.environ["PATH"] = ':'.join(os.environ['PATH'].split(':')[1:])
+    def resource_a_teardown():
+        os.environ["PATH"] = ':'.join(os.environ['PATH'].split(':')[1:])
+    request.addfinalizer(resource_a_teardown)
 
 
 def test_num_messages():
     ezmlm = Ezmlm(MAIL_LIST_PATH)
-    assert_equals(408, int(ezmlm.num_messages))
+    assert 408 == int(ezmlm.num_messages)
 
 
 def test_path_to_archived_message():
     ezmlm = Ezmlm(MAIL_LIST_PATH)
-    assert_equals(os.path.join(MAIL_LIST_PATH, 'archive', '4', '08'),
-                  ezmlm.path_to_archived_message(408))
+    assert os.path.join(MAIL_LIST_PATH, 'archive', '4', '08') == ezmlm.path_to_archived_message(408)
 
 
-@with_setup(setup_path, teardown_path)
-def test_subscribers():
+def test_subscribers(resource_a_setup):
     ezmlm = Ezmlm(MAIL_LIST_PATH)
-    assert_equals(set(['a@apache.org', 'b@apache.org', 'c@apache.org']), ezmlm.subscribers)
+    assert set(['a@apache.org', 'b@apache.org', 'c@apache.org']) == ezmlm.subscribers
 
 
-@with_setup(setup_path, teardown_path)
-def test_add_subscriber():
+def test_add_subscriber(resource_a_setup):
     ezmlm = Ezmlm(MAIL_LIST_PATH)
     ezmlm.add_subscriber('a@apache.org')
 
 
-@with_setup(setup_path, teardown_path)
-def test_remove_subscriber():
+def test_remove_subscriber(resource_a_setup):
     ezmlm = Ezmlm(MAIL_LIST_PATH)
     ezmlm.remove_subscriber('a@apache.org')
 
 
-@with_setup(setup_path, teardown_path)
-def test_moderators():
+def test_moderators(resource_a_setup):
     ezmlm = Ezmlm(MAIL_LIST_PATH)
-    assert_equals(set(['moda@apache.org', 'modb@apache.org', 'modc@apache.org']), ezmlm.moderators)
+    assert set(['moda@apache.org', 'modb@apache.org', 'modc@apache.org']) == ezmlm.moderators
 
 
-@with_setup(setup_path, teardown_path)
-def test_add_moderator():
+def test_add_moderator(resource_a_setup):
     ezmlm = Ezmlm(MAIL_LIST_PATH)
     ezmlm.add_moderator('moda@apache.org')
 
 
-@with_setup(setup_path, teardown_path)
-def test_remove_moderator():
+def test_remove_moderator(resource_a_setup):
     ezmlm = Ezmlm(MAIL_LIST_PATH)
     ezmlm.remove_moderator('moda@apache.org')
-

Copied: labs/panopticon/pan-utils/tests/test_ldap.py (from r1594458, labs/panopticon/tests/test_ldap.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/test_ldap.py?p2=labs/panopticon/pan-utils/tests/test_ldap.py&p1=labs/panopticon/tests/test_ldap.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/tests/test_ldap.py (original)
+++ labs/panopticon/pan-utils/tests/test_ldap.py Mon Jun 16 06:15:59 2014
@@ -16,14 +16,9 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-from nose.plugins.attrib import attr
-
-from nose.tools import assert_equals, assert_raises
-
 from asf.data.ldap import LDAP, check_user_password
 
 
-@attr('ldap')
 def test_find_by_username():
     ldap = LDAP()
 
@@ -32,20 +27,18 @@ def test_find_by_username():
     for k, v in result.iteritems():
         print k, v
 
-    assert_equals(['adc'], result['uid'])
-    assert_equals(['Alan Cabrera'], result['cn'])
+    assert ['adc'] == result['uid']
+    assert ['Alan Cabrera'] == result['cn']
 
     assert ldap.is_valid_account('adc')
 
 
-@attr('ldap')
 def test_is_valid_account():
     ldap = LDAP()
 
     assert ldap.is_valid_account('adc')
 
 
-@attr('ldap')
 def test_find_by_common_name():
     ldap = LDAP()
 
@@ -54,11 +47,11 @@ def test_find_by_common_name():
     for k, v in result.iteritems():
         print k, v
 
-    assert_equals(['adc'], result['uid'])
-    assert_equals(['Alan Cabrera'], result['cn'])
+    assert ['adc'] == result['uid']
+    assert ['Alan Cabrera'] == result['cn']
 
     assert ldap.is_valid_account('adc')
 
-@attr('ldap')
+
 def test_check_user_password():
     assert not check_user_password('adc', 'SECRET')

Copied: labs/panopticon/pan-utils/tests/test_person.py (from r1594458, labs/panopticon/tests/test_person.py)
URL: http://svn.apache.org/viewvc/labs/panopticon/pan-utils/tests/test_person.py?p2=labs/panopticon/pan-utils/tests/test_person.py&p1=labs/panopticon/tests/test_person.py&r1=1594458&r2=1602804&rev=1602804&view=diff
==============================================================================
--- labs/panopticon/tests/test_person.py (original)
+++ labs/panopticon/pan-utils/tests/test_person.py Mon Jun 16 06:15:59 2014
@@ -16,21 +16,17 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-from nose.plugins.attrib import attr
-from nose.tools import assert_equals
-
 from asf.person import picture_url, Person
 
 
 def test_picture_url():
-    assert_equals('https://secure.gravatar.com/avatar/e2291d07bb2caeb7337c30872259104d?r=g&d=mm', picture_url('adc@apache.org'))
+    assert 'https://secure.gravatar.com/avatar/e2291d07bb2caeb7337c30872259104d?r=g&d=mm' == picture_url('adc@apache.org')
 
 
-@attr('ldap')
 def test_find_by_email():
     person = Person.find_by_email('jim@jaguNET.com')
 
     assert person
-    assert_equals('jim', person.username)
-    assert_equals('Jim Jagielski <ji...@apache.org>', person.email_string)
-    assert_equals('https://secure.gravatar.com/avatar/18b8b347cb5f1beb1b600c1455e92403?r=g&d=mm', person.picture_url)
+    assert 'jim' == person.username
+    assert 'Jim Jagielski <ji...@apache.org>' == person.email_string
+    assert 'https://secure.gravatar.com/avatar/18b8b347cb5f1beb1b600c1455e92403?r=g&d=mm' == person.picture_url



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org