123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- # -*- coding: utf-8 -*-
- """
- Tests for the Chocolatey State
- """
- from __future__ import absolute_import, print_function, unicode_literals
- import logging
- import pytest
- import salt.utils.platform
- from tests.support.case import ModuleCase
- from tests.support.mixins import SaltReturnAssertsMixin
- from tests.support.unit import skipIf
- log = logging.getLogger(__name__)
- @pytest.mark.destructive_test
- @skipIf(not salt.utils.platform.is_windows(), "Windows Specific Test")
- class ChocolateyTest(ModuleCase, SaltReturnAssertsMixin):
- """
- Chocolatey State Tests
- These tests are destructive as the install and remove software
- """
- @classmethod
- def setUpClass(cls):
- cls.chocolatey_bootstrapped = False
- @classmethod
- def tearDownClass(cls):
- cls.chocolatey_bootstrapped = False
- def setUp(self):
- """
- Ensure that Chocolatey is installed
- """
- super(ChocolateyTest, self).setUp()
- if self.chocolatey_bootstrapped is False:
- self.run_function("chocolatey.bootstrap")
- self.chocolatey_bootstrapped = True
- def test_chocolatey(self):
- """
- Test the following:
- - `chocolatey.installed`
- - `chocolatey.upgraded`
- - `chocolatey.uninstalled`
- """
- # If this assert fails, we need to find new targets, this test needs to
- # be able to test successful installation of packages, so this package
- # needs to NOT be installed before we run the states below
- target = "firefox"
- pre_version = "52.0.2"
- upg_version = "57.0.2"
- log.debug("Making sure %s is not installed", target)
- self.assertFalse(self.run_function("chocolatey.version", [target]))
- try:
- ####################################################
- # Test `chocolatey.installed`
- ####################################################
- # Install the package
- log.debug("Testing chocolatey.installed")
- ret = self.run_state(
- "chocolatey.installed", name=target, version=pre_version
- )
- self.assertSaltTrueReturn(ret)
- # Verify the package is installed
- log.debug("Verifying install success")
- ret = self.run_function("chocolatey.version", [target])
- self.assertEqual(ret, {"Firefox": [pre_version]})
- ####################################################
- # Test `chocolatey.upgraded`
- ####################################################
- # Upgrade the package
- log.debug("Testing chocolatey.upgraded")
- ret = self.run_state(
- "chocolatey.upgraded", name=target, version=upg_version
- )
- self.assertSaltTrueReturn(ret)
- # Verify the package is upgraded
- log.debug("Verifying upgrade success")
- ret = self.run_function("chocolatey.version", [target])
- self.assertEqual(ret, {"Firefox": [upg_version]})
- ####################################################
- # Test `chocolatey.uninstalled`
- ####################################################
- # uninstall the package
- log.debug("Testing chocolatey.uninstalled")
- ret = self.run_state("chocolatey.uninstalled", name=target)
- self.assertSaltTrueReturn(ret)
- # Verify the package is uninstalled
- log.debug("Verifying uninstall success")
- ret = self.run_function("chocolatey.version", [target])
- self.assertEqual(ret, {})
- finally:
- # Always uninstall
- log.debug("Uninstalling %s", target)
- self.run_function("chocolatey.uninstall", [target])
|