From fad64f0a07c5257e826efcd687f2732c2adbeb06 Mon Sep 17 00:00:00 2001 From: Niru Maheswaranathan Date: Tue, 3 May 2016 16:37:47 -0700 Subject: [PATCH] Adds the first test (for humantime) --- .gitignore | 6 ------ Makefile | 6 ++++++ tests/test_headers.py | 14 ++++++++++++++ tests/test_utils.py | 29 +++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 tests/test_headers.py create mode 100644 tests/test_utils.py diff --git a/.gitignore b/.gitignore index 0f4b1aa..903a58a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,4 @@ -# Byte-compiled / optimized / DLL files *.pyc - -# Distribution / packaging build/ dist/ lib/ @@ -10,6 +7,3 @@ lib64/ *.egg *.zip docs/_build - -# PyCharm -.idea/ diff --git a/Makefile b/Makefile index 43c5cc2..3a25467 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,12 @@ develop: upload: python setup.py sdist bdist_wininst upload +test2: + python2 /usr/local/bin/nosetests --logging-level=INFO + +test: + nosetests -v --with-coverage --cover-package=tableprint --logging-level=INFO + clean: rm -rf tableprint.egg-info rm -f *.pyc diff --git a/tests/test_headers.py b/tests/test_headers.py new file mode 100644 index 0000000..6e76421 --- /dev/null +++ b/tests/test_headers.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals +from tableprint import humantime + +# def table(data, headers=None, format_spec=FMT, width=WIDTH, style=STYLE, out=sys.stdout): +# def header(headers, width=WIDTH, style=STYLE, add_hr=True): +# def row(values, width=WIDTH, format_spec=FMT, style=STYLE): +# def hr(n, width=WIDTH, linestyle=LineStyle('|', '-', '+', '|')): +# def top(n, width=WIDTH, style=STYLE): +# def bottom(n, width=WIDTH, style=STYLE): +# def banner(message, width=30, style='banner', out=sys.stdout): +# def dataframe(df, **kwargs): +# def humantime(t): +# def _format_line(data, linestyle): diff --git a/tests/test_utils.py b/tests/test_utils.py new file mode 100644 index 0000000..f514c02 --- /dev/null +++ b/tests/test_utils.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals +from tableprint import humantime +import pytest + + +def test_humantime(): + + # test numeric input + assert humantime(1e6) == u'1 weeks, 4 days, 13 hours, 46 min., 40 s' + assert humantime(2e5) == u'2 days, 7 hours, 33 min., 20 s' + assert humantime(5e3) == u'1 hours, 23 min., 20 s' + assert humantime(60) == u'1 min., 0 s' + assert humantime(1) == u'1 s' + assert humantime(0) == u'0 s' + assert humantime(0.1) == u'100 ms' + assert humantime(0.005) == u'5 ms' + assert humantime(1e-5) == u'10 μs' + assert humantime(5.25e-4) == u'525 μs' + assert humantime(5e-7) == u'500 ns' + assert humantime(1e-12) == u'0.001 ns' + + # test non-numeric input + for val in ('abc', [], {'x': 5}): + + with pytest.raises(ValueError) as context: + humantime(val) + + assert 'Input must be numeric' in str(context.value)