Exemple #1
0
    def test_stylesheet(self):
        stylesheet = """
        stylesheet StyleSheet {
            page Selling {
                section "Selling" {
                    question hasSoldHouse
                    question widgetQuestion widget spinbox
                    default integer {
                        color: #123123
                        fontsize: 12
                        widget spinbox
                    }
                    default boolean widget radio
                 }
            }
            page Housing {
                section "Buying" {
                    question name
                }
            }
        }
        """
        default_block = BlockNode([
            AST.DefaultWithPropsNode(
                AST.IntTypeNode(),
                BlockNode([AST.ColorNode("#123123"),
                           AST.FontSizeNode(12)]), AST.SpinboxNode()),
            AST.DefaultNode(AST.BoolTypeNode(), AST.RadioNode())
        ])

        stylesheet_node = AST.StylesheetNode(
            "StyleSheet",
            BlockNode([
                AST.PageNode(
                    "Selling",
                    BlockNode([
                        AST.SectionWithDefaultsNode(
                            "Selling",
                            BlockNode([
                                AST.QuestionNode("hasSoldHouse"),
                                AST.WidgetQuestionNode("widgetQuestion",
                                                       AST.SpinboxNode())
                            ]), default_block)
                    ])),
                AST.PageNode(
                    "Housing",
                    BlockNode([
                        AST.SectionNode("Buying",
                                        BlockNode([AST.QuestionNode("name")]))
                    ]))
            ]))
        self.validate_node(self.parse_stylesheet, stylesheet, stylesheet_node)
Exemple #2
0
 def test_page(self):
     page = """
         page Selling {
             section "section1 name" {
                 question question_name1
             }
             section "section2 name" {
                 question question_name2
              }
         }
     """
     page_node = AST.PageNode(
         "Selling",
         BlockNode([
             AST.SectionNode(
                 "section1 name",
                 BlockNode([AST.QuestionNode("question_name1")])),
             AST.SectionNode(
                 "section2 name",
                 BlockNode([AST.QuestionNode("question_name2")]))
         ]))
     self.validate_node(self.parse_page, page, page_node)
     wrong_page = """
         page Selling {
             page Page {
                 section "section" {
                     question question_name
                 }
             }
         }
     """
     self.check_parse_exception(self.parse_page, wrong_page,
                                pp.ParseException)