Fix test execution failure on Darwin

Because we forgot to mock platform.system() it was impossible to run
unittests on Darwin.

This also introduces a minimal unittest for Darwin itself, checking
that it recognizes brew.

Change-Id: Iff77e46b8b550d13e825712567266532edb03fa6
This commit is contained in:
Sorin Sbarnea 2019-09-09 11:13:34 +01:00
parent b4f63c737b
commit 975e057647
1 changed files with 21 additions and 0 deletions

View File

@ -32,6 +32,7 @@ from testtools.matchers import MatchesSetwise
from testtools import TestCase
from bindep.depends import _eval
from bindep.depends import Brew
from bindep.depends import Depends
from bindep.depends import Dpkg
from bindep.depends import Emerge
@ -59,6 +60,12 @@ class DistroFixture(fixtures.Fixture):
'etc', 'os-release')
mydistro = distro.LinuxDistribution(False, os_release, 'non')
self.useFixture(fixtures.MonkeyPatch('distro._distro', mydistro))
if self.distro_name not in ['darwin']:
self.useFixture(fixtures.MonkeyPatch(
'platform.system', lambda *x: 'Linux'))
else:
self.useFixture(fixtures.MonkeyPatch(
'distro.id', lambda *x: self.distro_name))
class TestDepends(TestCase):
@ -252,6 +259,20 @@ class TestDepends(TestCase):
depends.platform_profiles(), Contains("platform:rpm"))
self.assertIsInstance(depends.platform, Rpm)
def test_darwin_implies_brew(self):
with self._mock_platform_darwin("Darwin"):
with DistroFixture("Darwin"):
# to make it believe `which brew` succeeded
self.useFixture(
fixtures.MockPatchObject(
os,
'system',
return_value=0)).mock
depends = Depends("")
self.assertThat(
depends.platform_profiles(), Contains("platform:brew"))
self.assertIsInstance(depends.platform, Brew)
def test_rhel_implies_rpm(self):
with DistroFixture("RHELServer7"):
depends = Depends("")