Add unittest
issue8905 review258541002
This commit is contained in:
1 parent
f9c4848d22
commit
b74753f033
10 files changed
+1279
-1029
No files matched your search
+25
@@ -0,0 +1,25 @@
|
||||
clone:
|
||||
hg:
|
||||
image: plugins/hg
|
||||
environment:
|
||||
- HG_SHARE_POOL=/root/.cache/hg
|
||||
volumes:
|
||||
- cache:/root/.cache
|
||||
|
||||
pipeline:
|
||||
tox:
|
||||
image: ${IMAGE}
|
||||
commands:
|
||||
- pip install tox
|
||||
- tox -e "${TOXENV}"
|
||||
volumes:
|
||||
- cache:/root/.cache
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- IMAGE: tryton/tryton-test:3.5
|
||||
TOXENV: py35
|
||||
- IMAGE: tryton/tryton-test:3.6
|
||||
TOXENV: py36
|
||||
- IMAGE: tryton/tryton-test:3.7
|
||||
TOXENV: py37
|
||||
@@ -144,5 +144,6 @@ dist = setup(name=name,
|
||||
'calendar': ['GooCalendar>=0.5'],
|
||||
},
|
||||
zip_safe=False,
|
||||
test_suite='tryton.tests',
|
||||
**args
|
||||
)
|
||||
@@ -0,0 +1,6 @@
|
||||
[tox]
|
||||
envlist = py35,py36,py37
|
||||
|
||||
[testenv]
|
||||
commands = {envpython} setup.py test
|
||||
install_command = pip install --pre --find-links https://trydevpi.tryton.org/ {opts} {packages}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -210,10 +210,3 @@ class PopdownMixin(object):
|
||||
# When setting no item GTK doesn't clear the entry
|
||||
entry.get_child().set_text('')
|
||||
return True
|
||||
|
||||
|
||||
def test_freeze_value():
|
||||
assert freeze_value({'foo': 'bar'}) == (('foo', 'bar'),)
|
||||
assert freeze_value([1, 42, 2, 3]) == (1, 42, 2, 3)
|
||||
assert freeze_value('foo') == 'foo'
|
||||
assert freeze_value({'foo': {'bar': 42}}) == (('foo', (('bar', 42),)),)
|
||||
@@ -107,52 +107,3 @@ def parse(text, converter=None):
|
||||
if '-' in text:
|
||||
seconds *= -1
|
||||
return datetime.timedelta(seconds=seconds)
|
||||
|
||||
|
||||
_tests = [
|
||||
(None, ''),
|
||||
(datetime.timedelta(), '00:00'),
|
||||
(datetime.timedelta(days=3, hours=5, minutes=30), '3d 05:30'),
|
||||
(datetime.timedelta(weeks=48), '11M 6d'),
|
||||
(datetime.timedelta(weeks=50), '11M 2w 6d'),
|
||||
(datetime.timedelta(weeks=52), '12M 4d'),
|
||||
(datetime.timedelta(days=360), '12M'),
|
||||
(datetime.timedelta(days=364), '12M 4d'),
|
||||
(datetime.timedelta(days=365), '1Y'),
|
||||
(datetime.timedelta(days=366), '1Y 1d'),
|
||||
(datetime.timedelta(hours=2, minutes=5, seconds=10), '02:05:10'),
|
||||
(datetime.timedelta(minutes=15, microseconds=42), '00:15:00.000042'),
|
||||
(datetime.timedelta(days=1, microseconds=42), '1d .000042'),
|
||||
(datetime.timedelta(seconds=-1), '-00:00:01'),
|
||||
(datetime.timedelta(days=-1, hours=-5, minutes=-30), '-1d 05:30'),
|
||||
]
|
||||
|
||||
|
||||
def test_format():
|
||||
for timedelta, text in _tests:
|
||||
assert format(timedelta) == text
|
||||
|
||||
|
||||
_tests_parse = [
|
||||
(datetime.timedelta(), ' '),
|
||||
(datetime.timedelta(), 'foo'),
|
||||
(datetime.timedelta(days=1.5), '1.5d'),
|
||||
(datetime.timedelta(days=-2), '1d -1d'),
|
||||
(datetime.timedelta(hours=1, minutes=5, seconds=10), '1:5:10:42'),
|
||||
(datetime.timedelta(hours=2), '1: 1:'),
|
||||
(datetime.timedelta(hours=.25), ':15'),
|
||||
(datetime.timedelta(hours=1), '1h'),
|
||||
(datetime.timedelta(hours=.25), '.25h'),
|
||||
]
|
||||
|
||||
|
||||
def test_parse():
|
||||
for timedelta, text, in _tests + _tests_parse:
|
||||
assert parse(text) == timedelta
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
for name in list(globals()):
|
||||
if name.startswith('test_'):
|
||||
func = globals()[name]
|
||||
func()
|
||||
@@ -0,0 +1,29 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
import os
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
|
||||
def test_suite():
|
||||
suite = unittest.TestSuite()
|
||||
loader = unittest.TestLoader()
|
||||
for filename in os.listdir(os.path.dirname(__file__)):
|
||||
if filename.startswith("test") and filename.endswith(".py"):
|
||||
modname = "tryton.tests." + filename[:-3]
|
||||
__import__(modname)
|
||||
module = sys.modules[modname]
|
||||
suite.addTests(loader.loadTestsFromModule(module))
|
||||
return suite
|
||||
|
||||
|
||||
def main():
|
||||
suite = test_suite()
|
||||
runner = unittest.TextTestRunner()
|
||||
return runner.run(suite)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(
|
||||
os.path.abspath(__file__)))))
|
||||
sys.exit(not main().wasSuccessful())
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,18 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from unittest import TestCase
|
||||
|
||||
from tryton.common.selection import freeze_value
|
||||
|
||||
|
||||
class SelectionTestCase(TestCase):
|
||||
"Test common selection"
|
||||
|
||||
def test_freeze_value(self):
|
||||
"Test freeze_value"
|
||||
self.assertEqual(freeze_value({'foo': 'bar'}), (('foo', 'bar'),))
|
||||
self.assertEqual(freeze_value([1, 42, 2, 3]), (1, 42, 2, 3))
|
||||
self.assertEqual(freeze_value('foo'), 'foo')
|
||||
self.assertEqual(
|
||||
freeze_value({'foo': {'bar': 42}}), (('foo', (('bar', 42),)),))
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
import datetime as dt
|
||||
from unittest import TestCase
|
||||
|
||||
from tryton.common.timedelta import format, parse
|
||||
|
||||
|
||||
class TimeDeltaTestCase(TestCase):
|
||||
"Test common timedelta"
|
||||
|
||||
def _format_values(self):
|
||||
return [
|
||||
(None, ''),
|
||||
(dt.timedelta(), '00:00'),
|
||||
(dt.timedelta(days=3, hours=5, minutes=30), '3d 05:30'),
|
||||
(dt.timedelta(weeks=48), '11M 6d'),
|
||||
(dt.timedelta(weeks=50), '11M 2w 6d'),
|
||||
(dt.timedelta(weeks=52), '12M 4d'),
|
||||
(dt.timedelta(days=360), '12M'),
|
||||
(dt.timedelta(days=364), '12M 4d'),
|
||||
(dt.timedelta(days=365), '1Y'),
|
||||
(dt.timedelta(days=366), '1Y 1d'),
|
||||
(dt.timedelta(hours=2, minutes=5, seconds=10), '02:05:10'),
|
||||
(dt.timedelta(minutes=15, microseconds=42), '00:15:00.000042'),
|
||||
(dt.timedelta(days=1, microseconds=42), '1d .000042'),
|
||||
(dt.timedelta(seconds=-1), '-00:00:01'),
|
||||
(dt.timedelta(days=-1, hours=-5, minutes=-30), '-1d 05:30'),
|
||||
]
|
||||
|
||||
def test_format(self):
|
||||
"Test format"
|
||||
for timedelta, text in self._format_values():
|
||||
self.assertEqual(format(timedelta), text,
|
||||
msg="format(%r)" % timedelta)
|
||||
|
||||
def _parse_values(self):
|
||||
return self._format_values() + [
|
||||
(dt.timedelta(), ' '),
|
||||
(dt.timedelta(), 'foo'),
|
||||
(dt.timedelta(days=1.5), '1.5d'),
|
||||
(dt.timedelta(days=-2), '1d -1d'),
|
||||
(dt.timedelta(hours=1, minutes=5, seconds=10), '1:5:10:42'),
|
||||
(dt.timedelta(hours=2), '1: 1:'),
|
||||
(dt.timedelta(hours=.25), ':15'),
|
||||
(dt.timedelta(hours=1), '1h'),
|
||||
(dt.timedelta(hours=.25), '.25h'),
|
||||
]
|
||||
|
||||
def test_parse(self):
|
||||
"Test parse"
|
||||
for timedelta, text in self._parse_values():
|
||||
self.assertEqual(parse(text), timedelta,
|
||||
msg="parse(%r)" % text)
|
||||
Reference in new issue
Block a user