Example #1
0
    def load(self, filename):
        xmltree = ElementTree.ElementTree()
        try:
            xmltree.parse(filename)
        except IOError as e:
            raise ConfigurationError(
                "Could not load juggle.xml from source directory, I expect it to be in '%s'" % filename
            )

        root = xmltree.getroot()
        if root.tag != "Project":
            raise ConfigurationError(
                "The root element in your project configuration is '%s' instead of 'Project'" % root.tag
            )

        self.name = root.find("Name").text
        if self.name is None or self.name == "":
            raise ConfigurationError(
                "The name given in your project configuration (%s) is not valid." % self.local_repository
            )
        try:
            self.version = version.parse_version(root.find("Version").text)
        except ValueError as e:
            raise ConfigurationError(
                "My parser complained (%s) when processing the version given in your project configuration." % e
            )

        for element in root.findall("Requires/Package"):
            pack = {}
            pack["name"] = element.find("Name").text
            pack_version_element = element.find("Version")
            pack_version = None
            if pack_version_element is None:
                pack_version = ""
            else:
                pack_version = pack_version_element.text
            pack["version"] = version.parse_spec(pack_version)
            self.required_packages.append(pack)

        self.content_node = root.find("Content")
Example #2
0
 def get_publishing_version(self, build_number):
     return version.parse_version("%s-%s" % (self.version, build_number))
def test_version():
    a = '1.0.0#1-rc1'
    b = parse_version(a)
    c = parse_version(b)
    assert a != b
    assert b == c
def test_bad():
    with pytest.raises(ValueError):
        parse_version('foo')