def test_detects_rhel_workstation(self): with DistroFixture("RHELWorkstation"): depends = Depends("") platform_profiles = depends.platform_profiles() self.assertThat(platform_profiles, Contains("platform:redhatenterpriseworkstation")) self.assertThat(platform_profiles, Contains("platform:rhel")) self.assertThat(platform_profiles, Contains("platform:redhat"))
def test_detects_opensuse_leap15(self): with DistroFixture("openSUSEleap15"): depends = Depends("") platform_profiles = depends.platform_profiles() self.assertThat(platform_profiles, Contains("platform:opensuse")) self.assertThat(platform_profiles, Contains("platform:suse"))
def test_detects_unknown(self): with DistroFixture("Unknown"): depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:unknown")) with ExpectedException(Exception, "Uknown package manager for " "current platform."): depends.platform.get_pkg_version('x')
def test_detects_unknown(self): with DistroFixture("Unknown"): depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:unknown")) with ExpectedException( Exception, "Uknown package manager for " "current platform."): depends.platform.get_pkg_version('x')
def main(depends=None): if depends is None: try: content = open('other-requirements.txt', 'rt').read() except IOError: logging.error('No other-requirements.txt file found.') return 1 depends = Depends(content) parser = optparse.OptionParser() parser.add_option("--profiles", action="store_true", help="List the platform and configuration profiles.") opts, args = parser.parse_args() if opts.profiles: logging.info("Platform profiles:") for profile in depends.platform_profiles(): logging.info("%s", profile) logging.info("") logging.info("Configuration profiles:") for profile in depends.profiles(): logging.info("%s", profile) else: if args: profiles = args else: profiles = ["default"] profiles = profiles + depends.platform_profiles() rules = depends.active_rules(profiles) errors = depends.check_rules(rules) for error in errors: if error[0] == 'missing': logging.info("Missing packages:") logging.info(" %s", " ".join(error[1])) if error[0] == 'badversion': logging.info("Bad versions of installed packages:") for pkg, constraint, version in error[1]: logging.info(" %s version %s does not match %s", pkg, version, constraint) if errors: return 1 return 0
def test_detects_opensuse_project(self): # TODO what does an os-release for opensuse project look like? # Is this different than sles, leap, and tumbleweed? with DistroFixture("openSUSEleap"): depends = Depends("") platform_profiles = depends.platform_profiles() self.assertThat(platform_profiles, Contains("platform:opensuseproject")) self.assertThat(platform_profiles, Contains("platform:opensuse")) self.assertThat(platform_profiles, Contains("platform:opensuseproject-42.1")) self.assertThat(platform_profiles, Contains("platform:suse"))
def test_detects_rhel_workstation(self): with DistroFixture("RHELWorkstation"): depends = Depends("") platform_profiles = depends.platform_profiles() self.assertThat( platform_profiles, Contains("platform:redhatenterpriseworkstation")) self.assertThat( platform_profiles, Contains("platform:rhel")) self.assertThat( platform_profiles, Contains("platform:redhat"))
def main(depends=None): if depends is None: try: content = open("other-requirements.txt", "rt").read() except IOError: logging.error("No other-requirements.txt file found.") return 1 depends = Depends(content) parser = optparse.OptionParser() parser.add_option("--profiles", action="store_true", help="List the platform and configuration profiles.") opts, args = parser.parse_args() if opts.profiles: logging.info("Platform profiles:") for profile in depends.platform_profiles(): logging.info("%s", profile) logging.info("") logging.info("Configuration profiles:") for profile in depends.profiles(): logging.info("%s", profile) else: if args: profiles = args else: profiles = ["default"] profiles = profiles + depends.platform_profiles() rules = depends.active_rules(profiles) errors = depends.check_rules(rules) for error in errors: if error[0] == "missing": logging.info("Missing packages:") logging.info(" %s", " ".join(error[1])) if error[0] == "badversion": logging.info("Bad versions of installed packages:") for pkg, constraint, version in error[1]: logging.info(" %s version %s does not match %s", pkg, version, constraint) if errors: return 1 return 0
def test_detects_suse_linux(self): with DistroFixture("SLES"): depends = Depends("") platform_profiles = depends.platform_profiles() self.assertThat(platform_profiles, Contains("platform:suselinux")) self.assertThat(platform_profiles, Contains("platform:suse"))
def test_detects_centos(self): with DistroFixture("CentOS"): depends = Depends("") platform_profiles = depends.platform_profiles() self.assertThat(platform_profiles, Contains("platform:centos")) self.assertThat(platform_profiles, Contains("platform:redhat"))
def test_detects_amazon_linux(self): with DistroFixture("AmazonAMI"): depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:amazonami"))
def test_ubuntu_implies_dpkg(self): self._mock_lsb() depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:dpkg")) self.assertIsInstance(depends.platform, Dpkg)
def test_suse_linux_implies_rpm(self): with DistroFixture("SLES"): depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:rpm")) self.assertIsInstance(depends.platform, Rpm)
def test_detects_subrelease(self): with DistroFixture("Ubuntu"): depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:ubuntu-16.04"))
def test_detects_alpine(self): with DistroFixture("Alpine"): depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:alpine"))
def test_detects_fedora(self): with DistroFixture("Fedora"): depends = Depends("") platform_profiles = depends.platform_profiles() self.assertThat(platform_profiles, Contains("platform:fedora")) self.assertThat(platform_profiles, Contains("platform:redhat"))
def test_detects_subrelease(self): with DistroFixture("Ubuntu"): depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:ubuntu-16.04"))
def test_rhel_implies_rpm(self): with DistroFixture("RHELServer"): depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:rpm")) self.assertIsInstance(depends.platform, Rpm)
def test_detects_codename(self): with DistroFixture("Ubuntu"): depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:ubuntu-xenial"))
def test_rhel_implies_rpm(self): with DistroFixture("RHELServer"): depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:rpm")) self.assertIsInstance(depends.platform, Rpm)
def test_opensuse_leap15_implies_rpm(self): with DistroFixture("openSUSEleap15"): depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:rpm")) self.assertIsInstance(depends.platform, Rpm)
def test_suse_linux_implies_rpm(self): with DistroFixture("SLES"): depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:rpm")) self.assertIsInstance(depends.platform, Rpm)
def test_detects_amazon_linux(self): with DistroFixture("AmazonAMI"): depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:amazonami"))
def test_ubuntu_implies_dpkg(self): with DistroFixture("Ubuntu"): depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:dpkg")) self.assertIsInstance(depends.platform, Dpkg)
def test_detects_darwin(self): with self._mock_platform_darwin("Darwin"): depends = Depends("") platform_profiles = depends.platform_profiles() self.assertThat(platform_profiles, Contains("platform:darwin"))
def test_alpine_implies_apk(self): with DistroFixture("Alpine"): depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:apk")) self.assertIsInstance(depends.platform, Apk)
def test_arch_implies_pacman(self): with DistroFixture("Arch"): depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:pacman")) self.assertIsInstance(depends.platform, Pacman)
def test_ubuntu_implies_dpkg(self): self._mock_lsb() depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:dpkg")) self.assertIsInstance(depends.platform, Dpkg)
def test_platform_profiles_succeeds(self): with DistroFixture('Ubuntu'): depends = Depends("") self.assertIsInstance(depends.platform_profiles(), list)
def test_detects_alpine(self): with DistroFixture("Alpine"): depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:alpine"))
def test_alpine_implies_apk(self): with DistroFixture("Alpine"): depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:apk")) self.assertIsInstance(depends.platform, Apk)
def test_detects_codename(self): with DistroFixture("Ubuntu"): depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:ubuntu-xenial"))
def test_opensuse_leap15_implies_rpm(self): with DistroFixture("openSUSEleap15"): depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:rpm")) self.assertIsInstance(depends.platform, Rpm)
def test_detects_ubuntu(self): self._mock_lsb() depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:ubuntu"))
def test_ubuntu_implies_dpkg(self): with DistroFixture("Ubuntu"): depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:dpkg")) self.assertIsInstance(depends.platform, Dpkg)
def test_arch_implies_pacman(self): with DistroFixture("Arch"): depends = Depends("") self.assertThat( depends.platform_profiles(), Contains("platform:pacman")) self.assertIsInstance(depends.platform, Pacman)
def test_platform_profiles_succeeds(self): depends = Depends("") self.assertIsInstance(depends.platform_profiles(), list)
def test_detects_ubuntu(self): self._mock_lsb() depends = Depends("") self.assertThat(depends.platform_profiles(), Contains("platform:ubuntu"))