Example #1
0
    def test_read_configuration_object(self):
        conf_path = Path(test_data_root).absolute()

        conf = create_configuration(conf_path)
        read_configuration_objects(conf)

        report = conf.get_object('Отчет1', ObjectType.REPORT)

        self.assertEqual(report.name, 'Отчет1',
                         'Объект имеет неожиданное имя.')

        self.assertEqual(report.obj_type, ObjectType.REPORT,
                         'Объект имеет неожиданный тип.')

        self.assertEqual(report.line_number, 15,
                         'Не верно определена строка в файле')

        self.assertEqual(report.file_name,
                         conf_path.joinpath(Path('Reports/Отчет1.xml')),
                         'Не верно определена строка в файле')

        self.assertEqual(report.full_name, 'Report.Отчет1',
                         'Не верно определено имя')

        self.assertEqual(dumps(report.to_dict(), ensure_ascii=False),
                         Path(json_report_path).read_text(encoding=encoding),
                         'Объект не верно сериализован')
Example #2
0
    def test_read_configuration(self):

        conf_path = Path(test_data_root).absolute()

        conf = create_configuration(conf_path)

        self.assertEqual(conf.name, 'Конфигурация',
                         'Не верно определено имя конфигурации.')
        self.assertEqual(conf.uuid, '04e5fb66-c0ac-4f0b-8a97-f8f51ce50450',
                         'Не верно определен uuid конфигурации')
        self.assertEqual(conf.root_path, conf_path,
                         'Не верно установлен корень конфигурации')

        self.assertEqual(len(conf.conf_objects), 46,
                         'Не корректно загружен состав объектов.')

        report = conf.get_object('Отчет1', ObjectType.REPORT)

        self.assertTupleEqual((report.name, report.obj_type),
                              ('Отчет1', ObjectType.REPORT),
                              'Не корректно найден объект.')

        with self.assertRaises(
                IndexError,
                msg='Объекта "Отчет112" нет в конфигурации должно ожидали ошибку'
        ) as _:
            conf.get_object('Отчет11', ObjectType.REPORT)

        self.assertEqual(dumps(conf.to_dict(), ensure_ascii=False),
                         Path(json_config_path).read_text(encoding=encoding),
                         'Конфигурация не верно сериализована')
Example #3
0
    def test_read_obj_module(self):
        conf_path = Path(test_data_root).absolute()

        conf = create_configuration(conf_path)
        read_configuration_objects(conf)

        doc = conf.get_object('Документ1', ObjectType.DOCUMENT)
        doc.read_modules()

        self.assertEqual(len(doc.modules), 2, 'не все модули были прочитаны.')
Example #4
0
    def test_read_forms(self):
        conf_path = Path(test_data_root).absolute()

        conf = create_configuration(conf_path)
        read_configuration_objects(conf)

        doc = conf.get_object('Документ1', ObjectType.DOCUMENT)
        doc.read_forms()
        self.assertEqual(len(doc.forms), 1, 'не все формы были прочитаны.')

        self.assertIsInstance(doc.forms[0].module, Module,
                              'Модуль не прочитан')
Example #5
0
    def test_read_subsystem(self):
        conf_path = Path(test_data_root).absolute()
        conf = create_configuration(conf_path)
        read_configuration_objects(conf)

        sub_2 = conf.get_object('Подсистема2', ObjectType.SUBSYSTEM)

        self.assertEqual(sub_2.name, 'Подсистема2',
                         'Вложенная подсистема не прочитанна')

        for obj in conf.conf_objects:
            if obj.obj_type != ObjectType.SUBSYSTEM:
                continue
            ch = obj.childes
            objects = 1
            if obj.name == 'Подсистема1':
                objects = 44
            elif obj.name == 'Подсистема3':
                objects = 3

            self.assertEqual(len(ch), objects,
                             f'Не все объекты подсистемы {obj} прочитанны')