openSUSE-release-tools/tests/config_tests.py

58 lines
1.8 KiB
Python
Raw Normal View History

2017-05-01 17:33:31 -05:00
import unittest
from osc import conf
from osclib.conf import DEFAULT
2017-05-01 17:33:31 -05:00
from osclib.conf import Config
from osclib.stagingapi import StagingAPI
from obs import APIURL
from obs import PROJECT
2017-05-01 17:33:31 -05:00
from obs import OBS
class TestConfig(unittest.TestCase):
def setUp(self):
self.obs = OBS()
self.config = Config(PROJECT)
self.api = StagingAPI(APIURL, PROJECT)
2017-05-01 17:33:31 -05:00
def test_basic(self):
self.assertEqual('openSUSE', conf.config[PROJECT]['lock-ns'])
def test_remote(self):
self.assertEqual('local', conf.config[PROJECT]['overridden-by-local'])
self.assertIsNone(conf.config[PROJECT].get('remote-only'))
self.config.apply_remote(self.api)
2017-05-01 17:33:31 -05:00
self.assertEqual('local', conf.config[PROJECT]['overridden-by-local'])
self.assertEqual('remote-indeed', conf.config[PROJECT]['remote-only'])
def test_remote_none(self):
self.api.dashboard_content_save('config', '')
self.assertEqual(self.obs.dashboard_counts['config'], 1)
self.config.apply_remote(self.api)
# Ensure blank file not overridden.
self.assertEqual(self.obs.dashboard_counts['config'], 1)
def test_pattern_order(self):
# Add pattern to defaults in order to identify which was matched.
for pattern in DEFAULT:
DEFAULT[pattern]['pattern'] = pattern
# A list of projects that should match each of the DEFAULT patterns.
projects = (
'openSUSE:Factory',
'openSUSE:Leap:15.0',
'SUSE:SLE-15:GA',
'SUSE:SLE-12:GA',
'GNOME:Factory',
)
# Ensure each pattern is match instead of catch-all pattern.
patterns = set()
for project in projects:
config = Config(project)
patterns.add(conf.config[project]['pattern'])
self.assertEqual(len(patterns), len(DEFAULT))