add unit test
This commit is contained in:
parent
729c954f3d
commit
e1b55ec23c
3 changed files with 58 additions and 5 deletions
32
tests/common.py
Normal file
32
tests/common.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import locale
|
||||
from functools import wraps
|
||||
|
||||
|
||||
class mylocale:
|
||||
"""Locale context manager. Resets to user default at exit."""
|
||||
|
||||
def __init__(self, value=None):
|
||||
self.value = value
|
||||
|
||||
def __enter__(self):
|
||||
locale.setlocale(locale.LC_ALL, locale=self.value)
|
||||
|
||||
def __exit__(self, _type, value, traceback):
|
||||
# This resets to user default. Implementing a proper save and restore
|
||||
# for locale is quite tricky, and this serves our testing needs.
|
||||
locale.setlocale(locale.LC_ALL, "")
|
||||
# return false so we don't eat exceptions
|
||||
return False
|
||||
|
||||
def __call__(self, func):
|
||||
"""When called, act as a decorator"""
|
||||
|
||||
@wraps(func)
|
||||
def wrapped(*args, **kwargs):
|
||||
with self:
|
||||
return func(*args, **kwargs)
|
||||
|
||||
return wrapped
|
||||
|
||||
|
||||
# the end
|
||||
7
tests/test_lib/data/cfg/uni1.conf
Normal file
7
tests/test_lib/data/cfg/uni1.conf
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# comment ěščřčž
|
||||
[koji]
|
||||
# key_file = äöüß
|
||||
; test comment with unicode 🫠
|
||||
# test comment with unicode ☢️
|
||||
setting = hello
|
||||
value = world 🌍
|
||||
|
|
@ -3,7 +3,6 @@ from __future__ import absolute_import
|
|||
import calendar
|
||||
from datetime import datetime
|
||||
import errno
|
||||
import locale
|
||||
import logging
|
||||
import tempfile
|
||||
import threading
|
||||
|
|
@ -26,6 +25,7 @@ import six
|
|||
|
||||
import koji
|
||||
import koji.util
|
||||
from ..common import mylocale
|
||||
|
||||
|
||||
class EnumTestCase(unittest.TestCase):
|
||||
|
|
@ -407,6 +407,23 @@ class ConfigFileTestCase(unittest.TestCase):
|
|||
self.assertEqual(listdir_mock.call_count, 2)
|
||||
|
||||
|
||||
class ConfigFileTestCase2(unittest.TestCase):
|
||||
"""Additional tests for config file reading functions"""
|
||||
|
||||
def setUp(self):
|
||||
self.datadir = os.path.dirname(__file__) + '/data/cfg'
|
||||
|
||||
def tearDown(self):
|
||||
mock.patch.stopall()
|
||||
|
||||
def test_unicode(self):
|
||||
fn = self.datadir + '/uni1.conf'
|
||||
if not os.path.exists(fn):
|
||||
raise Exception('missing config')
|
||||
with mylocale(value='C'):
|
||||
koji.read_config_files(fn)
|
||||
|
||||
|
||||
class MavenUtilTestCase(unittest.TestCase):
|
||||
"""Test maven relative functions"""
|
||||
maxDiff = None
|
||||
|
|
@ -750,10 +767,9 @@ class MavenUtilTestCase(unittest.TestCase):
|
|||
config.read_file(conf_file)
|
||||
return config
|
||||
|
||||
@mylocale(('en_US', 'UTF-8'))
|
||||
def test_formatChangelog(self):
|
||||
"""Test formatChangelog function"""
|
||||
# force locale to compare 'expect' value
|
||||
locale.setlocale(locale.LC_ALL, ('en_US', 'UTF-8'))
|
||||
data = [
|
||||
{
|
||||
'author': 'Happy Koji User <user1@example.com> - 1.1-1',
|
||||
|
|
@ -787,8 +803,6 @@ class MavenUtilTestCase(unittest.TestCase):
|
|||
result = koji.util.formatChangelog(data)
|
||||
self.assertMultiLineEqual(expect, result)
|
||||
|
||||
locale.setlocale(locale.LC_ALL, "")
|
||||
|
||||
def test_parseTime(self):
|
||||
"""Test parseTime function"""
|
||||
now = datetime.now()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue