def test_import_data_in_mssql(self): print("\nINFO: Validate Import Data in MS SQL Server...") schema = 'test_ladm_col' reset_db_mssql(schema) restore_schema_mssql(schema) db_conn = get_mssql_conn(schema) base_config = BaseConfiguration() base_config.custom_model_directories = testdata_path(MODELS_PATH) base_config.custom_model_directories_enabled = True model_list = [self.ladmcol_models.model(LADMNames.LADM_COL_MODEL_KEY).full_name(), self.ladmcol_models.model(LADMNames.SNR_DATA_SUPPLIES_MODEL_KEY).full_name(), self.ladmcol_models.model(LADMNames.SUPPLIES_MODEL_KEY).full_name(), self.ladmcol_models.model(LADMNames.SUPPLIES_INTEGRATION_MODEL_KEY).full_name(), self.ladmcol_models.model(LADMNames.SURVEY_MODEL_KEY).full_name()] configuration = ImportDataConfiguration() configuration.base_configuration = base_config configuration.dbhost = 'mssql' configuration.dbusr = '******' configuration.dbpwd = '<YourStrong!Passw0rd>' configuration.dbport = '1433' configuration.database = schema # use schema because delete schemas in mssql is difficult configuration.dbschema = schema configuration.db_odbc_driver = 'ODBC Driver 17 for SQL Server' configuration.delete_data = True configuration.ilimodels = ';'.join(model_list) configuration.inheritance = ILI2DBNames.DEFAULT_INHERITANCE configuration.create_basket_col = ILI2DBNames.CREATE_BASKET_COL configuration.create_import_tid = ILI2DBNames.CREATE_IMPORT_TID configuration.stroke_arcs = ILI2DBNames.STROKE_ARCS importer = iliimporter.Importer(dataImport=True) importer.tool = DbIliMode.ili2mssql importer.configuration = configuration importer.configuration.xtffile = testdata_path('xtf/test_ladm_col_queries_v1_0.xtf') self.assertEqual(importer.run(), iliimporter.Importer.SUCCESS) generator = Generator(DbIliMode.ili2mssql, 'DRIVER={{ODBC Driver 17 for SQL Server}};SERVER={host},1433;DATABASE={db};UID={user};PWD={pwd}' .format(db=configuration.database, user=configuration.dbusr, pwd=configuration.dbpwd, host=configuration.dbhost, port=configuration.dbport), configuration.inheritance, importer.configuration.dbschema) available_layers = generator.layers() self.assertEqual(len(available_layers), 156) res, code, msg = db_conn.test_connection() self.assertTrue(res, msg) test_layer = self.app.core.get_layer(db_conn, db_conn.names.LC_BOUNDARY_POINT_T, load=True) self.assertEqual(test_layer.featureCount(), 390) db_conn.conn.close()
def test_import_schema_in_mssql(self): schema = 'test_import_schema' reset_db_mssql(schema) print("\nINFO: Validate Import Schema in MS SQL Server") base_config = BaseConfiguration() base_config.custom_model_directories = testdata_path( 'xtf') + ';' + testdata_path(MODELS_PATH) base_config.custom_model_directories_enabled = True configuration = SchemaImportConfiguration() configuration.base_configuration = base_config configuration.tool = DbIliMode.ili2mssql configuration.dbhost = 'mssql' configuration.dbusr = '******' configuration.dbpwd = '<YourStrong!Passw0rd>' configuration.dbport = '1433' configuration.database = schema configuration.dbschema = schema configuration.db_odbc_driver = 'ODBC Driver 17 for SQL Server' configuration.tomlfile = TOML_FILE_DIR configuration.epsg = 9377 configuration.inheritance = ILI2DBNames.DEFAULT_INHERITANCE configuration.create_basket_col = ILI2DBNames.CREATE_BASKET_COL configuration.create_import_tid = ILI2DBNames.CREATE_IMPORT_TID configuration.stroke_arcs = ILI2DBNames.STROKE_ARCS configuration.ilimodels = ';'.join([ self.ladmcol_models.model( LADMNames.LADM_COL_MODEL_KEY).full_name(), self.ladmcol_models.model( LADMNames.SNR_DATA_SUPPLIES_MODEL_KEY).full_name(), self.ladmcol_models.model( LADMNames.SUPPLIES_MODEL_KEY).full_name(), self.ladmcol_models.model( LADMNames.SUPPLIES_INTEGRATION_MODEL_KEY).full_name(), self.ladmcol_models.model(LADMNames.SURVEY_MODEL_KEY).full_name() ]) importer = iliimporter.Importer() importer.tool = DbIliMode.ili2mssql importer.configuration = configuration # importer.stderr.connect(self.on_stderr) self.assertEqual(importer.run(), iliimporter.Importer.SUCCESS) generator = Generator( DbIliMode.ili2mssql, 'DRIVER={{ODBC Driver 17 for SQL Server}};SERVER={host},1433;DATABASE={db};UID={user};PWD={pwd}' .format(db=configuration.database, user=configuration.dbusr, pwd=configuration.dbpwd, host=configuration.dbhost, port=configuration.dbport), configuration.inheritance, importer.configuration.dbschema) available_layers = generator.layers() self.assertEqual(len(available_layers), 156)
def test_mssql_test_connection_interlis_with_ili2mssql3_ladm_col_221_models(self): print("\nINFO: Validate test_connection() for SQL Server (Interlis with ili2mssql 3, LADM-COL 2.2.1 models)...") schema = 'interlis_ili2db3_ladm' reset_db_mssql(schema) restore_schema_mssql(schema) db_conn = get_mssql_conn(schema) res, code, msg = db_conn.test_connection() self.assertFalse(res, msg) self.assertEqual(EnumTestConnectionMsg.INVALID_ILI2DB_VERSION, code) db_conn.conn.close()
def test_mssql_test_connection_interlis_ladm_col_models(self): print("\nINFO: Validate test_connection() for SQL Server (Interlis, no LADM-COL models)...") schema = 'test_ladm_all_models' reset_db_mssql(schema) restore_schema_mssql(schema) db_conn = get_mssql_conn(schema) res, code, msg = db_conn.test_connection() self.assertTrue(res, msg) self.assertEqual(code, EnumTestConnectionMsg.SCHEMA_WITH_VALID_LADM_COL_STRUCTURE) db_conn.conn.close()
def test_mssql_test_connection_interlis_ladm_col_models_higher_version(self): print("\nINFO: Validate test_connection() for SQL Server (Interlis, LADM-COL with higher models version)...") schema = 'ladm_col_211' reset_db_mssql(schema) restore_schema_mssql(schema) db_conn = get_mssql_conn(schema) res, code, msg = db_conn.test_connection() self.assertFalse(res, msg) self.assertEqual(code, EnumTestConnectionMsg.NO_LADM_MODELS_FOUND_IN_SUPPORTED_VERSION) db_conn.conn.close()
def test_mssql_test_connection_no_interlis_no_ladm_col_models(self): print("\nINFO: Validate test_connection() for SQL Server (no Interlis, no LADM-COL models)...") schema = 'empty_no_interlis_no_ladm' reset_db_mssql(schema) restore_schema_mssql(schema) db_conn = get_mssql_conn('empty_no_interlis_no_ladm') res, code, msg = db_conn.test_connection() self.assertFalse(res, msg) self.assertEqual(code, EnumTestConnectionMsg.INTERLIS_META_ATTRIBUTES_NOT_FOUND) db_conn.conn.close()
def setUpClass(cls): cls.app = AppInterface() cls.db_gpkg = get_copy_gpkg_conn('test_ladm_survey_model_gpkg') print("INFO: Restoring databases to be used") restore_schema('test_ladm_col') cls.db_pg = get_pg_conn('test_ladm_col') schema = 'test_ladm_col' reset_db_mssql(schema) restore_schema_mssql(schema) cls.db_mssql = get_mssql_conn(schema)
def test_export_data_in_mssql(self): print("\nINFO: Validate Export Data in MS SQL Server...") schema = 'test_export_data' reset_db_mssql(schema) restore_schema_mssql(schema) db_conn = get_mssql_conn(schema) base_config = BaseConfiguration() base_config.custom_model_directories = testdata_path(MODELS_PATH) base_config.custom_model_directories_enabled = True model_list = [ self.ladmcol_models.model( LADMNames.LADM_COL_MODEL_KEY).full_name(), self.ladmcol_models.model( LADMNames.SNR_DATA_SUPPLIES_MODEL_KEY).full_name(), self.ladmcol_models.model( LADMNames.SUPPLIES_MODEL_KEY).full_name(), self.ladmcol_models.model( LADMNames.SUPPLIES_INTEGRATION_MODEL_KEY).full_name(), self.ladmcol_models.model(LADMNames.SURVEY_MODEL_KEY).full_name() ] configuration = ExportConfiguration() configuration.base_configuration = base_config configuration.dbhost = 'mssql' configuration.dbusr = '******' configuration.dbpwd = '<YourStrong!Passw0rd>' configuration.dbport = '1433' configuration.database = schema # use schema because delete schemas in mssql is difficult configuration.dbschema = schema configuration.db_odbc_driver = 'ODBC Driver 17 for SQL Server' configuration.delete_data = True configuration.ilimodels = ';'.join(model_list) exporter = iliexporter.Exporter() exporter.tool = DbIliMode.ili2mssql exporter.configuration = configuration exporter.configuration.xtffile = os.path.join(tempfile.mkdtemp(), 'test_export_data.xtf') # exporter.stderr.connect(self.on_stderr) self.assertEqual(exporter.run(), iliexporter.Exporter.SUCCESS) self.check_export_xtf(exporter.configuration.xtffile) db_conn.conn.close()
def restore_db(cls): reset_db_mssql(cls.schema) restore_schema_mssql(cls.schema)