def test_project_wms(self): p0 = QgsProject() p0.read(sorted(list(projects().values()))[0]) p1 = QgsProject() p1.read(sorted(list(projects().values()))[1]) # Check that project3 from second directory is in the list self.assertTrue( 'projects2/project3.qgz' in '||'.join(list(projects().values()))) # p0 is not restricted and does not use layer ids extent, layers = project_wms(p0, 'EPSG:4326') self.assertEqual(layers, ['points']) # Extent is WMS advertized self.assertEqual( re.sub(r'(\.\d{2})\d+', r'\1', extent.asWktPolygon()), 'POLYGON((-1.12 43.23, 11.12 43.23, 11.12 52.26, -1.12 52.26, -1.12 43.23))' ) # p1 is restricted and does use layer ids extent, layers = project_wms(p1, 'EPSG:4326') self.assertEqual(layers, ['points_3857_6c1395a0_1065_41f7_9cf4_8109e268ac84']) # Extent is from the only published layer self.assertEqual( re.sub(r'(\.\d{2})\d+', r'\1', extent.asWktPolygon()), 'POLYGON((-25.49 41.98, 38.23 41.98, 38.23 55.95, -25.49 55.95, -25.49 41.98))' )
def test_project_extent(self): p = QgsProject() p.read(sorted(list(projects().values()))[2]) self.assertTrue(QgsServerProjectUtils.wmsExtent(p).isNull()) info = project_info(sorted(list(projects().values()))[2]) self.assertEqual( re.sub(r'(\.\d{2})\d+', r'\1', str(info['geographic_extent'])), '[10.68, 52.41, 10.74, 52.45]')
def test_projects(self): _projects = '|'.join(projects()) self.assertTrue( hashlib.md5('Project1.qgs'.encode('utf8')).hexdigest() in _projects) self.assertTrue( hashlib.md5('Project2.qgz'.encode('utf8')).hexdigest() in _projects)
def test_layer_info(self): p = QgsProject() p.read(list(projects().values())[1]) info = layer_info( p.mapLayer('points_842425df_7f45_4091_a6c9_086e1dc1edd1')) self.assertEqual(info['name'], 'points') self.assertEqual(info['id'], 'points_842425df_7f45_4091_a6c9_086e1dc1edd1') self.assertEqual( info['metadata']['categories'], ['Geoscientific Information', 'Imagery Base Maps Earth Cover']) self.assertEqual( info['metadata']['contacts'][0], { 'name': 'Layer Metadata Contact Name', 'role': 'distributor', 'email': 'Layer Metadata Contact Email', 'fax': 'Layer Metadata Contact Fax', 'voice': 'Layer Metadata Contact Voice', 'organization': 'Layer Metadata Contact Organization', 'position': 'Layer Metadata Contact Position', 'addresses': [{ 'address': 'street 1', 'city': 'Milan', 'country': 'Italy', 'postalCode': '10021', 'type': 'postal', 'administrativeArea': 'Lombardy' }] }) self.assertEqual( info['fields'], { 'fid': { 'type': 'Integer64', 'label': 'fid', 'precision': 0, 'length': 0, 'not_null': True, 'unique': True, 'has_expression': False, 'default': 'Autogenerate', 'expression': '', 'editable': False }, 'name': { 'type': 'String', 'label': 'name', 'precision': 0, 'length': 0, 'not_null': False, 'unique': False, 'has_expression': False, 'default': '', 'expression': '', 'editable': True } })
def test_project_info(self): path = sorted(projects().values())[1] info = project_info(path) self.assertEqual(info['title'], 'Project2 Title') self.assertEqual(info['toc']['children'][0]['name'], 'points_3857') self.assertEqual(len(info['toc']['children']), 1)
def test_projects(self): _projects = '|'.join(projects().values()) self.assertTrue('PGProject1' in _projects) self.assertTrue('PGProject2' in _projects) self.assertTrue('my as areas project' in _projects)