예제 #1
0
 def shouldUseWithTypeAdapter(self):
     obj = MockObject()
     givenTA = TypeAdapter.on(obj, "sFloat1")
     givenCell = Parse(tag="td", body="6.45")
     obj.parseAndSet(givenCell, givenTA)
     assert obj.sFloat1 == 6.45
     assert isinstance(obj.sFloat1, ScientificFloat)
     assert givenCell.tagIsNotAnnotated()
     resultTA = TypeAdapter.on(obj, "sFloat2")
     resultCell = Parse(tag="td", body="6.45")
     obj.check(resultCell, resultTA)
     assert resultCell.tagIsRight()
예제 #2
0
 def shouldUseWithTypeAdapter(self):
     obj = MockObject()
     givenTA = TypeAdapter.on(obj, "sFloat1")
     givenCell = Parse(tag="td", body="6.45")
     obj.parseAndSet(givenCell, givenTA)
     assert obj.sFloat1 == 6.45
     assert isinstance(obj.sFloat1, ScientificFloat)
     assert givenCell.tagIsNotAnnotated()
     resultTA = TypeAdapter.on(obj, "sFloat2")
     resultCell = Parse(tag="td", body="6.45")
     obj.check(resultCell, resultTA)
     assert resultCell.tagIsRight()
예제 #3
0
 def _check(self, cell, obj, identifier, typeName):
     cell = self._getCell(cell)
     ta = TypeAdapter.on(obj, identifier, {identifier: typeName})
     checkResult = self.check(cell, ta)
     isValid = checkResult.isRight()
     self.valid.itemValid(isValid)
     return isValid
예제 #4
0
 def _checkTest(self, method, cellContent, resultObjName):
     obj = testClass()
     adapter = ta.on(obj, method)
     cell = Parse(tag="td", body=cellContent)
     checkResult = adapter.check(cell)
     assert checkResult.__class__.__name__ == resultObjName
     return checkResult
예제 #5
0
파일: Equals.py 프로젝트: radiocutfm/pyfit
    def getTypeAdapter(self, typeName):
        metadata = {}
        if typeName.endswith("s"):
            shortName = typeName[:-1]
        else:
            shortName = typeName
        adapter = self.typeAdapterMap.get(shortName)
        if adapter is None:
            adapter = shortName.title()
        metadata = {typeName: adapter}

        if not isinstance(adapter, types.StringTypes):
            metadata = {
                typeName: "Generic",
                "%s.ValueClass" % typeName: adapter
            }

        if typeName.endswith("s"):
            metadata["%s.scalarType" % typeName] = metadata[typeName]
            metadata[typeName] = "List"

        if shortName.lower() == "real":
            metadata[typeName + ".precision"] = 5

        return TypeAdapter.on(self, typeName, metadata)
예제 #6
0
 def doTable(self, table):
     handlerList = TypeAdapter.getCurrentCellHandlerList()
     lastrow = table.parts
     for handler in handlerList:
         lastrow.more = Parse(tag="tr",
                 parts=Parse(tag="td", body=handler.__class__.__name__))
         lastrow = lastrow.more
예제 #7
0
 def _checkTest(self, method, cellContent, resultObjName):        
     obj = testClass()
     adapter = ta.on(obj, method)
     cell = Parse(tag="td", body=cellContent)
     checkResult = adapter.check(cell)
     assert checkResult.__class__.__name__ == resultObjName
     return checkResult
예제 #8
0
 def _check(self, cell, obj, identifier, typeName):
     cell = self._getCell(cell)
     ta = TypeAdapter.on(obj, identifier, {identifier: typeName})
     checkResult = self.check(cell, ta)
     isValid = checkResult.isRight()
     self.valid.itemValid(isValid)
     return isValid
 def _getTypeAdapterFromDict(self, subject, name, metaDataDict):
     # ??? what was typeThing all about? should we change the on. call?
     #        typeThing = metaDataDict.get(name)
     return TypeAdapter.on(subject,
                           name,
                           metaDataDict,
                           accClass=TypeAdapter.AccessorBaseClass)
예제 #10
0
파일: Equals.py 프로젝트: copyleftdev/pyfit
 def check(self, cell, value):
     text = cell.text()
     adapter = TypeAdapter.on(self, "dummy", {"dummy": "Boolean"})
     expected = adapter.parse(text)
     if expected != value:
         self.wrong(cell, str(value))
     else:
         self.right(cell)
예제 #11
0
 def check(self, cell, value):
     text = cell.text()
     adapter = TypeAdapter.on(self, "dummy", {"dummy": "Boolean"})
     expected = adapter.parse(text)
     if expected != value:
         self.wrong(cell, str(value))
     else:
         self.right(cell)
예제 #12
0
 def doTable(self, table):
     handlerList = TypeAdapter.getCurrentCellHandlerList()
     lastrow = table.parts
     for handler in handlerList:
         lastrow.more = Parse(tag="tr",
                              parts=Parse(tag="td",
                                          body=handler.__class__.__name__))
         lastrow = lastrow.more
 def _bindAdapter(self, name, heads, i):
     try:
         adapter = TypeAdapter.on(self, name, None, self, self.getTargetClass())
         self.columnBindings[i] = adapter
     except Exception, e:
         self.exception(heads, e)
         self._bindColumnExecutor("unimplementedExecutor",
                                  "ignore", i, name)
예제 #14
0
 def className(self):
     metadata = {"stuff": self.name}
     accessor = TypeAdapter.on(self, "stuff", metadata)
     adapter = accessor.adapter
     if accessor.protocol.protocolName == "ApplicationObject":
         classObj = adapter
     else:
         classObj = adapter.__class__
     return classObj.__name__
예제 #15
0
 def className(self):
     metadata = {"stuff": self.name}
     accessor = TypeAdapter.on(self, "stuff", metadata)
     adapter = accessor.adapter
     if accessor.protocol.protocolName == "ApplicationObject":
         classObj = adapter
     else:
         classObj = adapter.__class__
     return classObj.__name__
 def doCells(self, firstCell):
     text = firstCell.text()
     name = self.camel(text).lower()
     if name == "clear":
         TypeAdapter.clearCellHandlerList()
     elif name == "loaddefaults":
         TypeAdapter.restoreDefaultCellHandlerList()
     elif name == "load":
         secondCell = firstCell.more
         handlerName = secondCell.text()
         result = TypeAdapter.addOptionalHandlerToList(handlerName)
         if result is False:
             self.wrong(secondCell, "name not found")
         else:
             self.right(secondCell)
         # TODO - load a class from a module
         # TODO - spec test for this error
     elif name == "remove":
         secondCell = firstCell.more
         handlerName = secondCell.text()
         result = TypeAdapter.removeHandlerFromList(handlerName)
         if result is False:
             self.wrong(secondCell, "name not found")
         else:
             self.right(secondCell)
예제 #17
0
 def doCells(self, firstCell):
     text = firstCell.text()
     name = self.camel(text).lower()
     if name == "clear":
         TypeAdapter.clearCellHandlerList()
     elif name == "loaddefaults":
         TypeAdapter.restoreDefaultCellHandlerList()
     elif name == "load":
         secondCell = firstCell.more
         handlerName = secondCell.text()
         result = TypeAdapter.addOptionalHandlerToList(handlerName)
         if result is False:
             self.wrong(secondCell, "name not found")
         else:
             self.right(secondCell)
         # TODO - load a class from a module
         # TODO - spec test for this error
     elif name == "remove":
         secondCell = firstCell.more
         handlerName = secondCell.text()
         result = TypeAdapter.removeHandlerFromList(handlerName)
         if result is False:
             self.wrong(secondCell, "name not found")
         else:
             self.right(secondCell)
예제 #18
0
 def buildTypeAdapterList(self, nameList, typeDict, headerCells):
     taList = []
     for name in nameList:
         typeName = typeDict.get(name)
         if typeName is None:
             typeName = typeDict.get(name + ".types")
             if typeName is not None:
                 typeName = typeName[0]
         if typeName is None:
             ta = False
         else:
             ta = TypeAdapter.adapterOnType(self, name, {name: typeName})
         taList.append(ta)
         headerCells = headerCells.more
     return taList
 def bind(self, labels):
     wasError = False
     #        usedField = [False] * labels.size()
     adapters = []
     fieldNames = []
     symRefs = []
     #        targetClass = self.getTargetClass()
     typeDict = self.paramTypeDict
     typeDict = typeDict or getattr(self, "_typeDict", None)  # legacy
     typeDict = typeDict or self.getTargetClass()._typeDict
     extendedLabelProcess = typeDict.get(".extendedLabelProcess", "off")
     colNum = 0
     while labels is not None:
         fieldName = labels.text()
         if extendedLabelProcess == "on":
             colType, camelName = self.processLabel(fieldName, colNum)
             isSymRef = (colType == "checkSymbol")
         else:
             isSymRef, camelName = self._decodeLabel(fieldName, typeDict)
         if not self._isFieldInAnyObject(camelName, self.actuals):
             self.exception(labels, FitException("FieldNotInCollection"))
             wasError = True
             accessor = None
         else:
             #                metaData = typeDict.get(camelName)
             colType = typeDict.get(camelName + ".columnType")
             if colType == "checkSymbol":
                 isSymRef = True
             try:
                 accessor = TypeAdapter.on(
                     self,
                     camelName,
                     typeDict,
                     #                            {camelName: metaData},
                     accClass=TypeAdapter.AccessorBaseClass)
             except FitException, e:
                 self.exception(labels, e)
                 accessor = None
         adapters.append(accessor)
         fieldNames.append(camelName)
         symRefs.append(isSymRef)
         labels = labels.more
         colNum += 1
예제 #20
0
파일: Equals.py 프로젝트: copyleftdev/pyfit
    def getTypeAdapter(self, typeName):
        metadata = {}
        if typeName.endswith("s"):
            shortName = typeName[:-1]
        else:
            shortName = typeName
        adapter = self.typeAdapterMap.get(shortName)
        if adapter is None:
            adapter = shortName.title()
        metadata = {typeName: adapter}

        if type(adapter) not in (type(""), type(u"")):
            metadata = {typeName: "Generic",
                        "%s.ValueClass" % typeName: adapter}

        if typeName.endswith("s"):
            metadata["%s.scalarType" % typeName] = metadata[typeName]
            metadata[typeName] = "List"

        return TypeAdapter.on(self, typeName, metadata)
예제 #21
0
    def bind(self, labels):
        wasError = False
#        usedField = [False] * labels.size()
        adapters = []
        fieldNames = []
        symRefs = []
#        targetClass = self.getTargetClass()
        typeDict = self.paramTypeDict
        typeDict = typeDict or getattr(self, "_typeDict", None) # legacy
        typeDict = typeDict or self.getTargetClass()._typeDict
        extendedLabelProcess = typeDict.get(".extendedLabelProcess", "off")
        colNum = 0
        while labels is not None:
            fieldName = labels.text()
            if extendedLabelProcess == "on":
                colType, camelName = self.processLabel(fieldName, colNum)
                isSymRef = (colType == "checkSymbol")
            else:
                isSymRef, camelName = self._decodeLabel(fieldName, typeDict)
            if not self._isFieldInAnyObject(camelName, self.actuals):
                self.exception(labels,
                    FitException("FieldNotInCollection"))
                wasError = True
                accessor = None
            else:
#                metaData = typeDict.get(camelName)
                colType = typeDict.get(camelName + ".columnType")
                if colType == "checkSymbol":
                    isSymRef = True
                try:
                    accessor = TypeAdapter.on(self, camelName, typeDict,
#                            {camelName: metaData},
                            accClass = TypeAdapter.AccessorBaseClass)
                except FitException, e:
                    self.exception(labels, e)
                    accessor = None
            adapters.append(accessor)
            fieldNames.append(camelName)
            symRefs.append(isSymRef)
            labels = labels.more
            colNum += 1
예제 #22
0
파일: Equals.py 프로젝트: radiocutfm/pyfit
    def getTypeAdapter(self, typeName):
        metadata = {}
        if typeName.endswith("s"):
            shortName = typeName[:-1]
        else:
            shortName = typeName
        adapter = self.typeAdapterMap.get(shortName)
        if adapter is None:
            adapter = shortName.title()
        metadata = {typeName: adapter}

        if type(adapter) not in (type(""), type(u"")):
            metadata = {
                typeName: "Generic",
                "%s.ValueClass" % typeName: adapter
            }

        if typeName.endswith("s"):
            metadata["%s.scalarType" % typeName] = metadata[typeName]
            metadata[typeName] = "List"

        return TypeAdapter.on(self, typeName, metadata)
예제 #23
0
파일: Equals.py 프로젝트: copyleftdev/pyfit
    def getTypeAdapter(self, typeName):
        metadata = {}
        if typeName.endswith("s"):
            shortName = typeName[:-1]
        else:
            shortName = typeName
        adapter = self.typeAdapterMap.get(shortName)
        if adapter is None:
            adapter = shortName.title()
        metadata = {typeName: adapter}

        if not isinstance(adapter, types.StringTypes):
            metadata = {typeName: "Generic",
                        "%s.ValueClass" % typeName: adapter}

        if typeName.endswith("s"):
            metadata["%s.scalarType" % typeName] = metadata[typeName]
            metadata[typeName] = "List"

        if shortName.lower() == "real":
            metadata[typeName + ".precision"] = 5

        return TypeAdapter.on(self, typeName, metadata)
예제 #24
0
 def setTypeAdapter(self, typeDict):
     for key in typeDict.keys():
         parts = key.split(".")
         break
     self._typeAdapter = TypeAdapter.on(self, parts[0], typeDict)
 def setTypeAdapter(self, typeDict):
     for key in typeDict.keys():
         parts = key.split(".")
         break
     self._typeAdapter = TypeAdapter.on(self, parts[0], typeDict)
예제 #26
0
 def _getTypeAdapterFromDict(self, subject, name, metaDataDict):
     # ??? what was typeThing all about? should we change the on. call?
     #        typeThing = metaDataDict.get(name)
     return TypeAdapter.on(subject, name, metaDataDict, accClass=TypeAdapter.AccessorBaseClass)