ostree/utils: Drop timestamps from generated repo names - tests

Issue: https://pagure.io/pungi/issue/811

Signed-off-by: Ondrej Nosek <onosek@redhat.com>
This commit is contained in:
Ondrej Nosek 2018-01-12 12:55:04 +01:00 committed by Lubomír Sedlář
parent 3427d6abe2
commit f301158974
2 changed files with 26 additions and 46 deletions

View File

@ -14,7 +14,6 @@
# along with this program; if not, see <https://gnu.org/licenses/>. # along with this program; if not, see <https://gnu.org/licenses/>.
import datetime
import json import json
import logging import logging
import os import os
@ -89,7 +88,7 @@ def tweak_treeconf(treeconf, source_repos=None, keep_original_sources=False, upd
# use repos named 'repo-<number>'. # use repos named 'repo-<number>'.
# https://pagure.io/pungi/issue/811 # https://pagure.io/pungi/issue/811
with open("{}/pungi.repo".format(treeconf_dir), 'w') as f: with open("{}/pungi.repo".format(treeconf_dir), 'w') as f:
for i,repo in enumerate(source_repos): for i, repo in enumerate(source_repos):
name = 'repo-{}'.format(i) name = 'repo-{}'.format(i)
f.write("[%s]\n" % name) f.write("[%s]\n" % name)
f.write("name=%s\n" % name) f.write("name=%s\n" % name)

View File

@ -7,7 +7,6 @@ import mock
import os import os
import json import json
import sys import sys
import datetime
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'bin')) sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'bin'))
@ -187,11 +186,8 @@ class OstreeTreeScriptTest(helpers.PungiTestCase):
self.topdir + '/fedora-atomic-docker-host.json'], self.topdir + '/fedora-atomic-docker-host.json'],
logfile=self.topdir + '/logs/Atomic/create-ostree-repo.log', show_cmd=True, stdout=True)]) logfile=self.topdir + '/logs/Atomic/create-ostree-repo.log', show_cmd=True, stdout=True)])
@mock.patch('pungi.ostree.utils.datetime')
@mock.patch('kobo.shortcuts.run') @mock.patch('kobo.shortcuts.run')
def test_extra_config_with_extra_repos(self, run, time): def test_extra_config_with_extra_repos(self, run):
time.datetime.now.return_value = datetime.datetime(2016, 1, 1, 1, 1)
timestamp = time.datetime.now().strftime("%Y%m%d%H%M%S")
configdir = os.path.join(self.topdir, 'config') configdir = os.path.join(self.topdir, 'config')
self._make_dummy_config_dir(configdir) self._make_dummy_config_dir(configdir)
@ -228,47 +224,36 @@ class OstreeTreeScriptTest(helpers.PungiTestCase):
'--extra-config=%s' % extra_config_file, '--extra-config=%s' % extra_config_file,
]) ])
server_repo_name = "server-%s" % timestamp pungi_repo = os.path.join(configdir, "pungi.repo")
server_repo = os.path.join(configdir, "%s.repo" % server_repo_name) self.assertTrue(os.path.isfile(pungi_repo))
self.assertTrue(os.path.isfile(server_repo)) with open(pungi_repo, 'r') as f:
with open(server_repo, 'r') as f: content = f.read().strip()
content = f.read() result_template = (
self.assertIn("[%s]" % server_repo_name, content) "[repo-0]",
self.assertIn("name=%s" % server_repo_name, content) "name=repo-0",
self.assertIn("baseurl=http://www.example.com/Server/repo", content) "baseurl=http://example.com/repo/x86_64/extra",
self.assertIn("gpgcheck=0", content) "gpgcheck=0",
"[repo-1]",
optional_repo_name = "optional-%s" % timestamp "name=repo-1",
optional_repo = os.path.join(configdir, "%s.repo" % optional_repo_name) "baseurl=http://example.com/repo/x86_64/optional",
self.assertTrue(os.path.isfile(optional_repo)) "exclude=systemd-container",
with open(optional_repo, 'r') as f: "gpgcheck=0",
content = f.read() "[repo-2]",
self.assertIn("[%s]" % optional_repo_name, content) "name=repo-2",
self.assertIn("name=%s" % optional_repo_name, content) "baseurl=http://www.example.com/Server/repo",
self.assertIn("baseurl=http://example.com/repo/x86_64/optional", content) "gpgcheck=0",
self.assertIn("gpgcheck=0", content) )
result = '\n'.join(result_template).strip()
extra_repo_name = "extra-%s" % timestamp self.assertEqual(content, result)
extra_repo = os.path.join(configdir, "%s.repo" % extra_repo_name)
self.assertTrue(os.path.isfile(extra_repo))
with open(extra_repo, 'r') as f:
content = f.read()
self.assertIn("[%s]" % extra_repo_name, content)
self.assertIn("name=%s" % extra_repo_name, content)
self.assertIn("baseurl=http://example.com/repo/x86_64/extra", content)
self.assertIn("gpgcheck=0", content)
treeconf = json.load(open(treefile, 'r')) treeconf = json.load(open(treefile, 'r'))
repos = treeconf['repos'] repos = treeconf['repos']
self.assertEqual(len(repos), 3) self.assertEqual(len(repos), 3)
for name in [server_repo_name, optional_repo_name, extra_repo_name]: for name in ("repo-0", "repo-1", "repo-2"):
self.assertIn(name, repos) self.assertIn(name, repos)
@mock.patch('pungi.ostree.utils.datetime')
@mock.patch('kobo.shortcuts.run') @mock.patch('kobo.shortcuts.run')
def test_extra_config_with_keep_original_sources(self, run, time): def test_extra_config_with_keep_original_sources(self, run):
time.datetime.now.return_value = datetime.datetime(2016, 1, 1, 1, 1)
timestamp = time.datetime.now().strftime("%Y%m%d%H%M%S")
configdir = os.path.join(self.topdir, 'config') configdir = os.path.join(self.topdir, 'config')
self._make_dummy_config_dir(configdir) self._make_dummy_config_dir(configdir)
@ -306,15 +291,11 @@ class OstreeTreeScriptTest(helpers.PungiTestCase):
'--extra-config=%s' % extra_config_file, '--extra-config=%s' % extra_config_file,
]) ])
server_repo_name = "server-%s" % timestamp
optional_repo_name = "optional-%s" % timestamp
extra_repo_name = "extra-%s" % timestamp
treeconf = json.load(open(treefile, 'r')) treeconf = json.load(open(treefile, 'r'))
repos = treeconf['repos'] repos = treeconf['repos']
self.assertEqual(len(repos), 6) self.assertEqual(len(repos), 6)
for name in ['fedora-rawhide', 'fedora-24', 'fedora-23', for name in ['fedora-rawhide', 'fedora-24', 'fedora-23',
server_repo_name, optional_repo_name, extra_repo_name]: 'repo-0', 'repo-1', 'repo-2']:
self.assertIn(name, repos) self.assertIn(name, repos)