Files
deb-python-pint/pint/testsuite/test_formatter.py
Hernan Grecco 88f7bb3f28 Implemented checks in testsuite to assert that warnings are only emmited when expected.
Each test class captures the logging output for warnings and check at tear down that
there was not a warning. If any warning is expected you must explicitly capture within
the test using `with self.capture_log() as buffer:`
2014-04-01 01:16:22 -03:00

44 lines
1.9 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import division, unicode_literals, print_function, absolute_import
from pint import formatting as fmt
from pint.testsuite import QuantityTestCase
class TestFormatter(QuantityTestCase):
def test_join(self):
for empty in (tuple(), []):
self.assertEqual(fmt._join('s', empty), '')
self.assertEqual(fmt._join('*', '1 2 3'.split()), '1*2*3')
self.assertEqual(fmt._join('{0}*{1}', '1 2 3'.split()), '1*2*3')
def test_formatter(self):
self.assertEqual(fmt.formatter(dict().items()), '')
self.assertEqual(fmt.formatter(dict(meter=1).items()), 'meter')
self.assertEqual(fmt.formatter(dict(meter=-1).items()), '1 / meter')
self.assertEqual(fmt.formatter(dict(meter=-1).items(), as_ratio=False), 'meter ** -1')
self.assertEqual(fmt.formatter(dict(meter=-1, second=-1).items(), as_ratio=False),
'meter ** -1 * second ** -1')
self.assertEqual(fmt.formatter(dict(meter=-1, second=-1).items()),
'1 / meter / second')
self.assertEqual(fmt.formatter(dict(meter=-1, second=-1).items(), single_denominator=True),
'1 / (meter * second)')
self.assertEqual(fmt.formatter(dict(meter=-1, second=-2).items()),
'1 / meter / second ** 2')
self.assertEqual(fmt.formatter(dict(meter=-1, second=-2).items(), single_denominator=True),
'1 / (meter * second ** 2)')
def test_parse_spec(self):
self.assertEqual(fmt._parse_spec(''), '')
self.assertEqual(fmt._parse_spec(''), '')
self.assertRaises(ValueError, fmt._parse_spec, 'W')
self.assertRaises(ValueError, fmt._parse_spec, 'PL')
def test_format_unit(self):
self.assertEqual(fmt.format_unit('', 'C'), 'dimensionless')
self.assertRaises(ValueError, fmt.format_unit, 'm', 'W')