diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-10-08 11:12:32 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-10-08 11:17:58 +0300 |
commit | 2414a1def4af92257638d8c2b28bdc4ee4cbe627 (patch) | |
tree | 79ed3e5d23ea3681bd6ae7ebaebc106afad8030f | |
parent | 9966f4076b06902840d1253d2349d48653d6830d (diff) | |
download | releaselogparser-2414a1def4af92257638d8c2b28bdc4ee4cbe627.tar.gz releaselogparser-2414a1def4af92257638d8c2b28bdc4ee4cbe627.tar.bz2 |
Add testsuite
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | MANIFEST.in | 3 | ||||
-rw-r--r-- | releaselog/input.py | 2 | ||||
-rw-r--r-- | setup.py | 12 | ||||
-rw-r--r-- | tests/__init__.py | 9 | ||||
-rw-r--r-- | tests/rlogtester.py | 7 | ||||
-rw-r--r-- | tests/test_cpan.py | 37 | ||||
-rw-r--r-- | tests/test_gnu.py | 62 | ||||
-rw-r--r-- | tests/test_python.py | 34 |
9 files changed, 160 insertions, 8 deletions
@@ -1,7 +1,7 @@ *~ *.pyc -.emacs.desktop +.emacs.* build/ dist/ tmp/ *.egg-info/ diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..268ee5b --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,3 @@ +exclude .gitignore +include COPYING.txt +include CHANGES.txt diff --git a/releaselog/input.py b/releaselog/input.py index ebf8ab6..138ba16 100644 --- a/releaselog/input.py +++ b/releaselog/input.py @@ -27,13 +27,13 @@ class ReleaseLogFile(ReleaseLog): def __new__(cls, type, file, **kwargs): return ReleaseLog.__new__(cls, type, open(file, 'r'), **kwargs) class ReleaseLogURL(ReleaseLog): - """Read history log entries from a URL file. + """Read history log entries from a URL. Usage: hist = ReleaseLogURL(fmt, url [, args...]) Arguments: @@ -15,29 +15,29 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. from setuptools import setup, find_packages from codecs import open -#with open("README.rst", "r") as fh: -# long_description = fh.read() +with open("README.rst", "r") as fh: + long_description = fh.read() setup(name='releaselog', - version='0.2', + version='0.3', author='Sergey Poznyakoff', author_email='gray@gnu.org', url='http://git.gnu.org.ua/cgit/gsc/releaselog.git/', packages = find_packages(exclude=['contrib', 'docs', 'tests', 'testdata']), scripts=['bin/releaselog'], license='GPL License', description='Release log parser.', -# long_description=long_description, -# long_description_content_type="text/x-rst", + long_description=long_description, + long_description_content_type="text/x-rst", platforms=['any'], - # test_suite='tests', + test_suite='tests', classifiers=[ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU General Public License (GPL)', 'Operating System :: OS Independent', 'Programming Language :: Python', diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..87f4c50 --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,9 @@ +import unittest +import sys +from os.path import dirname, abspath + +sys.path.insert(0,dirname(abspath(__file__))) + +def test_suite(): + loader = unittest.TestLoader() + return loader.loadTestFromModule() diff --git a/tests/rlogtester.py b/tests/rlogtester.py new file mode 100644 index 0000000..7e4b374 --- /dev/null +++ b/tests/rlogtester.py @@ -0,0 +1,7 @@ +import unittest +from releaselog import ReleaseLog + +class ReleaseLogTestCase(unittest.TestCase): + def setUp(self): + self.rlog = ReleaseLog(self.type, self.input.split("\n"), + **self.kwargs) diff --git a/tests/test_cpan.py b/tests/test_cpan.py new file mode 100644 index 0000000..b707c8d --- /dev/null +++ b/tests/test_cpan.py @@ -0,0 +1,37 @@ +from rlogtester import ReleaseLogTestCase + +class CPANReleseLogTestCase(ReleaseLogTestCase): + type = 'CPAN' + kwargs = { } + input = """ +Revision history for Perl extension Config::HAProxy. + +1.02 Mon Jul 16 07:38:31 2018 + - remove the leftover use of autodie + +1.01 Thu Jul 12 09:04:28 2018 + - set minimal required Perl version + - drop dependency on autodie + +1.00 Sun Jul 8 19:57:57 2018 + - original revision + +0.05 2018-05-20 + - experimental version +""" + def test_count(self): + self.assertEqual(len(self.rlog), 4, "wrong count") + + def test_recent(self): + elt = self.rlog[0] + self.assertEqual(elt.version, "1.02") + + def test_index(self): + elt = self.rlog[2] + self.assertEqual(elt.version, "1.00") + +if __name__ == '__main__': + unittest.main() + + + diff --git a/tests/test_gnu.py b/tests/test_gnu.py new file mode 100644 index 0000000..090949c --- /dev/null +++ b/tests/test_gnu.py @@ -0,0 +1,62 @@ +from rlogtester import ReleaseLogTestCase + +class GNUReleseLogTestCase(ReleaseLogTestCase): + type = 'GNU' + kwargs = { } + input = """ +GNU mailutils NEWS -- history of user-visible changes. 2018-08-29 +Copyright (C) 2002-2018 Free Software Foundation, Inc. +See the end of file for copying conditions. + +Please send mailutils bug reports to <bug-mailutils@gnu.org>. + +Version 3.5.90 (Git) + +* Bugfixes + +Version 3.5, 2018-08-29 + +* Support for Guile version 2.2.0 and later + +Support for prior versions has been withdrawn. + +* New scheme functions + +** mu-encoder-port port name . args + +Version 3.4 - 2017-11-02 + +* Fix AM_MAILUTILS macro + +The macro incorrectly compared three-part version number with a +two-part argument. + +Version 3.3 - Sergey Poznyakoff, 2017-10-18 + +* TLS configuration + +Some changes to the TLS configuration + +Version 3.2 - 2017-03-11 + +* configuration syntax + +Statements that allow for variable substitution also allow for command +expansion. Commands are invoked the same way as in shell. +""" + + def test_count(self): + self.assertEqual(len(self.rlog), 4, "wrong count") + + def test_recent(self): + elt = self.rlog[0] + self.assertEqual(elt.version, "3.5") + + def test_index(self): + elt = self.rlog[2] + self.assertEqual(elt.version, "3.3") + +if __name__ == '__main__': + unittest.main() + + diff --git a/tests/test_python.py b/tests/test_python.py new file mode 100644 index 0000000..904cc82 --- /dev/null +++ b/tests/test_python.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +from rlogtester import ReleaseLogTestCase + +class PythonReleseLogTestCase(ReleaseLogTestCase): + type = 'python' + kwargs = { } + input = """ +v1.3, 2018-09-01 -- Don't throw exception on invalid tokens. + Fix python 3 compatibility +v1.2, 2018-08-27 -- Fix handling of unrecognized closing tags. +v1.1, 2018-08-24 -- Initialize token_class dynamically. +v1.0, 2018-08-19 -- Initial release. + +""" + + def test_count(self): + self.assertEqual(len(self.rlog), 4, "wrong count") + + def test_recent(self): + elt = self.rlog[0] + self.assertEqual(elt.version, "1.3") + + def test_index(self): + elt = self.rlog[2] + self.assertEqual(elt.version, "1.1") + + def test_descr(self): + self.assertEqual('\n'.join(self.rlog[0].descr),"""Don't throw exception on invalid tokens. + Fix python 3 compatibility""") + self.assertEqual('\n'.join(self.rlog[2].descr),"Initialize token_class dynamically.") + +if __name__ == '__main__': + unittest.main() + |