def test_clean_all(self): cmds.clean({}) self.mock_exists.assert_has_calls([ mock.call('partdir1'), mock.call().__bool__(), mock.call('partdir2'), mock.call().__bool__(), mock.call('partdir3'), mock.call().__bool__(), mock.call(common.get_partsdir()), mock.call().__bool__(), mock.call(common.get_stagedir()), mock.call().__bool__(), mock.call(common.get_snapdir()), mock.call().__bool__(), ]) self.mock_rmtree.assert_has_calls([ mock.call('partdir1'), mock.call('partdir2'), mock.call('partdir3'), mock.call(common.get_stagedir()), mock.call(common.get_snapdir()), ]) self.mock_rmdir.assert_called_once_with(common.get_partsdir())
def test_part_to_remove_not_defined_exits_with_error(self): fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(fake_logger) class args: parts = ["does-not-exist"] with self.assertRaises(SystemExit) as raised: cmds.clean(args()) self.assertEqual(raised.exception.code, 1, "Wrong exit code returned.") self.assertEqual("The part named 'does-not-exist' is not defined in " "'snapcraft.yaml'\n", fake_logger.output)
def test_everything_is_clean(self): self.mock_exists.return_value = False self.mock_listdir.side_effect = FileNotFoundError() class args: parts = [] cmds.clean(args()) self.mock_exists.assert_has_calls( [mock.call(common.get_partsdir()), mock.call(common.get_stagedir()), mock.call(common.get_snapdir())] ) self.assertFalse(self.mock_rmdir.called) self.assertFalse(self.mock_rmtree.called) self.assertEqual(self.clean_calls, ["part1", "part2", "part3"])
def test_everything_is_clean(self): self.mock_exists.return_value = False self.mock_listdir.side_effect = FileNotFoundError() cmds.clean({}) self.mock_exists.assert_has_calls([ mock.call('partdir1'), mock.call('partdir2'), mock.call('partdir3'), mock.call(common.get_partsdir()), mock.call(common.get_stagedir()), mock.call(common.get_snapdir()), ]) self.assertFalse(self.mock_rmdir.called) self.assertFalse(self.mock_rmtree.called)
def test_partial_clean(self): class args: parts = ['part1'] cmds.clean(args()) self.mock_exists.assert_has_calls([ mock.call(common.get_partsdir()), mock.call().__bool__(), mock.call(common.get_snapdir()), mock.call().__bool__(), ]) self.mock_rmtree.assert_has_calls([ mock.call(common.get_snapdir()), ]) self.mock_rmdir.assert_called_once_with(common.get_partsdir()) self.assertEqual(self.clean_calls, ['part1'])
def test_no_parts_defined(self): self.fake_config.all_parts = [] self.mock_load_config.return_value = self.fake_config cmds.clean({}) self.mock_exists.assert_has_calls([ mock.call(common.get_stagedir()), mock.call().__bool__(), mock.call(common.get_snapdir()), mock.call().__bool__(), ]) self.mock_rmtree.assert_has_calls([ mock.call(common.get_stagedir()), mock.call(common.get_snapdir()), ]) self.mock_rmdir.assert_called_once_with(common.get_partsdir())
def test_clean_all_when_all_parts_specified(self): class args: parts = ["part1", "part2", "part3"] cmds.clean(args()) self.mock_exists.assert_has_calls( [ mock.call(common.get_partsdir()), mock.call().__bool__(), mock.call(common.get_stagedir()), mock.call().__bool__(), mock.call(common.get_snapdir()), mock.call().__bool__(), ] ) self.mock_rmtree.assert_has_calls([mock.call(common.get_stagedir()), mock.call(common.get_snapdir())]) self.mock_rmdir.assert_called_once_with(common.get_partsdir()) self.assertEqual(self.clean_calls, ["part1", "part2", "part3"])