Ejemplo n.º 1
0
 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"))
Ejemplo n.º 2
0
 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"))
Ejemplo n.º 3
0
 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')
Ejemplo n.º 4
0
 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')
Ejemplo n.º 5
0
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
Ejemplo n.º 6
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"))
Ejemplo n.º 7
0
 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"))
Ejemplo n.º 8
0
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
Ejemplo n.º 9
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"))
Ejemplo n.º 10
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"))
Ejemplo n.º 11
0
 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"))
Ejemplo n.º 12
0
 def test_detects_amazon_linux(self):
     with DistroFixture("AmazonAMI"):
         depends = Depends("")
         self.assertThat(depends.platform_profiles(),
                         Contains("platform:amazonami"))
Ejemplo n.º 13
0
 def test_ubuntu_implies_dpkg(self):
     self._mock_lsb()
     depends = Depends("")
     self.assertThat(depends.platform_profiles(), Contains("platform:dpkg"))
     self.assertIsInstance(depends.platform, Dpkg)
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
0
 def test_detects_subrelease(self):
     with DistroFixture("Ubuntu"):
         depends = Depends("")
         self.assertThat(depends.platform_profiles(),
                         Contains("platform:ubuntu-16.04"))
Ejemplo n.º 16
0
 def test_detects_alpine(self):
     with DistroFixture("Alpine"):
         depends = Depends("")
         self.assertThat(depends.platform_profiles(),
                         Contains("platform:alpine"))
Ejemplo n.º 17
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"))
Ejemplo n.º 18
0
 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"))
Ejemplo n.º 19
0
 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"))
Ejemplo n.º 20
0
 def test_detects_subrelease(self):
     with DistroFixture("Ubuntu"):
         depends = Depends("")
         self.assertThat(
             depends.platform_profiles(), Contains("platform:ubuntu-16.04"))
Ejemplo n.º 21
0
 def test_rhel_implies_rpm(self):
     with DistroFixture("RHELServer"):
         depends = Depends("")
         self.assertThat(
             depends.platform_profiles(), Contains("platform:rpm"))
         self.assertIsInstance(depends.platform, Rpm)
Ejemplo n.º 22
0
 def test_detects_codename(self):
     with DistroFixture("Ubuntu"):
         depends = Depends("")
         self.assertThat(depends.platform_profiles(),
                         Contains("platform:ubuntu-xenial"))
Ejemplo n.º 23
0
 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"))
Ejemplo n.º 24
0
 def test_rhel_implies_rpm(self):
     with DistroFixture("RHELServer"):
         depends = Depends("")
         self.assertThat(depends.platform_profiles(),
                         Contains("platform:rpm"))
         self.assertIsInstance(depends.platform, Rpm)
Ejemplo n.º 25
0
 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)
Ejemplo n.º 26
0
 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)
Ejemplo n.º 27
0
 def test_detects_amazon_linux(self):
     with DistroFixture("AmazonAMI"):
         depends = Depends("")
         self.assertThat(
             depends.platform_profiles(), Contains("platform:amazonami"))
Ejemplo n.º 28
0
 def test_ubuntu_implies_dpkg(self):
     with DistroFixture("Ubuntu"):
         depends = Depends("")
         self.assertThat(depends.platform_profiles(),
                         Contains("platform:dpkg"))
         self.assertIsInstance(depends.platform, Dpkg)
Ejemplo n.º 29
0
 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"))
Ejemplo n.º 30
0
 def test_alpine_implies_apk(self):
     with DistroFixture("Alpine"):
         depends = Depends("")
         self.assertThat(depends.platform_profiles(),
                         Contains("platform:apk"))
         self.assertIsInstance(depends.platform, Apk)
Ejemplo n.º 31
0
 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"))
Ejemplo n.º 32
0
 def test_arch_implies_pacman(self):
     with DistroFixture("Arch"):
         depends = Depends("")
         self.assertThat(depends.platform_profiles(),
                         Contains("platform:pacman"))
         self.assertIsInstance(depends.platform, Pacman)
Ejemplo n.º 33
0
 def test_ubuntu_implies_dpkg(self):
     self._mock_lsb()
     depends = Depends("")
     self.assertThat(
         depends.platform_profiles(), Contains("platform:dpkg"))
     self.assertIsInstance(depends.platform, Dpkg)
Ejemplo n.º 34
0
 def test_platform_profiles_succeeds(self):
     with DistroFixture('Ubuntu'):
         depends = Depends("")
         self.assertIsInstance(depends.platform_profiles(), list)
Ejemplo n.º 35
0
 def test_detects_alpine(self):
     with DistroFixture("Alpine"):
         depends = Depends("")
         self.assertThat(
             depends.platform_profiles(), Contains("platform:alpine"))
Ejemplo n.º 36
0
 def test_alpine_implies_apk(self):
     with DistroFixture("Alpine"):
         depends = Depends("")
         self.assertThat(
             depends.platform_profiles(), Contains("platform:apk"))
         self.assertIsInstance(depends.platform, Apk)
Ejemplo n.º 37
0
 def test_detects_codename(self):
     with DistroFixture("Ubuntu"):
         depends = Depends("")
         self.assertThat(
             depends.platform_profiles(),
             Contains("platform:ubuntu-xenial"))
Ejemplo n.º 38
0
 def test_platform_profiles_succeeds(self):
     with DistroFixture('Ubuntu'):
         depends = Depends("")
         self.assertIsInstance(depends.platform_profiles(), list)
Ejemplo n.º 39
0
 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)
Ejemplo n.º 40
0
 def test_detects_ubuntu(self):
     self._mock_lsb()
     depends = Depends("")
     self.assertThat(
         depends.platform_profiles(), Contains("platform:ubuntu"))
Ejemplo n.º 41
0
 def test_ubuntu_implies_dpkg(self):
     with DistroFixture("Ubuntu"):
         depends = Depends("")
         self.assertThat(
             depends.platform_profiles(), Contains("platform:dpkg"))
         self.assertIsInstance(depends.platform, Dpkg)
Ejemplo n.º 42
0
 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"))
Ejemplo n.º 43
0
 def test_arch_implies_pacman(self):
     with DistroFixture("Arch"):
         depends = Depends("")
         self.assertThat(
             depends.platform_profiles(), Contains("platform:pacman"))
         self.assertIsInstance(depends.platform, Pacman)
Ejemplo n.º 44
0
 def test_platform_profiles_succeeds(self):
     depends = Depends("")
     self.assertIsInstance(depends.platform_profiles(), list)
Ejemplo n.º 45
0
 def test_detects_ubuntu(self):
     self._mock_lsb()
     depends = Depends("")
     self.assertThat(depends.platform_profiles(),
                     Contains("platform:ubuntu"))
Ejemplo n.º 46
0
 def test_platform_profiles_succeeds(self):
     depends = Depends("")
     self.assertIsInstance(depends.platform_profiles(), list)