# -*- coding: utf-8; -*- from unittest import TestCase from unittest.mock import patch, MagicMock from wuttamess import apt as mod class TestDistUpgrade(TestCase): def test_basic(self): c = MagicMock() with patch.object(mod, 'update') as update: with patch.object(mod, 'upgrade') as upgrade: mod.dist_upgrade(c, frontend='whatever') update.assert_called_once_with(c) upgrade.assert_called_once_with(c, dist_upgrade=True, frontend='whatever') class TestInstall(TestCase): def test_basic(self): c = MagicMock() mod.install(c, 'postfix') c.run.assert_called_once_with('DEBIAN_FRONTEND=noninteractive apt-get --assume-yes install postfix') class TestIsInstalled(TestCase): def test_already_installed(self): c = MagicMock() c.run.return_value.ok = True self.assertTrue(mod.is_installed(c, 'postfix')) c.run.assert_called_once_with('dpkg-query -s postfix', warn=True) def test_not_installed(self): c = MagicMock() c.run.return_value.ok = False self.assertFalse(mod.is_installed(c, 'postfix')) c.run.assert_called_once_with('dpkg-query -s postfix', warn=True) class TestUpdate(TestCase): def test_basic(self): c = MagicMock() mod.update(c) c.run.assert_called_once_with('apt-get update') class TestUpgrade(TestCase): def test_basic(self): c = MagicMock() mod.upgrade(c) c.run.assert_called_once_with('DEBIAN_FRONTEND=noninteractive apt-get --assume-yes --option Dpkg::Options::="--force-confdef" --option Dpkg::Options::="--force-confold" upgrade')