Hello community,
here is the log from the commit of package python-unittest-xml-reporting for
openSUSE:Factory checked in at 2013-11-17 20:20:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-unittest-xml-reporting (Old)
and /work/SRC/openSUSE:Factory/.python-unittest-xml-reporting.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-unittest-xml-reporting"
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-unittest-xml-reporting/python-unittest-xml-reporting.changes
2013-10-25 11:34:25.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.python-unittest-xml-reporting.new/python-unittest-xml-reporting.changes
2013-11-17 20:20:29.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Nov 15 22:09:36 UTC 2013 - [email protected]
+
+- Update to version 1.7.0
+ + No changelog available
+
+-------------------------------------------------------------------
Old:
----
unittest-xml-reporting-1.4.3.tar.gz
New:
----
unittest-xml-reporting-1.7.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-unittest-xml-reporting.spec ++++++
--- /var/tmp/diff_new_pack.WvNjVp/_old 2013-11-17 20:20:29.000000000 +0100
+++ /var/tmp/diff_new_pack.WvNjVp/_new 2013-11-17 20:20:29.000000000 +0100
@@ -17,7 +17,7 @@
Name: python-unittest-xml-reporting
-Version: 1.4.3
+Version: 1.7.0
Release: 0
Url: http://github.com/danielfm/unittest-xml-reporting/tree/master/
Summary: PyUnit-based test runner with JUnit like XML reporting
@@ -28,13 +28,11 @@
BuildRequires: python-devel
BuildRequires: python-setuptools
Requires: python-xml
-%if 0%{?suse_version}
-%py_requires
-%if 0%{?suse_version} > 1110
+%if 0%{?suse_version} && 0%{?suse_version} <= 1110
+%{!?python_sitelib: %global python_sitelib %(python -c "from
distutils.sysconfig import get_python_lib; print get_python_lib()")}
+%else
BuildArch: noarch
%endif
-%endif
-%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from
distutils.sysconfig import get_python_lib; print get_python_lib()")}
%description
unittest-xml-reporting is a unittest test runner that can save test results
++++++ unittest-xml-reporting-1.4.3.tar.gz ->
unittest-xml-reporting-1.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/unittest-xml-reporting-1.4.3/PKG-INFO
new/unittest-xml-reporting-1.7.0/PKG-INFO
--- old/unittest-xml-reporting-1.4.3/PKG-INFO 2012-12-07 21:02:08.000000000
+0100
+++ new/unittest-xml-reporting-1.7.0/PKG-INFO 2013-09-12 00:10:12.000000000
+0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: unittest-xml-reporting
-Version: 1.4.3
+Version: 1.7.0
Summary: PyUnit-based test runner with JUnit like XML reporting.
Home-page: http://github.com/danielfm/unittest-xml-reporting/tree/master/
Author: Daniel Fernandes Martins
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/unittest-xml-reporting-1.4.3/setup.py
new/unittest-xml-reporting-1.7.0/setup.py
--- old/unittest-xml-reporting-1.4.3/setup.py 2012-12-07 21:00:46.000000000
+0100
+++ new/unittest-xml-reporting-1.7.0/setup.py 2013-09-11 23:27:19.000000000
+0200
@@ -1,10 +1,19 @@
#!/usr/bin/env python
+import os
from setuptools import setup, find_packages
+# Load version information
+xmlrunner_version = os.path.join(
+ os.path.abspath(os.path.dirname(__file__)),
+ 'src', 'xmlrunner', 'version.py'
+)
+exec(compile(open(xmlrunner_version).read(), xmlrunner_version, 'exec'))
+
+
setup(
name = 'unittest-xml-reporting',
- version = '1.4.3',
+ version = __version__,
author = 'Daniel Fernandes Martins',
author_email = '[email protected]',
description = 'PyUnit-based test runner with JUnit like XML reporting.',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unittest-xml-reporting-1.4.3/src/unittest_xml_reporting.egg-info/PKG-INFO
new/unittest-xml-reporting-1.7.0/src/unittest_xml_reporting.egg-info/PKG-INFO
---
old/unittest-xml-reporting-1.4.3/src/unittest_xml_reporting.egg-info/PKG-INFO
2012-12-07 21:02:04.000000000 +0100
+++
new/unittest-xml-reporting-1.7.0/src/unittest_xml_reporting.egg-info/PKG-INFO
2013-09-12 00:10:07.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: unittest-xml-reporting
-Version: 1.4.3
+Version: 1.7.0
Summary: PyUnit-based test runner with JUnit like XML reporting.
Home-page: http://github.com/danielfm/unittest-xml-reporting/tree/master/
Author: Daniel Fernandes Martins
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unittest-xml-reporting-1.4.3/src/unittest_xml_reporting.egg-info/SOURCES.txt
new/unittest-xml-reporting-1.7.0/src/unittest_xml_reporting.egg-info/SOURCES.txt
---
old/unittest-xml-reporting-1.4.3/src/unittest_xml_reporting.egg-info/SOURCES.txt
2012-12-07 21:02:04.000000000 +0100
+++
new/unittest-xml-reporting-1.7.0/src/unittest_xml_reporting.egg-info/SOURCES.txt
2013-09-12 00:10:07.000000000 +0200
@@ -8,6 +8,7 @@
src/unittest_xml_reporting.egg-info/not-zip-safe
src/unittest_xml_reporting.egg-info/top_level.txt
src/xmlrunner/__init__.py
+src/xmlrunner/version.py
src/xmlrunner/extra/__init__.py
src/xmlrunner/extra/djangotestrunner.py
src/xmlrunner/tests/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unittest-xml-reporting-1.4.3/src/xmlrunner/__init__.py
new/unittest-xml-reporting-1.7.0/src/xmlrunner/__init__.py
--- old/unittest-xml-reporting-1.4.3/src/xmlrunner/__init__.py 2012-12-07
21:00:46.000000000 +0100
+++ new/unittest-xml-reporting-1.7.0/src/xmlrunner/__init__.py 2013-09-11
23:50:21.000000000 +0200
@@ -8,7 +8,12 @@
import os
import sys
import time
-from unittest import TestResult, _TextTestResult, TextTestRunner
+try:
+ from unittest2.runner import TextTestRunner
+ from unittest2.runner import TextTestResult as _TextTestResult
+ from unittest2.result import TestResult
+except ImportError:
+ from unittest import TestResult, _TextTestResult, TextTestRunner
try:
# Removed in Python 3
@@ -17,8 +22,13 @@
from io import StringIO
+# Allow version to be detected at runtime.
+from .version import __version__, __version_info__
+
+
class _DelegateIO(object):
- """This class defines an object that captures whatever is written to
+ """
+ This class defines an object that captures whatever is written to
a stream or file.
"""
@@ -34,13 +44,25 @@
return getattr(self._captured, attr)
+def testcase_name(test_method):
+ testcase = type(test_method)
+
+ # Ignore module name if it is '__main__'
+ module = testcase.__module__ + '.'
+ if module == '__main__.':
+ module = ''
+ result = module + testcase.__name__
+ return result
+
+
class _TestInfo(object):
- """This class keeps useful information about the execution of a
+ """
+ This class keeps useful information about the execution of a
test method.
"""
# Possible test outcomes
- (SUCCESS, FAILURE, ERROR) = range(3)
+ (SUCCESS, FAILURE, ERROR, SKIP) = range(4)
def __init__(self, test_result, test_method, outcome=SUCCESS, err=None):
self.test_result = test_result
@@ -49,6 +71,19 @@
self.elapsed_time = 0
self.err = err
+ self.test_description = self.test_result.getDescription(test_method)
+ self.test_exception_info = (
+ '' if outcome in (self.SUCCESS, self.SKIP)
+ else self.test_result._exc_info_to_string(
+ self.err, test_method)
+ )
+
+ self.test_name = testcase_name(test_method)
+ self.test_id = test_method.id()
+
+ def id(self):
+ return self.test_method.id()
+
def test_finished(self):
"""Save info that can only be calculated once a test has run.
"""
@@ -56,35 +91,36 @@
self.test_result.stop_time - self.test_result.start_time
def get_description(self):
- """Return a text representation of the test method.
"""
- return self.test_result.getDescription(self.test_method)
+ Return a text representation of the test method.
+ """
+ return self.test_description
def get_error_info(self):
- """Return a text representation of an exception thrown by a test
+ """
+ Return a text representation of an exception thrown by a test
method.
"""
- if not self.err:
- return ''
- return self.test_result._exc_info_to_string(self.err, \
- self.test_method)
+ return self.test_exception_info
class _XMLTestResult(_TextTestResult):
- """A test result class that can express test results in a XML report.
+ """
+ A test result class that can express test results in a XML report.
Used by XMLTestRunner.
"""
- def __init__(self, stream=sys.stderr, descriptions=1, verbosity=1, \
- elapsed_times=True):
+ def __init__(self, stream=sys.stderr, descriptions=1, verbosity=1,
+ elapsed_times=True):
_TextTestResult.__init__(self, stream, descriptions, verbosity)
self.successes = []
self.callback = None
self.elapsed_times = elapsed_times
def _prepare_callback(self, test_info, target_list, verbose_str,
- short_str):
- """Appends a _TestInfo to the given target list and sets a callback
+ short_str):
+ """
+ Appends a _TestInfo to the given target list and sets a callback
method to be called by stopTest method.
"""
target_list.append(test_info)
@@ -101,14 +137,16 @@
self.start_time = self.stop_time = 0
if self.showAll:
- self.stream.writeln('%s (%.3fs)' % \
- (verbose_str, test_info.elapsed_time))
+ self.stream.writeln(
+ '%s (%.3fs)' % (verbose_str, test_info.elapsed_time)
+ )
elif self.dots:
self.stream.write(short_str)
self.callback = callback
def startTest(self, test):
- """Called before execute each test method.
+ """
+ Called before execute each test method.
"""
self.start_time = time.time()
TestResult.startTest(self, test)
@@ -118,7 +156,8 @@
self.stream.write(" ... ")
def stopTest(self, test):
- """Called after execute each test method.
+ """
+ Called after execute each test method.
"""
_TextTestResult.stopTest(self, test)
self.stop_time = time.time()
@@ -128,51 +167,70 @@
self.callback = None
def addSuccess(self, test):
- """Called when a test executes successfully.
"""
- self._prepare_callback(_TestInfo(self, test), \
- self.successes, 'OK', '.')
+ Called when a test executes successfully.
+ """
+ self._prepare_callback(
+ _TestInfo(self, test), self.successes, 'OK', '.'
+ )
def addFailure(self, test, err):
- """Called when a test method fails.
"""
- self._prepare_callback(_TestInfo(self, test, _TestInfo.FAILURE, err), \
- self.failures, 'FAIL', 'F')
+ Called when a test method fails.
+ """
+ testinfo = _TestInfo(self, test, _TestInfo.ERROR, err)
+ self.errors.append((
+ testinfo,
+ self._exc_info_to_string(err, test)
+ ))
+ self._prepare_callback(testinfo, [], 'FAIL', 'F')
def addError(self, test, err):
- """Called when a test method raises an error.
"""
- self._prepare_callback(_TestInfo(self, test, _TestInfo.ERROR, err), \
- self.errors, 'ERROR', 'E')
+ Called when a test method raises an error.
+ """
+ testinfo = _TestInfo(self, test, _TestInfo.ERROR, err)
+ self.errors.append((
+ testinfo,
+ self._exc_info_to_string(err, test)
+ ))
+ self._prepare_callback(testinfo, [], 'ERROR', 'E')
+
+ def addSkip(self, test, reason):
+ """
+ Called when a test method was skipped.
+ """
+ testinfo = _TestInfo(self, test, _TestInfo.SKIP, reason)
+ self.skipped.append((testinfo, reason))
+ self._prepare_callback(testinfo, [], 'SKIP', 'S')
def printErrorList(self, flavour, errors):
- """Writes information about the FAIL or ERROR to the stream.
"""
- for test_info in errors:
+ Writes information about the FAIL or ERROR to the stream.
+ """
+ for test_info, error in errors:
self.stream.writeln(self.separator1)
- self.stream.writeln('%s [%.3fs]: %s' % \
- (flavour, test_info.elapsed_time, \
- test_info.get_description()))
+ self.stream.writeln(
+ '%s [%.3fs]: %s' % (flavour, test_info.elapsed_time,
+ test_info.get_description())
+ )
self.stream.writeln(self.separator2)
self.stream.writeln('%s' % test_info.get_error_info())
def _get_info_by_testcase(self, outsuffix):
- """Organizes test results by TestCase module. This information is
+ """
+ Organizes test results by TestCase module. This information is
used during the report generation, where a XML report will be created
for each TestCase.
"""
tests_by_testcase = {}
- for tests in (self.successes, self.failures, self.errors):
+ for tests in (self.successes, self.failures, self.errors,
self.skipped):
for test_info in tests:
- testcase = type(test_info.test_method)
-
- # Ignore module name if it is '__main__'
- module = testcase.__module__ + '.'
- if module == '__main__.':
- module = ''
- testcase_name = module + testcase.__name__
-
+ if isinstance(test_info, tuple):
+ # This is a skipped, error or a failure test case
+ test_info = test_info[0]
+ testcase_name = test_info.test_name
if not testcase_name in tests_by_testcase:
tests_by_testcase[testcase_name] = []
tests_by_testcase[testcase_name].append(test_info)
@@ -180,7 +238,8 @@
return tests_by_testcase
def _report_testsuite(suite_name, outsuffix, tests, xml_document):
- """Appends the testsuite section to the XML document.
+ """
+ Appends the testsuite section to the XML document.
"""
testsuite = xml_document.createElement('testsuite')
xml_document.appendChild(testsuite)
@@ -188,54 +247,60 @@
testsuite.setAttribute('name', "%s-%s" % (suite_name, outsuffix))
testsuite.setAttribute('tests', str(len(tests)))
- testsuite.setAttribute('time', '%.3f' % \
- sum(map(lambda e: e.elapsed_time, tests)))
-
- failures = filter(lambda e: e.outcome==_TestInfo.FAILURE, tests)
+ testsuite.setAttribute(
+ 'time', '%.3f' % sum(map(lambda e: e.elapsed_time, tests))
+ )
+ failures = filter(lambda e: e.outcome == _TestInfo.FAILURE, tests)
testsuite.setAttribute('failures', str(len(list(failures))))
- errors = filter(lambda e: e.outcome==_TestInfo.ERROR, tests)
+ errors = filter(lambda e: e.outcome == _TestInfo.ERROR, tests)
testsuite.setAttribute('errors', str(len(list(errors))))
return testsuite
_report_testsuite = staticmethod(_report_testsuite)
- def _test_method_name(test_method):
- """Returns the test method name.
+ def _test_method_name(test_id):
+ """
+ Returns the test method name.
"""
- test_id = test_method.id()
return test_id.split('.')[-1]
_test_method_name = staticmethod(_test_method_name)
def _report_testcase(suite_name, test_result, xml_testsuite, xml_document):
- """Appends a testcase section to the XML document.
+ """
+ Appends a testcase section to the XML document.
"""
testcase = xml_document.createElement('testcase')
xml_testsuite.appendChild(testcase)
testcase.setAttribute('classname', suite_name)
- testcase.setAttribute('name', \
- _XMLTestResult._test_method_name(test_result.test_method))
+ testcase.setAttribute(
+ 'name', _XMLTestResult._test_method_name(test_result.test_id)
+ )
testcase.setAttribute('time', '%.3f' % test_result.elapsed_time)
if (test_result.outcome != _TestInfo.SUCCESS):
- elem_name = ('failure', 'error')[test_result.outcome-1]
+ elem_name = ('failure', 'error', 'skipped')[test_result.outcome -
1]
failure = xml_document.createElement(elem_name)
testcase.appendChild(failure)
+ if test_result.outcome != _TestInfo.SKIP:
+ failure.setAttribute('type', test_result.err[0].__name__)
+ failure.setAttribute('message', str(test_result.err[1]))
+ error_info = str(test_result.get_error_info())
+ failureText = xml_document.createCDATASection(error_info)
+ failure.appendChild(failureText)
+ else:
+ failure.setAttribute('type', 'skip')
+ failure.setAttribute('message', test_result.err)
- failure.setAttribute('type', test_result.err[0].__name__)
- failure.setAttribute('message', str(test_result.err[1]))
-
- error_info = str(test_result.get_error_info())
- failureText = xml_document.createCDATASection(error_info)
- failure.appendChild(failureText)
_report_testcase = staticmethod(_report_testcase)
def _report_output(test_runner, xml_testsuite, xml_document):
- """Appends the system-out and system-err sections to the XML document.
+ """
+ Appends the system-out and system-err sections to the XML document.
"""
systemout = xml_document.createElement('system-out')
xml_testsuite.appendChild(systemout)
@@ -252,30 +317,35 @@
_report_output = staticmethod(_report_output)
def generate_reports(self, test_runner):
- """Generates the XML reports to a given XMLTestRunner object.
+ """
+ Generates the XML reports to a given XMLTestRunner object.
"""
from xml.dom.minidom import Document
all_results = self._get_info_by_testcase(test_runner.outsuffix)
- if isinstance(test_runner.output, str) and not \
- os.path.exists(test_runner.output):
+ if (isinstance(test_runner.output, str) and not
+ os.path.exists(test_runner.output)):
os.makedirs(test_runner.output)
for suite, tests in all_results.items():
doc = Document()
# Build the XML file
- testsuite = _XMLTestResult._report_testsuite(suite, \
- test_runner.outsuffix, tests, doc)
+ testsuite = _XMLTestResult._report_testsuite(
+ suite, test_runner.outsuffix, tests, doc
+ )
for test in tests:
_XMLTestResult._report_testcase(suite, test, testsuite, doc)
_XMLTestResult._report_output(test_runner, testsuite, doc)
xml_content = doc.toprettyxml(indent='\t')
if type(test_runner.output) is str:
- report_file = open('%s%sTEST-%s-%s.xml' % \
- (test_runner.output, os.sep, suite, \
- test_runner.outsuffix), 'w')
+ report_file = open(
+ '%s%sTEST-%s-%s.xml' % (
+ test_runner.output, os.sep, suite,
+ test_runner.outsuffix
+ ), 'w'
+ )
try:
report_file.write(xml_content)
finally:
@@ -286,41 +356,47 @@
class XMLTestRunner(TextTestRunner):
- """A test runner class that outputs the results in JUnit like XML files.
"""
- def __init__(self, output='.', outsuffix = None, stream=sys.stderr, \
- descriptions=True, verbosity=1, elapsed_times=True):
+ A test runner class that outputs the results in JUnit like XML files.
+ """
+ def __init__(self, output='.', outsuffix=None, stream=sys.stderr,
+ descriptions=True, verbosity=1, elapsed_times=True):
TextTestRunner.__init__(self, stream, descriptions, verbosity)
self.verbosity = verbosity
self.output = output
if outsuffix:
- self.outsuffix = outsuffix
+ self.outsuffix = outsuffix
else:
- self.outsuffix = time.strftime("%Y%m%d%H%M%S")
+ self.outsuffix = time.strftime("%Y%m%d%H%M%S")
self.elapsed_times = elapsed_times
def _make_result(self):
- """Creates a TestResult object which will be used to store
+ """
+ Creates a TestResult object which will be used to store
information about the executed tests.
"""
- return _XMLTestResult(self.stream, self.descriptions, \
- self.verbosity, self.elapsed_times)
+ return _XMLTestResult(
+ self.stream, self.descriptions, self.verbosity, self.elapsed_times
+ )
def _patch_standard_output(self):
- """Replaces stdout and stderr streams with string-based streams
+ """
+ Replaces stdout and stderr streams with string-based streams
in order to capture the tests' output.
"""
sys.stdout = _DelegateIO(sys.stdout)
sys.stderr = _DelegateIO(sys.stderr)
def _restore_standard_output(self):
- """Restores stdout and stderr streams.
+ """
+ Restores stdout and stderr streams.
"""
sys.stdout = sys.stdout.delegate
sys.stderr = sys.stderr.delegate
def run(self, test):
- """Runs the given test case or test suite.
+ """
+ Runs the given test case or test suite.
"""
try:
# Prepare the test execution
@@ -342,30 +418,50 @@
result.printErrors()
self.stream.writeln(result.separator2)
run = result.testsRun
- self.stream.writeln("Ran %d test%s in %.3fs" %
- (run, run != 1 and "s" or "", time_taken))
+ self.stream.writeln("Ran %d test%s in %.3fs" % (
+ run, run != 1 and "s" or "", time_taken)
+ )
self.stream.writeln()
+ expectedFails = unexpectedSuccesses = skipped = 0
+ try:
+ results = map(len, (result.expectedFailures,
+ result.unexpectedSuccesses,
+ result.skipped))
+ except AttributeError:
+ pass
+ else:
+ expectedFails, unexpectedSuccesses, skipped = results
+
# Error traces
+ infos = []
if not result.wasSuccessful():
- self.stream.write("FAILED (")
- failed, errored = (len(result.failures), len(result.errors))
+ self.stream.write("FAILED")
+ failed, errored = map(len, (result.failures, result.errors))
if failed:
- self.stream.write("failures=%d" % failed)
+ infos.append("failures={0}".format(failed))
if errored:
- if failed:
- self.stream.write(", ")
- self.stream.write("errors=%d" % errored)
- self.stream.writeln(")")
+ infos.append("errors={0}".format(errored))
+ else:
+ self.stream.write("OK")
+
+ if skipped:
+ infos.append("skipped={0}".format(skipped))
+ if expectedFails:
+ infos.append("expected failures={0}".format(expectedFails))
+ if unexpectedSuccesses:
+ infos.append("unexpected
successes={0}".fornat(unexpectedSuccesses))
+
+ if infos:
+ self.stream.writeln(" ({0})".format(", ".join(infos)))
else:
- self.stream.writeln("OK")
+ self.stream.write("\n")
# Generate reports
self.stream.writeln()
self.stream.writeln('Generating XML reports...')
result.generate_reports(self)
finally:
- pass
self._restore_standard_output()
return result
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unittest-xml-reporting-1.4.3/src/xmlrunner/extra/djangotestrunner.py
new/unittest-xml-reporting-1.7.0/src/xmlrunner/extra/djangotestrunner.py
--- old/unittest-xml-reporting-1.4.3/src/xmlrunner/extra/djangotestrunner.py
2012-12-07 20:55:37.000000000 +0100
+++ new/unittest-xml-reporting-1.7.0/src/xmlrunner/extra/djangotestrunner.py
2013-09-11 23:27:19.000000000 +0200
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
-"""Custom Django test runner that runs the tests using the
+"""
+Custom Django test runner that runs the tests using the
XMLTestRunner class.
This script shows how to use the XMLTestRunner in a Django project. To learn
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unittest-xml-reporting-1.4.3/src/xmlrunner/version.py
new/unittest-xml-reporting-1.7.0/src/xmlrunner/version.py
--- old/unittest-xml-reporting-1.4.3/src/xmlrunner/version.py 1970-01-01
01:00:00.000000000 +0100
+++ new/unittest-xml-reporting-1.7.0/src/xmlrunner/version.py 2013-09-12
00:07:37.000000000 +0200
@@ -0,0 +1,14 @@
+# -*- coding: utf-8 -*-
+"""
+ xmlrunner.version
+ ~~~~~~~~~~~~~~~~~
+
+ Runtime library version information.
+
+ :codeauthor: :email:`Pedro Algarvio ([email protected])`
+ :copyright: © 2013 Pedro Algarvio.
+ :license: LGPL, see LICENSE for more details.
+"""
+
+__version_info__ = (1, 7, 0)
+__version__ = '.'.join(map(str, __version_info__))
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]