Esempio n. 1
0
    def testValidateXml(self):
        schema = """<?xml version="1.0" encoding="UTF-8"?>
        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

        <xs:element name="shiporder">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="orderperson" type="xs:string"/>
            </xs:sequence>
            <xs:attribute name="orderid" type="xs:string" use="required"/>
          </xs:complexType>
        </xs:element>

        </xs:schema>
        """
        xmlString = """<?xml version="1.0" encoding="UTF-8"?>

        <shiporder orderid="889923">
          <orderperson>John Smith</orderperson>
        </shiporder>
        """
        avg.validateXml(xmlString, schema, "shiporder.xml", "shiporder.xsd")

        brokenSchema = "ff" + schema
        self.assertRaises(
            avg.Exception, lambda: avg.validateXml(
                xmlString, brokenSchema, "shiporder.xml", "shiporder.xsd"))

        brokenXml = xmlString + "ff"
        self.assertRaises(
            avg.Exception, lambda: avg.validateXml(
                brokenXml, schema, "shiporder.xml", "shiporder.xsd"))
Esempio n. 2
0
    def testValidateXml(self):
        schema = """<?xml version="1.0" encoding="UTF-8"?>
        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

        <xs:element name="shiporder">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="orderperson" type="xs:string"/>
            </xs:sequence>
            <xs:attribute name="orderid" type="xs:string" use="required"/>
          </xs:complexType>
        </xs:element>

        </xs:schema>
        """
        xmlString = """<?xml version="1.0" encoding="UTF-8"?>

        <shiporder orderid="889923">
          <orderperson>John Smith</orderperson>
        </shiporder>
        """
        avg.validateXml(xmlString, schema, "shiporder.xml", "shiporder.xsd")
       
        brokenSchema = "ff"+schema
        self.assertException(lambda: avg.validateXml(xmlString, brokenSchema,
                "shiporder.xml", "shiporder.xsd"))

        brokenXml = xmlString+"ff"
        self.assertException(lambda: avg.validateXml(brokenXml, schema,
                "shiporder.xml", "shiporder.xsd"))
Esempio n. 3
0
    def __init__(self, skinXmlFName, mediaDir=""):
        global defaultMediaDir
        self.__mediaDir = defaultMediaDir if mediaDir == "" else mediaDir
        schemaFName = defaultMediaDir + "skin.xsd"
        schemaString = open(schemaFName, "r").read()
        skinPath = os.path.join(self.__mediaDir, skinXmlFName)
        xmlString = open(skinPath, "r").read()
        avg.validateXml(xmlString, schemaString, skinXmlFName, schemaFName)

        xmlRoot = ET.fromstring(xmlString)

        self.fonts = {}
        for fontNode in xmlRoot.findall("fontdef"):
            fontid, attrs = self.__splitAttrs(fontNode)
            if "baseid" in attrs:
                self.fonts[fontid] = copy.copy(self.fonts[attrs["baseid"]])
                font = self.fonts[fontid]
                del attrs["baseid"]
                for (key, value) in attrs.iteritems():
                    setattr(font, key, value)
            else:
                kwargs = self.__extractArgs(attrs,
                        ("fontsize", "letterspacing", "linespacing"))
                self.fonts[fontid] = avg.FontStyle(**kwargs)

        self.textButtonCfg, self.defaultTextButtonCfg = self.__parseElement(
                xmlRoot, "textbutton",
                bmpArgNames={"upSrc": "upBmp", "downSrc": "downBmp",
                        "disabledSrc": "disabledBmp"},
                fontArgNames=("font", "downFont", "disabledFont"))

        self.checkBoxCfg, self.defaultCheckBoxCfg = self.__parseElement(
                xmlRoot, "checkbox",
                bmpArgNames={"uncheckedUpSrc":"uncheckedUpBmp",
                        "uncheckedDownSrc":"uncheckedDownBmp",
                        "uncheckedDisabledSrc":"uncheckedDisabledBmp",
                        "checkedUpSrc":"checkedUpBmp",
                        "checkedDownSrc":"checkedDownBmp",
                        "checkedDisabledSrc":"checkedDisabledBmp"},
                fontArgNames=("font", "downFont", "disabledFont"))

        self.sliderCfg, self.defaultSliderCfg = self.__initSliders(xmlRoot, "slider")
        self.scrollBarCfg, self.defaultScrollBarCfg = self.__initSliders(
                xmlRoot, "scrollbar")
        self.progressBarCfg, self.defaultProgressBarCfg = self.__initSliders(
                xmlRoot, "progressbar")

        self.scrollAreaCfg, self.defaultScrollAreaCfg = self.__parseElement(
                xmlRoot, "scrollarea",
                pyArgNames=("friction","borderEndsExtent","margins",
                        "sensitiveScrollBars"),
                bmpArgNames={"borderSrc":"borderBmp"})

        self.mediaControlCfg, self.defaultMediaControlCfg = self.__parseElement(
                xmlRoot, "mediacontrol",
                bmpArgNames={"playUpSrc":"playUpBmp",
                        "playDownSrc":"playDownBmp",
                        "playDisabledSrc":"playDisabledBmp",
                        "pauseUpSrc":"pauseUpBmp",
                        "pauseDownSrc":"pauseDownBmp",
                        "pauseDisabledSrc":"pauseDisabledBmp"},
                pyArgNames=("timePos", "timeLeftPos", "barPos", "barRight"),
                fontArgNames=("font"))
Esempio n. 4
0
    def __init__(self, skinXmlFName, mediaDir=""):
        global defaultMediaDir
        self.__mediaDir = defaultMediaDir if mediaDir == "" else mediaDir
        schemaFName = defaultMediaDir + "skin.xsd"
        schemaString = open(schemaFName, "r").read()
        skinPath = os.path.join(self.__mediaDir, skinXmlFName)
        xmlString = open(skinPath, "r").read()
        avg.validateXml(xmlString, schemaString, skinXmlFName, schemaFName)

        xmlRoot = ET.fromstring(xmlString)

        self.fonts = {}
        for fontNode in xmlRoot.findall("fontdef"):
            fontid, attrs = self.__splitAttrs(fontNode)
            if "baseid" in attrs:
                self.fonts[fontid] = copy.copy(self.fonts[attrs["baseid"]])
                font = self.fonts[fontid]
                del attrs["baseid"]
                for (key, value) in attrs.iteritems():
                    setattr(font, key, value)
            else:
                kwargs = self.__extractArgs(
                    attrs, ("fontsize", "letterspacing", "linespacing"))
                self.fonts[fontid] = avg.FontStyle(**kwargs)

        self.textButtonCfg, self.defaultTextButtonCfg = self.__parseElement(
            xmlRoot,
            "textbutton",
            bmpArgNames={
                "upSrc": "upBmp",
                "downSrc": "downBmp",
                "disabledSrc": "disabledBmp"
            },
            fontArgNames=("font", "downFont", "disabledFont"))

        self.checkBoxCfg, self.defaultCheckBoxCfg = self.__parseElement(
            xmlRoot,
            "checkbox",
            bmpArgNames={
                "uncheckedUpSrc": "uncheckedUpBmp",
                "uncheckedDownSrc": "uncheckedDownBmp",
                "uncheckedDisabledSrc": "uncheckedDisabledBmp",
                "checkedUpSrc": "checkedUpBmp",
                "checkedDownSrc": "checkedDownBmp",
                "checkedDisabledSrc": "checkedDisabledBmp"
            },
            fontArgNames=("font", "downFont", "disabledFont"))

        self.sliderCfg, self.defaultSliderCfg = self.__initSliders(
            xmlRoot, "slider")
        self.scrollBarCfg, self.defaultScrollBarCfg = self.__initSliders(
            xmlRoot, "scrollbar")
        self.progressBarCfg, self.defaultProgressBarCfg = self.__initSliders(
            xmlRoot, "progressbar")

        self.scrollAreaCfg, self.defaultScrollAreaCfg = self.__parseElement(
            xmlRoot,
            "scrollarea",
            pyArgNames=("friction", "borderEndsExtent", "margins",
                        "sensitiveScrollBars"),
            bmpArgNames={"borderSrc": "borderBmp"})

        self.mediaControlCfg, self.defaultMediaControlCfg = self.__parseElement(
            xmlRoot,
            "mediacontrol",
            bmpArgNames={
                "playUpSrc": "playUpBmp",
                "playDownSrc": "playDownBmp",
                "playDisabledSrc": "playDisabledBmp",
                "pauseUpSrc": "pauseUpBmp",
                "pauseDownSrc": "pauseDownBmp",
                "pauseDisabledSrc": "pauseDisabledBmp"
            },
            pyArgNames=("timePos", "timeLeftPos", "barPos", "barRight"),
            fontArgNames=("font"))