SHA256
1
0
forked from pool/salt
salt/do-not-break-repo-files-with-multiple-line-values-on.patch

75 lines
3.1 KiB
Diff
Raw Normal View History

From f81a5b92d691c1d511a814f9344104dd37466bc3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pablo=20Su=C3=A1rez=20Hern=C3=A1ndez?=
<psuarezhernandez@suse.com>
Date: Wed, 29 May 2019 11:03:16 +0100
Subject: [PATCH] Do not break repo files with multiple line values on
yumpkg (bsc#1135360)
---
tests/integration/modules/test_pkg.py | 48 +++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/tests/integration/modules/test_pkg.py b/tests/integration/modules/test_pkg.py
index e8374db2c0..61748f9477 100644
--- a/tests/integration/modules/test_pkg.py
+++ b/tests/integration/modules/test_pkg.py
@@ -182,6 +182,54 @@ class PkgModuleTest(ModuleCase, SaltReturnAssertsMixin):
if repo is not None:
self.run_function('pkg.del_repo', [repo])
+ def test_mod_del_repo_multiline_values(self):
+ '''
+ test modifying and deleting a software repository defined with multiline values
+ '''
+ os_grain = self.run_function('grains.item', ['os'])['os']
+ repo = None
+ try:
+ if os_grain in ['CentOS', 'RedHat', 'SUSE']:
+ my_baseurl = 'http://my.fake.repo/foo/bar/\n http://my.fake.repo.alt/foo/bar/'
+ expected_get_repo_baseurl = 'http://my.fake.repo/foo/bar/\nhttp://my.fake.repo.alt/foo/bar/'
+ major_release = int(
+ self.run_function(
+ 'grains.item',
+ ['osmajorrelease']
+ )['osmajorrelease']
+ )
+ repo = 'fakerepo'
+ name = 'Fake repo for RHEL/CentOS/SUSE'
+ baseurl = my_baseurl
+ gpgkey = 'https://my.fake.repo/foo/bar/MY-GPG-KEY.pub'
+ failovermethod = 'priority'
+ gpgcheck = 1
+ enabled = 1
+ ret = self.run_function(
+ 'pkg.mod_repo',
+ [repo],
+ name=name,
+ baseurl=baseurl,
+ gpgkey=gpgkey,
+ gpgcheck=gpgcheck,
+ enabled=enabled,
+ failovermethod=failovermethod,
+ )
+ # return data from pkg.mod_repo contains the file modified at
+ # the top level, so use next(iter(ret)) to get that key
+ self.assertNotEqual(ret, {})
+ repo_info = ret[next(iter(ret))]
+ self.assertIn(repo, repo_info)
+ self.assertEqual(repo_info[repo]['baseurl'], my_baseurl)
+ ret = self.run_function('pkg.get_repo', [repo])
+ self.assertEqual(ret['baseurl'], expected_get_repo_baseurl)
+ self.run_function('pkg.mod_repo', [repo])
+ ret = self.run_function('pkg.get_repo', [repo])
+ self.assertEqual(ret['baseurl'], expected_get_repo_baseurl)
+ finally:
+ if repo is not None:
+ self.run_function('pkg.del_repo', [repo])
+
@requires_salt_modules('pkg.owner')
def test_owner(self):
'''
--
2.16.4