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", [], [])]))
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")
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")])]))
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")
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")
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")])]))
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 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