Пример #1
0
    def testCellReferences(self):
        first = FLCellReferenceParseNode(['a1'])
        second = FLCellReferenceParseNode(['g8'])
        node = FLCellRangeParseNode([first, ":", second])

        self.assertEquals(node.first_cell_reference, first)
        self.assertEquals(node.second_cell_reference, second)

        another = FLCellReferenceParseNode(['c2'])
        node.first_cell_reference = another
        self.assertEquals(node.first_cell_reference, another)

        node.second_cell_reference = another
        self.assertEquals(node.second_cell_reference, another)
Пример #2
0
    def testCellProperty(self):
        node = FLCellReferenceParseNode(["G8  "])
        self.assertEquals(node.localReference, "G8  ", "cellref wrong")

        node = FLCellReferenceParseNode(["Sheet1", "!", "G8  "])
        self.assertEquals(node.localReference, "G8  ", "cellref wrong")

        node = FLCellReferenceParseNode(["G8   "])
        node.localReference = "F5"
        self.assertEquals(node.localReference, "F5",
                          "should discard whitespace")

        node = FLCellReferenceParseNode(["G8  "])
        node.localReference = "F5  "
        self.assertEquals(node.localReference, "F5  ",
                          "should not pile whitespace")
Пример #3
0
 def testConstructor(self):
     flCellReference = FLCellReferenceParseNode(["A1"])
     self.assertTrue(isinstance(flCellReference, FLReferenceParseNode),
                     'should be a parse node')
     self.assertEquals(flCellReference.type, ParseNode.FL_CELL_REFERENCE,
                       "Node was of the wrong type")
     self.assertEquals(flCellReference.children, ["A1"],
                       "Node had the wrong children")
Пример #4
0
    def testSubclasses(self):
        self.assertNotEqual(type(FLCellReferenceParseNode(["A1"])), ParseNode,
                            "Subclass of ParseNode had incorrect type")

        self.assertNotEqual(type(FLColumnReferenceParseNode(['A_'])),
                            ParseNode,
                            "Subclass of ParseNode had incorrect type")

        self.assertNotEqual(type(FLRowReferenceParseNode([])), ParseNode,
                            "Subclass of ParseNode had incorrect type")
Пример #5
0
    def testCellProperty(self):
        node = FLCellReferenceParseNode(["G8  "])
        self.assertEquals(node.localReference, "G8  ", "cellref wrong")

        node = FLCellReferenceParseNode(["Sheet1", "!", "G8  "])
        self.assertEquals(node.localReference, "G8  ", "cellref wrong")

        node = FLCellReferenceParseNode(["G8   "])
        node.localReference = "F5"
        self.assertEquals(node.localReference, "F5", "should discard whitespace")

        node = FLCellReferenceParseNode(["G8  "])
        node.localReference = "F5  "
        self.assertEquals(node.localReference, "F5  ", "should not pile whitespace")
Пример #6
0
    def testPlainCellName(self):
        self.assertEquals(
            FLCellReferenceParseNode(["A1"]).plainCellName, "A1",
            "Incorrect plainCellName for A1")
        self.assertEquals(
            FLCellReferenceParseNode(["A$1"]).plainCellName, "A1",
            "Incorrect plainCellName for A$1")
        self.assertEquals(
            FLCellReferenceParseNode(["$A1"]).plainCellName, "A1",
            "Incorrect plainCellName for $A1")
        self.assertEquals(
            FLCellReferenceParseNode(["$A$1"]).plainCellName, "A1",
            "Incorrect plainCellName for $A$1")

        self.assertEquals(
            FLCellReferenceParseNode(["SheetSomething", "! ",
                                      "A1"]).plainCellName, "A1",
            "Incorrect plainCellName for A1 with worksheet")
        self.assertEquals(
            FLCellReferenceParseNode(["SheetSomething", "! ",
                                      "$A$1"]).plainCellName, "A1",
            "Incorrect plainCellName for $A$1 with worksheet")
Пример #7
0
    def testRowAbsolute(self):
        self.assertFalse(
            FLCellReferenceParseNode(["A1"]).rowAbsolute,
            "Incorrect rowAbsolute for A1")
        self.assertTrue(
            FLCellReferenceParseNode(["A$1"]).rowAbsolute,
            "Incorrect rowAbsolute for A$1")
        self.assertFalse(
            FLCellReferenceParseNode(["$A1"]).rowAbsolute,
            "Incorrect rowAbsolute for $A1")
        self.assertTrue(
            FLCellReferenceParseNode(["$A$1"]).rowAbsolute,
            "Incorrect rowAbsolute for $A$1")

        self.assertFalse(
            FLCellReferenceParseNode(["SheetSomething", "! ",
                                      "A1"]).rowAbsolute,
            "Incorrect colAbsolute for A1 with worksheet")
        self.assertTrue(
            FLCellReferenceParseNode(["SheetSomething", "! ",
                                      "$A$1"]).rowAbsolute,
            "Incorrect colAbsolute for $A$1 with worksheet")
Пример #8
0
    def testSimpleConvenienceConstructors(self):
        randomList = ["foo", "bar", 27]

        self.assertEquals(ParseNode(ParseNode.AND_TEST, randomList),
                          AndTest(randomList))
        self.assertEquals(ParseNode(ParseNode.ARG_LIST, randomList),
                          ArgList(randomList))
        self.assertEquals(ParseNode(ParseNode.ARGUMENT, randomList),
                          Argument(randomList))
        self.assertEquals(ParseNode(ParseNode.ARITH_EXPR, randomList),
                          ArithExpr(randomList))
        self.assertEquals(ParseNode(ParseNode.ATOM, randomList),
                          Atom(randomList))
        self.assertEquals(ParseNode(ParseNode.COMPARISON, randomList),
                          Comparison(randomList))
        self.assertEquals(ParseNode(ParseNode.COMP_OPERATOR, randomList),
                          CompOperator(randomList))
        self.assertEquals(ParseNode(ParseNode.CONCAT_EXPR, randomList),
                          ConcatExpr(randomList))
        self.assertEquals(ParseNode(ParseNode.DICT_MAKER, randomList),
                          DictMaker(randomList))
        self.assertEquals(ParseNode(ParseNode.EXPR, randomList),
                          Expr(randomList))
        self.assertEquals(ParseNode(ParseNode.EXPR_LIST, randomList),
                          ExprList(randomList))
        self.assertEquals(ParseNode(ParseNode.FACTOR, randomList),
                          Factor(randomList))
        self.assertEquals(FLCellRangeParseNode(randomList),
                          FLCellRange(randomList))
        self.assertEquals(FLCellReferenceParseNode(randomList),
                          FLCellReference(randomList))
        self.assertEquals(FLColumnReferenceParseNode(randomList),
                          FLColumnReference(randomList))
        self.assertEquals(FLRowReferenceParseNode(randomList),
                          FLRowReference(randomList))
        self.assertEquals(ParseNode(ParseNode.FL_DDE_CALL, randomList),
                          FLDDECall(randomList))
        self.assertEquals(
            ParseNode(ParseNode.FL_DELETED_REFERENCE, randomList),
            FLDeletedReference(randomList))
        self.assertEquals(
            ParseNode(ParseNode.FL_INVALID_REFERENCE, randomList),
            FLInvalidReference(randomList))
        self.assertEquals(
            ParseNode(ParseNode.FL_NAKED_WORKSHEET_REFERENCE, randomList),
            FLNakedWorksheetReference(randomList))
        self.assertEquals(ParseNode(ParseNode.FL_REFERENCE, randomList),
                          FLReference(randomList))
        self.assertEquals(ParseNode(ParseNode.FL_ROOT, randomList),
                          FLRoot(randomList))
        self.assertEquals(ParseNode(ParseNode.FP_DEF, randomList),
                          FPDef(randomList))
        self.assertEquals(ParseNode(ParseNode.FP_LIST, randomList),
                          FPList(randomList))
        self.assertEquals(ParseNode(ParseNode.GEN_FOR, randomList),
                          GenFor(randomList))
        self.assertEquals(ParseNode(ParseNode.GEN_IF, randomList),
                          GenIf(randomList))
        self.assertEquals(ParseNode(ParseNode.GEN_ITER, randomList),
                          GenIter(randomList))
        self.assertEquals(ParseNode(ParseNode.LAMBDEF, randomList),
                          LambDef(randomList))
        self.assertEquals(ParseNode(ParseNode.LIST_FOR, randomList),
                          ListFor(randomList))
        self.assertEquals(ParseNode(ParseNode.LIST_IF, randomList),
                          ListIf(randomList))
        self.assertEquals(ParseNode(ParseNode.LIST_ITER, randomList),
                          ListIter(randomList))
        self.assertEquals(ParseNode(ParseNode.LIST_MAKER, randomList),
                          ListMaker(randomList))
        self.assertEquals(ParseNode(ParseNode.NAME, randomList),
                          Name(randomList))
        self.assertEquals(ParseNode(ParseNode.NOT_TEST, randomList),
                          NotTest(randomList))
        self.assertEquals(ParseNode(ParseNode.NUMBER, randomList),
                          Number(randomList))
        self.assertEquals(ParseNode(ParseNode.POWER, randomList),
                          Power(randomList))
        self.assertEquals(ParseNode(ParseNode.SHIFT_EXPR, randomList),
                          ShiftExpr(randomList))
        self.assertEquals(ParseNode(ParseNode.SLICE_OP, randomList),
                          SliceOp(randomList))
        self.assertEquals(ParseNode(ParseNode.STRINGLITERAL, randomList),
                          StringLiteral(randomList))
        self.assertEquals(ParseNode(ParseNode.SUBSCRIPT, randomList),
                          Subscript(randomList))
        self.assertEquals(ParseNode(ParseNode.SUBSCRIPT_LIST, randomList),
                          SubscriptList(randomList))
        self.assertEquals(ParseNode(ParseNode.TERM, randomList),
                          Term(randomList))
        self.assertEquals(ParseNode(ParseNode.TEST, randomList),
                          Test(randomList))
        self.assertEquals(ParseNode(ParseNode.TEST_LIST, randomList),
                          TestList(randomList))
        self.assertEquals(ParseNode(ParseNode.TEST_LIST_GEXP, randomList),
                          TestListGexp(randomList))
        self.assertEquals(ParseNode(ParseNode.TRAILER, randomList),
                          Trailer(randomList))
        self.assertEquals(ParseNode(ParseNode.VAR_ARGS_LIST, randomList),
                          VarArgsList(randomList))
Пример #9
0
    def testOffset(self):
        node = FLCellReferenceParseNode(["G8  "])
        node.offset(1, 4)
        self.assertEquals(node.localReference, "H12  ", "offset didnt work")

        node = FLCellReferenceParseNode(["G8  "])
        node.offset(-7, 1)
        self.assertEquals(node.localReference, "#Invalid!  ", "offset didnt work")

        node = FLCellReferenceParseNode(["G8  "])
        node.offset(1, -8)
        self.assertEquals(node.localReference, "#Invalid!  ", "offset didnt work")

        node = FLCellReferenceParseNode(["G8  "])
        node.offset(-6, -7)
        self.assertEquals(node.localReference, "A1  ", "offset didnt work")

        node = FLCellReferenceParseNode(["$G8  "])
        node.offset(-6, -7)
        self.assertEquals(node.localReference, "$G1  ", "offset didnt work")

        node = FLCellReferenceParseNode(["G$8  "])
        node.offset(-6, -7)
        self.assertEquals(node.localReference, "A$8  ", "offset didnt work")

        node = FLCellReferenceParseNode(["$G$8  "])
        node.offset(-6, -7)
        self.assertEquals(node.localReference, "$G$8  ", "offset didnt work")

        node = FLCellReferenceParseNode(["$G$8  "])
        node.offset(-6, -7, move_absolute=True)
        self.assertEquals(node.localReference, "$A$1  ", "offset didnt work")

        node = FLCellReferenceParseNode(["ZZZ9  "])
        node.offset(1, -1)
        self.assertEquals(node.localReference, "#Invalid!  ", "offset didnt work")
Пример #10
0
 def testCanonicalise(self):
     node = FLCellReferenceParseNode(["bertie ", "!", "a1  "])
     node.canonicalise(['Bertie'])
     self.assertEquals(node.localReference, 'A1  ')
     self.assertEquals(node.worksheetReference, 'Bertie')
Пример #11
0
 def testColon(self):
     first = FLCellReferenceParseNode(['a1'])
     second = FLCellReferenceParseNode(['g8'])
     node = FLCellRangeParseNode([first, ":", second])
     self.assertEquals(node.colon, ":")
Пример #12
0
 def testStr(self):
     node = FLCellReferenceParseNode(["a1"])
     self.assertEquals(
         str(node),
         "<FLCellReferenceParseNode type=\"FL_CELL_REFERENCE\" children=['a1']>",
         "Wrong string representation")
Пример #13
0
    def testCoords(self):
        node = FLCellReferenceParseNode(["A2"])
        self.assertEquals(node.coords, (1, 2))

        node = FLCellReferenceParseNode(["B1"])
        self.assertEquals(node.coords, (2, 1))
Пример #14
0
    def testOffset(self):
        node = FLCellReferenceParseNode(["G8  "])
        node.offset(1, 4)
        self.assertEquals(node.localReference, "H12  ", "offset didnt work")

        node = FLCellReferenceParseNode(["G8  "])
        node.offset(-7, 1)
        self.assertEquals(node.localReference, "#Invalid!  ",
                          "offset didnt work")

        node = FLCellReferenceParseNode(["G8  "])
        node.offset(1, -8)
        self.assertEquals(node.localReference, "#Invalid!  ",
                          "offset didnt work")

        node = FLCellReferenceParseNode(["G8  "])
        node.offset(-6, -7)
        self.assertEquals(node.localReference, "A1  ", "offset didnt work")

        node = FLCellReferenceParseNode(["$G8  "])
        node.offset(-6, -7)
        self.assertEquals(node.localReference, "$G1  ", "offset didnt work")

        node = FLCellReferenceParseNode(["G$8  "])
        node.offset(-6, -7)
        self.assertEquals(node.localReference, "A$8  ", "offset didnt work")

        node = FLCellReferenceParseNode(["$G$8  "])
        node.offset(-6, -7)
        self.assertEquals(node.localReference, "$G$8  ", "offset didnt work")

        node = FLCellReferenceParseNode(["$G$8  "])
        node.offset(-6, -7, move_absolute=True)
        self.assertEquals(node.localReference, "$A$1  ", "offset didnt work")

        node = FLCellReferenceParseNode(["ZZZ9  "])
        node.offset(1, -1)
        self.assertEquals(node.localReference, "#Invalid!  ",
                          "offset didnt work")
Пример #15
0
 def testCanonicalise(self):
     node = FLCellReferenceParseNode(["bertie ", "!", "a1  "])
     node.canonicalise(['Bertie'])
     self.assertEquals(node.localReference, 'A1  ')
     self.assertEquals(node.worksheetReference, 'Bertie')