raise error when config search paths is empty

also fix unittest: test_profiles

notes: since the test won't read config files anymore, lift the loop number from 20 -> 256 to increase the probability of hitting the multithread issue

fixes: #1786
This commit is contained in:
Yu Ming Zhu 2019-11-09 21:48:04 +00:00 committed by Tomas Kopecek
parent 54105d2ae8
commit f7f1c65bea
2 changed files with 7 additions and 5 deletions

View file

@ -1784,8 +1784,9 @@ def read_config(profile_name, user_config=None):
result[name] = value
# Check if the specified profile had a config specified
if config.sections() and not got_conf:
raise ConfigurationError("no configuration for profile name: %s" % profile_name)
if not got_conf:
raise ConfigurationError("no configuration for profile name: %s"
% profile_name)
# special handling for cert defaults
cert_defaults = {

View file

@ -3,8 +3,8 @@ import koji
import sys
import threading
import traceback
import mock
from six.moves import range
import six
try:
import unittest2 as unittest
@ -17,7 +17,7 @@ class ProfilesTestCase(unittest.TestCase):
""" Test that profiles thread safe"""
# see: https://pagure.io/koji/issue/58 and https://pagure.io/pungi/issue/253
# loop a few times to increase chances of hitting race conditions
for i in range(20):
for i in range(256):
errors = {}
threads = [threading.Thread(target=stress, args=(errors, _)) for _ in range(100)]
for t in threads:
@ -34,7 +34,8 @@ class ProfilesTestCase(unittest.TestCase):
def stress(errors, n):
errors[n] = "Failed to start"
try:
koji.get_profile_module('koji')
config = mock.Mock(topdir='topdir')
koji.get_profile_module('koji', config=config)
except Exception:
# if we don't catch this, nose seems to ignore the test
errors[n] = ''.join(traceback.format_exception(*sys.exc_info()))