f809cac0b2
...and also add tests for it. Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import mock
|
|
|
|
import os
|
|
import sys
|
|
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
|
|
|
from tests import helpers
|
|
from pungi.ostree import utils
|
|
|
|
|
|
class GetRefFromTreefileTest(helpers.PungiTestCase):
|
|
def setUp(self):
|
|
super(GetRefFromTreefileTest, self).setUp()
|
|
self.json = os.path.join(self.topdir, "treefile.json")
|
|
self.yaml = os.path.join(self.topdir, "treefile.yaml")
|
|
|
|
def test_reads_json(self):
|
|
helpers.touch(self.json, """{"ref": "master"}""")
|
|
self.assertEqual(utils.get_ref_from_treefile(self.json), "master")
|
|
|
|
def test_reads_yaml(self):
|
|
helpers.touch(self.yaml, """ref: master""")
|
|
self.assertEqual(utils.get_ref_from_treefile(self.yaml), "master")
|
|
|
|
@mock.patch("pungi.ostree.utils.getBaseArch")
|
|
def test_replaces_basearch(self, getBaseArch):
|
|
getBaseArch.return_value = "x86_64"
|
|
helpers.touch(self.json, """{"ref": "${basearch}/master"}""")
|
|
self.assertEqual(utils.get_ref_from_treefile(self.json), "x86_64/master")
|
|
|
|
@mock.patch("pungi.ostree.utils.getBaseArch")
|
|
def test_replaces_basearch_for_given_arch(self, getBaseArch):
|
|
getBaseArch.return_value = "x86_64"
|
|
helpers.touch(self.json, """{"ref": "${basearch}/master"}""")
|
|
self.assertEqual(
|
|
utils.get_ref_from_treefile(self.json, arch="foo"), "x86_64/master"
|
|
)
|
|
self.assertEqual(getBaseArch.call_args_list, [mock.call("foo")])
|
|
|
|
def test_handles_invalid_json(self):
|
|
helpers.touch(self.json, """{"ref" "master"}""")
|
|
self.assertIsNone(utils.get_ref_from_treefile(self.json))
|
|
|
|
def test_handles_invalid_yaml(self):
|
|
helpers.touch(self.yaml, """{ ref\n - master""")
|
|
self.assertIsNone(utils.get_ref_from_treefile(self.yaml))
|
|
|
|
def test_handles_missing_file(self):
|
|
self.assertIsNone(utils.get_ref_from_treefile(self.json))
|