예제 #1
0
 def test_check_rule_present(self):
     depends = Depends("")
     mocker = mox.Mox()
     depends.platform = mocker.CreateMock(Platform)
     depends.platform.get_pkg_version("foo").AndReturn("123")
     mocker.ReplayAll()
     self.addCleanup(mocker.VerifyAll)
     self.assertEqual([], depends.check_rules([("foo", [], [])]))
예제 #2
0
 def test_check_rule_present(self):
     depends = Depends("")
     depends.platform = mock.MagicMock()
     mock_depend_platform = self.useFixture(
         fixtures.MockPatchObject(depends.platform, 'get_pkg_version',
                                  return_value="123")).mock
     self.assertEqual([], depends.check_rules([("foo", [], [])]))
     mock_depend_platform.assert_called_once_with("foo")
예제 #3
0
 def test_check_rule_present(self):
     depends = Depends("")
     mocker = mox.Mox()
     depends.platform = mocker.CreateMock(Platform)
     depends.platform.get_pkg_version("foo").AndReturn("123")
     mocker.ReplayAll()
     self.addCleanup(mocker.VerifyAll)
     self.assertEqual([], depends.check_rules([("foo", [], [])]))
예제 #4
0
 def test_check_rule_incompatible(self):
     depends = Depends("")
     mocker = mox.Mox()
     depends.platform = mocker.CreateMock(Platform)
     depends.platform.get_pkg_version("foo").AndReturn("123")
     mocker.ReplayAll()
     self.addCleanup(mocker.VerifyAll)
     self.assertEqual([('badversion', [('foo', "!=123", "123")])],
                      depends.check_rules([("foo", [], [("!=", "123")])]))
예제 #5
0
 def test_check_rule_present(self):
     depends = Depends("")
     depends.platform = mock.MagicMock()
     mock_depend_platform = self.useFixture(
         fixtures.MockPatchObject(depends.platform,
                                  'get_pkg_version',
                                  return_value="123")).mock
     self.assertEqual([], depends.check_rules([("foo", [], [])]))
     mock_depend_platform.assert_called_once_with("foo")
예제 #6
0
 def test_check_rule_missing_version(self):
     depends = Depends("")
     depends.platform = mock.MagicMock()
     mock_depend_platform = self.useFixture(
         fixtures.MockPatchObject(depends.platform, 'get_pkg_version',
                                  return_value=None)).mock
     self.assertEqual(
         [('missing', ['foo'])],
         depends.check_rules([("foo", [], [(">=", "1.2.3")])]))
     mock_depend_platform.assert_called_once_with("foo")
예제 #7
0
 def test_check_rule_missing_version(self):
     depends = Depends("")
     depends.platform = mock.MagicMock()
     mock_depend_platform = self.useFixture(
         fixtures.MockPatchObject(depends.platform,
                                  'get_pkg_version',
                                  return_value=None)).mock
     self.assertEqual([('missing', ['foo'])],
                      depends.check_rules([("foo", [], [(">=", "1.2.3")])]))
     mock_depend_platform.assert_called_once_with("foo")
예제 #8
0
 def test_check_rule_incompatible(self):
     depends = Depends("")
     mocker = mox.Mox()
     depends.platform = mocker.CreateMock(Platform)
     depends.platform.get_pkg_version("foo").AndReturn("123")
     mocker.ReplayAll()
     self.addCleanup(mocker.VerifyAll)
     self.assertEqual(
         [('badversion', [('foo', "!=123", "123")])],
         depends.check_rules([("foo", [], [("!=", "123")])]))
예제 #9
0
파일: main.py 프로젝트: rbtcollins/bindep
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
예제 #10
0
파일: main.py 프로젝트: pombredanne/bindep
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