示例#1
0
 def test_register_form__item_with_kwargs(self) -> None:
     factory: FormFactory = FormFactory()
     factory.register_form("form1",
                           {"item1": {
                               "cls": FormItem,
                               "kwargs": {}
                           }})
    def test_get_form_doc__header_rows_count_0(self) -> None:
        factory: FormFactory = FormFactory()
        factory.register_form(
            "form1",
            {
                "item1": {
                    "cls": FormItemTable,
                    "kwargs": {
                        "sheet_name": "Sheet1",
                        "range_arg": "A3:C5"
                    },
                }
            },
        )
        form = factory.new_form("form1", self._book)
        doc = form.get_form_doc()

        self.assertIsInstance(doc, dict)
        self.assertTrue("item1" in doc)
        self.assertIsInstance(doc["item1"], dict)
        self.assertTrue("_meta" in doc["item1"])
        self.assertTrue("result" in doc["item1"])
        self.assertEqual(
            doc["item1"]["result"],
            [
                ["data111", "data112", "data121"],
                ["data211", "data212", "data221"],
                ["data311", "data312", "data321"],
            ],
        )
    def test_set_form_doc(self) -> None:
        engine: Engine = EngineOpenpyxl()
        book1: Book = engine.new_book()
        book1_sheet1: Sheet = book1.get_sheets()[0]
        book1_sheet1.get_cell(1, 1).set_value("value")
        book1_sheet1.get_cell(1, 2).set_value(10)

        factory: FormFactory = FormFactory()
        factory.register_form(
            "form1",
            {
                "item1": {
                    "cls": FormItemKeyValueCells,
                    "kwargs": {
                        "sheet_name": "Sheet1",
                        "range_arg": "A1:B1",
                        "header_value": "value",
                    },
                }
            },
        )
        form = factory.new_form("form1", book1)
        doc = form.get_form_doc()
        doc["item1"]["result"] = 20
        form.set_form_doc(doc)

        self.assertEqual(book1_sheet1.get_cell(1, 2).get_value(), 20)
    def test_get_form_doc(self) -> None:
        engine: Engine = EngineOpenpyxl()
        book1: Book = engine.new_book()
        book1_sheet1: Sheet = book1.get_sheets()[0]
        book1_sheet1.get_cell(1, 1).set_value(10)

        factory: FormFactory = FormFactory()
        factory.register_form(
            "form1",
            {
                "item1": {
                    "cls": FormItemCell,
                    "kwargs": {"sheet_name": "Sheet1", "range_arg": "A1"},
                }
            },
        )
        form: Form = factory.new_form("form1", book1)
        doc = form.get_form_doc()

        self.assertIsInstance(doc, dict)
        self.assertTrue("item1" in doc)
        self.assertIsInstance(doc["item1"], dict)
        self.assertTrue("_meta" in doc["item1"])
        self.assertTrue("result" in doc["item1"])
        self.assertEqual(doc["item1"]["result"], 10)
示例#5
0
 def test_register_form__illegal_key(self) -> None:
     factory: FormFactory = FormFactory()
     with self.assertRaises(XlFormArgumentException):
         factory.register_form("form1",
                               {"item1": {
                                   "cls": FormItem,
                                   "x": {}
                               }})
示例#6
0
 def test_register_form__multiple_items(self) -> None:
     factory: FormFactory = FormFactory()
     factory.register_form("form1", {
         "item1": {
             "cls": FormItem
         },
         "item2": {
             "cls": FormItem
         }
     })
示例#7
0
 def test_new_form(self) -> None:
     factory: FormFactory = FormFactory()
     factory.register_form(
         "form1",
         {
             "item1": {
                 "cls": FormItemCell,
                 "kwargs": {
                     "sheet_name": "Sheet1",
                     "range_arg": "A1"
                 },
             }
         },
     )
     engine: Engine = EngineOpenpyxl()
     book1: Book = engine.new_book()
     book1_sheet1: Sheet = book1.get_sheets()[0]
     book1_sheet1.get_cell(1, 1).set_value(123)
     form: Form = factory.new_form("form1", book1)
     self.assertIsInstance(form, Form)
    def test_set_form_doc(self) -> None:
        factory: FormFactory = FormFactory()
        factory.register_form(
            "form1",
            {
                "item1": {
                    "cls": FormItemTable,
                    "kwargs": {
                        "sheet_name": "Sheet1",
                        "range_arg": "A3:C5"
                    },
                }
            },
        )
        form = factory.new_form("form1", self._book)
        doc = form.get_form_doc()
        doc["item1"]["result"][1][2] = "x"
        form.set_form_doc(doc)

        self.assertEqual(self._sheet.get_cell(4, 3).get_value(), "x")
    def test_get_form_doc__validation(self) -> None:
        engine: Engine = EngineOpenpyxl()
        book1: Book = engine.new_book()
        book1_sheet1: Sheet = book1.get_sheets()[0]
        book1_sheet1.get_cell(1, 1).set_value("xyz")
        book1_sheet1.get_cell(1, 2).set_value(10)

        factory: FormFactory = FormFactory()
        factory.register_form(
            "form1",
            {
                "item1": {
                    "cls": FormItemKeyValueCells,
                    "kwargs": {
                        "sheet_name": "Sheet1",
                        "range_arg": "A1:B1",
                        "header_value": "value",
                    },
                }
            },
        )
        with self.assertRaises(XlFormArgumentException):
            factory.new_form("form1", book1)
示例#10
0
 def test_register_form__empty(self) -> None:
     factory: FormFactory = FormFactory()
     factory.register_form("form1", {})