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)
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")
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")
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")
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")
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")
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))
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")
def testCanonicalise(self): node = FLCellReferenceParseNode(["bertie ", "!", "a1 "]) node.canonicalise(['Bertie']) self.assertEquals(node.localReference, 'A1 ') self.assertEquals(node.worksheetReference, 'Bertie')
def testColon(self): first = FLCellReferenceParseNode(['a1']) second = FLCellReferenceParseNode(['g8']) node = FLCellRangeParseNode([first, ":", second]) self.assertEquals(node.colon, ":")
def testStr(self): node = FLCellReferenceParseNode(["a1"]) self.assertEquals( str(node), "<FLCellReferenceParseNode type=\"FL_CELL_REFERENCE\" children=['a1']>", "Wrong string representation")
def testCoords(self): node = FLCellReferenceParseNode(["A2"]) self.assertEquals(node.coords, (1, 2)) node = FLCellReferenceParseNode(["B1"]) self.assertEquals(node.coords, (2, 1))