diff --git a/.gitignore b/.gitignore index 614d328..40ec187 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.py[co] *.sw[po] .cache/ +.coverage diff --git a/.travis.yml b/.travis.yml index b280081..b725ae9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,8 @@ python: - "3.3" - "3.4" - "3.5" +before_install: + - pip install pytest pytest-cov install: "pip install -r requirements.txt" addons: apt: diff --git a/tests/ci-test-wrapper b/tests/ci-test-wrapper index 17fb500..e466bf7 100755 --- a/tests/ci-test-wrapper +++ b/tests/ci-test-wrapper @@ -90,4 +90,4 @@ fi # Test buku(1) with $repo_root at the beginning of $PATH (so that buku # from this repo is picked up). cd $here -PATH="$repo_root:$PATH" python -m pytest test_*.py +PATH="$repo_root:$PATH" python -m pytest test_*.py --cov buku diff --git a/tests/test_bukuDb.py b/tests/test_bukuDb.py index 927105c..c654620 100644 --- a/tests/test_bukuDb.py +++ b/tests/test_bukuDb.py @@ -205,8 +205,19 @@ class TestBukuDb(unittest.TestCase): # def test_browse_by_index(self): # self.fail() - # def test_close_quit(self): - # self.fail() + # @unittest.skip('skipping') + def test_close_quit(self): + bdb=BukuDb() + # quitting with no args + try: + bdb.close_quit() + except SystemExit as err: + self.assertEqual(err.args[0], 0) + # quitting with custom arg + try: + bdb.close_quit(1) + except SystemExit as err: + self.assertEqual(err.args[0], 1) # def test_import_bookmark(self): # self.fail() diff --git a/tests/test_helpers.py b/tests/test_helpers.py new file mode 100644 index 0000000..953447a --- /dev/null +++ b/tests/test_helpers.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import imp, unittest + +buku = imp.load_source('buku', '../buku') + +from buku import parse_tags + + +class TestHelpers(unittest.TestCase): + + # @unittest.skip('skipping') + def test_parse_tags(self): + # call without arguments + parsed = parse_tags() + self.assertIsNone(parsed) + # empty tags + parsed = parse_tags([",,,,,"]) + self.assertEqual(parsed, ",") + # sorting tags + parsed = parse_tags(["z_tag,a_tag,n_tag"]) + self.assertEqual(parsed, ",a_tag,n_tag,z_tag,") + # whitespaces + parsed = parse_tags([" a tag , , , ,\t,\n,\r,\x0b,\x0c"]) + self.assertEqual(parsed, ",a tag,") + # duplicates, excessive spaces + parsed = parse_tags(["tag,tag, tag, tag,tag , tag "]) + self.assertEqual(parsed, ",tag,") + # escaping quotes + parsed = parse_tags(["\"tag\",\'tag\',tag"]) + self.assertEqual(parsed, ",\"tag\",\'tag\',tag,") + # combo + parsed = parse_tags([",,z_tag, a tag ,\t,,, ,n_tag ,n_tag, a_tag, \na tag ,\r, \"a_tag\""]) + self.assertEqual(parsed, ",\"a_tag\",a tag,a_tag,n_tag,z_tag,") + + +if __name__ == "__main__": + unittest.main()