[Python-modules-commits] [python-junit-xml] 01/03: Imported Upstream version 1.4

Sandro Tosi morph at moszumanska.debian.org
Wed Jul 8 17:42:24 UTC 2015


This is an automated email from the git hooks/post-receive script.

morph pushed a commit to branch bpo8
in repository python-junit-xml.

commit f934b63637e794e43e818a053dde79b5666576a3
Author: Sandro Tosi <morph at debian.org>
Date:   Wed Jul 8 13:36:33 2015 -0400

    Imported Upstream version 1.4
---
 LICENSE.txt                             |  21 +++
 MANIFEST.in                             |   4 +
 PKG-INFO                                | 109 ++++++++++++++
 README.rst                              |  90 ++++++++++++
 junit_xml.egg-info/PKG-INFO             | 109 ++++++++++++++
 junit_xml.egg-info/SOURCES.txt          |  10 ++
 junit_xml.egg-info/dependency_links.txt |   1 +
 junit_xml.egg-info/requires.txt         |   1 +
 junit_xml.egg-info/top_level.txt        |   1 +
 junit_xml/__init__.py                   | 249 ++++++++++++++++++++++++++++++++
 setup.cfg                               |   5 +
 setup.py                                |  33 +++++
 12 files changed, 633 insertions(+)

diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..a1f0592
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright (c) 2013 Kyrus Tech, Inc., Brian Beyer
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..123fdc2
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,4 @@
+include setup.py
+include README.rst
+include LICENSE.txt
+include tests.py
\ No newline at end of file
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..1986703
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,109 @@
+Metadata-Version: 1.1
+Name: junit-xml
+Version: 1.4
+Summary: Creates JUnit XML test result documents that can be read by tools such as Jenkins
+Home-page: https://github.com/kyrus/python-junit-xml
+Author: Brian Beyer
+Author-email: brian at kyr.us
+License: MIT
+Description: python-junit-xml
+        ================
+        .. image:: https://travis-ci.org/kyrus/python-junit-xml.png?branch=master
+        
+        About
+        -----
+        
+        A Python module for creating JUnit XML test result documents that can be
+        read by tools such as Jenkins. If you are ever working with test tool or
+        test suite written in Python and want to take advantage of Jenkins'
+        pretty graphs and test reporting capabilities, this module will let you
+        generate the XML test reports.
+        
+        *As there is no definitive Jenkins JUnit XSD that I could find, the XML
+        documents created by this module support a schema based on Google
+        searches and the Jenkins JUnit XML reader source code. File a bug if
+        something doesn't work like you expect it to.*
+        
+        Installation
+        ------------
+        
+        Install using pip or easy_install:
+        
+        ::
+        
+        	pip install junit-xml
+        	or
+        	easy_install junit-xml
+        
+        You can also clone the Git repository from Github and install it manually:
+        
+        ::
+        
+            git clone https://github.com/kyrus/python-junit-xml.git
+            python setup.py install
+        
+        Using
+        -----
+        
+        Create a test suite, add a test case, and print it to the screen:
+        
+        .. code-block:: python
+        
+            from junit_xml import TestSuite, TestCase
+        
+            test_cases = [TestCase('Test1', 'some.class.name', 123.345, 'I am stdout!', 'I am stderr!')]
+            ts = TestSuite("my test suite", test_cases)
+            # pretty printing is on by default but can be disabled using prettyprint=False
+            print(TestSuite.to_xml_string([ts]))
+        
+        Produces the following output
+        
+        .. code-block:: xml
+        
+            <?xml version="1.0" ?>
+            <testsuites>
+                <testsuite errors="0" failures="0" name="my test suite" tests="1">
+                    <testcase classname="some.class.name" name="Test1" time="123.345000">
+                        <system-out>
+                            I am stdout!
+                        </system-out>
+                        <system-err>
+                            I am stderr!
+                        </system-err>
+                    </testcase>
+                </testsuite>
+            </testsuites>
+        
+        Writing XML to a file:
+        
+        .. code-block:: python
+        
+            # you can also write the XML to a file and not pretty print it
+            with open('output.xml', 'w') as f:
+                TestSuite.to_file(f, [ts], prettyprint=False)
+        
+        See the docs and unit tests for more examples.
+        
+        NOTE: Unicode characters identified as "illegal or discouraged" are automatically
+        stripped from the XML string or file.
+        
+        Running the tests
+        -----------------
+        
+        ::
+        
+            # activate your virtualenv
+            pip install tox
+            tox
+        
+        
+Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: Freely Distributable
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Topic :: Software Development :: Build Tools
+Classifier: Topic :: Software Development :: Testing
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..46b2804
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,90 @@
+python-junit-xml
+================
+.. image:: https://travis-ci.org/kyrus/python-junit-xml.png?branch=master
+
+About
+-----
+
+A Python module for creating JUnit XML test result documents that can be
+read by tools such as Jenkins. If you are ever working with test tool or
+test suite written in Python and want to take advantage of Jenkins'
+pretty graphs and test reporting capabilities, this module will let you
+generate the XML test reports.
+
+*As there is no definitive Jenkins JUnit XSD that I could find, the XML
+documents created by this module support a schema based on Google
+searches and the Jenkins JUnit XML reader source code. File a bug if
+something doesn't work like you expect it to.*
+
+Installation
+------------
+
+Install using pip or easy_install:
+
+::
+
+	pip install junit-xml
+	or
+	easy_install junit-xml
+
+You can also clone the Git repository from Github and install it manually:
+
+::
+
+    git clone https://github.com/kyrus/python-junit-xml.git
+    python setup.py install
+
+Using
+-----
+
+Create a test suite, add a test case, and print it to the screen:
+
+.. code-block:: python
+
+    from junit_xml import TestSuite, TestCase
+
+    test_cases = [TestCase('Test1', 'some.class.name', 123.345, 'I am stdout!', 'I am stderr!')]
+    ts = TestSuite("my test suite", test_cases)
+    # pretty printing is on by default but can be disabled using prettyprint=False
+    print(TestSuite.to_xml_string([ts]))
+
+Produces the following output
+
+.. code-block:: xml
+
+    <?xml version="1.0" ?>
+    <testsuites>
+        <testsuite errors="0" failures="0" name="my test suite" tests="1">
+            <testcase classname="some.class.name" name="Test1" time="123.345000">
+                <system-out>
+                    I am stdout!
+                </system-out>
+                <system-err>
+                    I am stderr!
+                </system-err>
+            </testcase>
+        </testsuite>
+    </testsuites>
+
+Writing XML to a file:
+
+.. code-block:: python
+
+    # you can also write the XML to a file and not pretty print it
+    with open('output.xml', 'w') as f:
+        TestSuite.to_file(f, [ts], prettyprint=False)
+
+See the docs and unit tests for more examples.
+
+NOTE: Unicode characters identified as "illegal or discouraged" are automatically
+stripped from the XML string or file.
+
+Running the tests
+-----------------
+
+::
+
+    # activate your virtualenv
+    pip install tox
+    tox
+
diff --git a/junit_xml.egg-info/PKG-INFO b/junit_xml.egg-info/PKG-INFO
new file mode 100644
index 0000000..1986703
--- /dev/null
+++ b/junit_xml.egg-info/PKG-INFO
@@ -0,0 +1,109 @@
+Metadata-Version: 1.1
+Name: junit-xml
+Version: 1.4
+Summary: Creates JUnit XML test result documents that can be read by tools such as Jenkins
+Home-page: https://github.com/kyrus/python-junit-xml
+Author: Brian Beyer
+Author-email: brian at kyr.us
+License: MIT
+Description: python-junit-xml
+        ================
+        .. image:: https://travis-ci.org/kyrus/python-junit-xml.png?branch=master
+        
+        About
+        -----
+        
+        A Python module for creating JUnit XML test result documents that can be
+        read by tools such as Jenkins. If you are ever working with test tool or
+        test suite written in Python and want to take advantage of Jenkins'
+        pretty graphs and test reporting capabilities, this module will let you
+        generate the XML test reports.
+        
+        *As there is no definitive Jenkins JUnit XSD that I could find, the XML
+        documents created by this module support a schema based on Google
+        searches and the Jenkins JUnit XML reader source code. File a bug if
+        something doesn't work like you expect it to.*
+        
+        Installation
+        ------------
+        
+        Install using pip or easy_install:
+        
+        ::
+        
+        	pip install junit-xml
+        	or
+        	easy_install junit-xml
+        
+        You can also clone the Git repository from Github and install it manually:
+        
+        ::
+        
+            git clone https://github.com/kyrus/python-junit-xml.git
+            python setup.py install
+        
+        Using
+        -----
+        
+        Create a test suite, add a test case, and print it to the screen:
+        
+        .. code-block:: python
+        
+            from junit_xml import TestSuite, TestCase
+        
+            test_cases = [TestCase('Test1', 'some.class.name', 123.345, 'I am stdout!', 'I am stderr!')]
+            ts = TestSuite("my test suite", test_cases)
+            # pretty printing is on by default but can be disabled using prettyprint=False
+            print(TestSuite.to_xml_string([ts]))
+        
+        Produces the following output
+        
+        .. code-block:: xml
+        
+            <?xml version="1.0" ?>
+            <testsuites>
+                <testsuite errors="0" failures="0" name="my test suite" tests="1">
+                    <testcase classname="some.class.name" name="Test1" time="123.345000">
+                        <system-out>
+                            I am stdout!
+                        </system-out>
+                        <system-err>
+                            I am stderr!
+                        </system-err>
+                    </testcase>
+                </testsuite>
+            </testsuites>
+        
+        Writing XML to a file:
+        
+        .. code-block:: python
+        
+            # you can also write the XML to a file and not pretty print it
+            with open('output.xml', 'w') as f:
+                TestSuite.to_file(f, [ts], prettyprint=False)
+        
+        See the docs and unit tests for more examples.
+        
+        NOTE: Unicode characters identified as "illegal or discouraged" are automatically
+        stripped from the XML string or file.
+        
+        Running the tests
+        -----------------
+        
+        ::
+        
+            # activate your virtualenv
+            pip install tox
+            tox
+        
+        
+Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: Freely Distributable
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Topic :: Software Development :: Build Tools
+Classifier: Topic :: Software Development :: Testing
diff --git a/junit_xml.egg-info/SOURCES.txt b/junit_xml.egg-info/SOURCES.txt
new file mode 100644
index 0000000..626822b
--- /dev/null
+++ b/junit_xml.egg-info/SOURCES.txt
@@ -0,0 +1,10 @@
+LICENSE.txt
+MANIFEST.in
+README.rst
+setup.py
+junit_xml/__init__.py
+junit_xml.egg-info/PKG-INFO
+junit_xml.egg-info/SOURCES.txt
+junit_xml.egg-info/dependency_links.txt
+junit_xml.egg-info/requires.txt
+junit_xml.egg-info/top_level.txt
\ No newline at end of file
diff --git a/junit_xml.egg-info/dependency_links.txt b/junit_xml.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/junit_xml.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/junit_xml.egg-info/requires.txt b/junit_xml.egg-info/requires.txt
new file mode 100644
index 0000000..64c56a3
--- /dev/null
+++ b/junit_xml.egg-info/requires.txt
@@ -0,0 +1 @@
+six
\ No newline at end of file
diff --git a/junit_xml.egg-info/top_level.txt b/junit_xml.egg-info/top_level.txt
new file mode 100644
index 0000000..e23fec1
--- /dev/null
+++ b/junit_xml.egg-info/top_level.txt
@@ -0,0 +1 @@
+junit_xml
diff --git a/junit_xml/__init__.py b/junit_xml/__init__.py
new file mode 100644
index 0000000..e96b458
--- /dev/null
+++ b/junit_xml/__init__.py
@@ -0,0 +1,249 @@
+#!/usr/bin/env python
+import sys, re
+import xml.etree.ElementTree as ET
+import xml.dom.minidom
+
+from six import u
+
+try:
+    # Python 2
+    unichr
+except NameError:  # pragma: nocover
+    # Python 3
+    unichr = chr
+
+"""
+Based on the following understanding of what Jenkins can parse for JUnit XML files.
+
+<?xml version="1.0" encoding="utf-8"?>
+<testsuites errors="1" failures="1" tests="4" time="45">
+    <testsuite errors="1" failures="1" hostname="localhost" id="0" name="base_test_1"
+               package="testdb" tests="4" timestamp="2012-11-15T01:02:29">
+        <properties>
+            <property name="assert-passed" value="1"/>
+        </properties>
+        <testcase classname="testdb.directory" name="001-passed-test" time="10"/>
+        <testcase classname="testdb.directory" name="002-failed-test" time="20">
+            <failure message="Assertion FAILED: some failed assert" type="failure">
+                the output of the testcase
+            </failure>
+        </testcase>
+        <testcase classname="package.directory" name="003-errord-test" time="15">
+            <error message="Assertion ERROR: some error assert" type="error">
+                the output of the testcase
+            </error>
+        </testcase>
+	<testcase classname="package.directory" name="003-skipped-test" time="0">
+	    <skipped message="SKIPPED Test" type="skipped">
+                the output of the testcase
+            </skipped>	
+	</testcase>
+        <testcase classname="testdb.directory" name="003-passed-test" time="10">
+            <system-out>
+                I am system output
+            </system-out>
+            <system-err>
+                I am the error output
+            </system-err>
+        </testcase>
+    </testsuite>
+</testsuites>
+"""
+
+
+class TestSuite(object):
+    """Suite of test cases"""
+
+    def __init__(self, name, test_cases=None, hostname=None, id=None,\
+                 package=None, timestamp=None, properties=None):
+        self.name = name
+        if not test_cases:
+            test_cases = []
+        try:
+            iter(test_cases)
+        except TypeError:
+            raise Exception('test_cases must be a list of test cases')
+        self.test_cases = test_cases
+        self.hostname = hostname
+        self.id = id
+        self.package = package
+        self.timestamp = timestamp
+        self.properties = properties
+
+    def build_xml_doc(self):
+        """Builds the XML document for the JUnit test suite"""
+        # build the test suite element
+        test_suite_attributes = dict()
+        test_suite_attributes['name'] = str(self.name)
+        test_suite_attributes['failures'] = str(len([c for c in self.test_cases if c.is_failure()]))
+        test_suite_attributes['errors'] = str(len([c for c in self.test_cases if c.is_error()]))
+        test_suite_attributes['skipped'] = str(len([c for c in self.test_cases if c.is_skipped()]))
+        test_suite_attributes['time'] = str(sum(c.elapsed_sec for c in self.test_cases if c.elapsed_sec))
+        test_suite_attributes['tests'] = str(len(self.test_cases))
+
+        if self.hostname:
+            test_suite_attributes['hostname'] = str(self.hostname)
+        if self.id:
+            test_suite_attributes['id'] = str(self.id)
+        if self.package:
+            test_suite_attributes['package'] = str(self.package)
+        if self.timestamp:
+            test_suite_attributes['timestamp'] = str(self.timestamp)
+
+        xml_element = ET.Element("testsuite", test_suite_attributes)
+
+        # add any properties
+        if self.properties:
+            props_element = ET.SubElement(xml_element, "properties")
+            for k, v in self.properties.items():
+                attrs = {'name': str(k), 'value': str(v)}
+                ET.SubElement(props_element, "property", attrs)
+
+        # test cases
+        for case in self.test_cases:
+            test_case_attributes = dict()
+            test_case_attributes['name'] = str(case.name)
+            if case.elapsed_sec:
+                test_case_attributes['time'] = "%f" % case.elapsed_sec
+            if case.classname:
+                test_case_attributes['classname'] = str(case.classname)
+
+            test_case_element = ET.SubElement(xml_element, "testcase", test_case_attributes)
+
+            # failures
+            if case.is_failure():
+                attrs = {'type': 'failure'}
+                if case.failure_message:
+                    attrs['message'] = case.failure_message
+                failure_element = ET.Element("failure", attrs)
+                if case.failure_output:
+                    failure_element.text = case.failure_output
+                test_case_element.append(failure_element)
+
+            # errors
+            if case.is_error():
+                attrs = {'type': 'error'}
+                if case.error_message:
+                    attrs['message'] = case.error_message
+                error_element = ET.Element("error", attrs)
+                if case.error_output:
+                    error_element.text = case.error_output
+                test_case_element.append(error_element)
+
+            # skippeds
+            if case.is_skipped():
+                attrs = {'type': 'skipped'}
+                if case.skipped_message:
+                    attrs['message'] = case.skipped_message
+                skipped_element = ET.Element("skipped", attrs)
+                if case.error_output:
+                    skipped_element.text = case.skipped_output
+                test_case_element.append(skipped_element)
+
+            # test stdout
+            if case.stdout:
+                stdout_element = ET.Element("system-out")
+                stdout_element.text = case.stdout
+                test_case_element.append(stdout_element)
+
+            # test stderr
+            if case.stderr:
+                stderr_element = ET.Element("system-err")
+                stderr_element.text = case.stderr
+                test_case_element.append(stderr_element)
+
+        return xml_element
+
+    @staticmethod
+    def to_xml_string(test_suites, prettyprint=True, encoding=None):
+        """Returns the string representation of the JUnit XML document"""
+        try:
+            iter(test_suites)
+        except TypeError:
+            raise Exception('test_suites must be a list of test suites')
+
+        xml_element = ET.Element("testsuites")
+        for ts in test_suites:
+            xml_element.append(ts.build_xml_doc())
+
+        xml_string = ET.tostring(xml_element, encoding=encoding)
+        xml_string = TestSuite._clean_illegal_xml_chars(xml_string.decode(encoding or 'utf-8'))
+
+        if prettyprint:
+            xml_string = xml.dom.minidom.parseString(xml_string).toprettyxml()
+        return xml_string
+
+    @staticmethod
+    def to_file(file_descriptor, test_suites, prettyprint=True, encoding=None):
+        """Writes the JUnit XML document to file"""
+        file_descriptor.write(TestSuite.to_xml_string(test_suites, prettyprint, encoding))
+
+    @staticmethod
+    def _clean_illegal_xml_chars(string_to_clean):
+        """Removes any illegal unicode characters from the given XML string"""
+        # see http://stackoverflow.com/questions/1707890/fast-way-to-filter-illegal-xml-unicode-chars-in-python
+        illegal_unichrs = [(0x00, 0x08), (0x0B, 0x1F), (0x7F, 0x84), (0x86, 0x9F),
+                           (0xD800, 0xDFFF), (0xFDD0, 0xFDDF), (0xFFFE, 0xFFFF),
+                           (0x1FFFE, 0x1FFFF), (0x2FFFE, 0x2FFFF), (0x3FFFE, 0x3FFFF),
+                           (0x4FFFE, 0x4FFFF), (0x5FFFE, 0x5FFFF), (0x6FFFE, 0x6FFFF),
+                           (0x7FFFE, 0x7FFFF), (0x8FFFE, 0x8FFFF), (0x9FFFE, 0x9FFFF),
+                           (0xAFFFE, 0xAFFFF), (0xBFFFE, 0xBFFFF), (0xCFFFE, 0xCFFFF),
+                           (0xDFFFE, 0xDFFFF), (0xEFFFE, 0xEFFFF), (0xFFFFE, 0xFFFFF),
+                           (0x10FFFE, 0x10FFFF)]
+
+        illegal_ranges = ["%s-%s" % (unichr(low), unichr(high))
+                          for (low, high) in illegal_unichrs
+                          if low < sys.maxunicode]
+
+        illegal_xml_re = re.compile(u('[%s]') % u('').join(illegal_ranges))
+        return illegal_xml_re.sub('', string_to_clean)
+
+
+class TestCase(object):
+    """A JUnit test case with a result and possibly some stdout or stderr"""
+
+    def __init__(self, name, classname=None, elapsed_sec=None, stdout=None, stderr=None):
+        self.name = name
+        self.elapsed_sec = elapsed_sec
+        self.stdout = stdout
+        self.stderr = stderr
+        self.classname = classname
+        self.error_message = None
+        self.error_output = None
+        self.failure_message = None
+        self.failure_output = None
+        self.skipped_message = None
+        self.skipped_output = None
+
+    def add_error_info(self, message=None, output=None):
+        """Adds an error message, output, or both to the test case"""
+        if message:
+            self.error_message = message
+        if output:
+            self.error_output = output
+
+    def add_failure_info(self, message=None, output=None):
+        """Adds a failure message, output, or both to the test case"""
+        if message:
+            self.failure_message = message
+        if output:
+            self.failure_output = output
+
+    def add_skipped_info(self, message=None, output=None):
+        """Adds a skipped message, output, or both to the test case"""
+        if message:
+            self.skipped_message = message
+        if output:
+            self.skipped_output = output
+
+    def is_failure(self):
+        """returns true if this test case is a failure"""
+        return self.failure_output or self.failure_message
+
+    def is_error(self):
+        """returns true if this test case is an error"""
+        return self.error_output or self.error_message
+
+    def is_skipped(self):
+        """returns true if this test case has been skipped"""
+        return self.skipped_output or self.skipped_message
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..861a9f5
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,5 @@
+[egg_info]
+tag_build = 
+tag_date = 0
+tag_svn_revision = 0
+
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..d3c0ba6
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+from setuptools import setup, find_packages
+import os
+
+def read(fname):
+	return open(os.path.join(os.path.dirname(__file__), fname)).read()
+
+setup(name='junit-xml',
+	author='Brian Beyer',
+	author_email='brian at kyr.us',
+	url='https://github.com/kyrus/python-junit-xml',
+	license='MIT',
+	packages=find_packages(),
+	test_suite="test_junit_xml",
+	description='Creates JUnit XML test result documents that can be read by tools such as Jenkins',
+	long_description=read('README.rst'),
+	version = "1.4",
+	classifiers=[
+        'Development Status :: 5 - Production/Stable',
+        'Intended Audience :: Developers',
+        'License :: Freely Distributable',
+        'License :: OSI Approved :: MIT License',
+        'Operating System :: OS Independent',
+        'Programming Language :: Python',
+        'Programming Language :: Python :: 3',
+        'Topic :: Software Development :: Build Tools',
+        'Topic :: Software Development :: Testing',
+	    ],
+    install_requires=[
+        'six'
+        ]
+    )
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-junit-xml.git



More information about the Python-modules-commits mailing list