def test_get_extract_by_id(params): with pyramid_oereb_test_config() as pyramid_config: pyramid_config.add_renderer( 'pyramid_oereb_extract_json', 'pyramid_oereb.lib.renderer.extract.json_.Renderer') request = MockRequest() request.matchdict.update({ 'flavour': 'REDUCED', 'format': 'JSON', 'param1': 'GEOMETRY', 'param2': 'TEST' }) request.params.update(params) service = PlrWebservice(request) service.get_extract_by_id()
def test_return_no_content(): request = MockRequest() request.matchdict.update({ 'flavour': 'REDUCED', 'format': 'XML', 'param1': 'GEOMETRY', 'param2': 'MISSINGEGRID' }) service = PlrWebservice(request) response = service.get_extract_by_id() assert isinstance(response, HTTPNoContent)
def test_return_json(topics): with pyramid_oereb_test_config() as pyramid_config: pyramid_config.add_renderer('pyramid_oereb_extract_json', 'pyramid_oereb.lib.renderer.extract.json_.Renderer') request = MockRequest() request.matchdict.update({ 'flavour': 'REDUCED', 'format': 'JSON', 'param1': 'GEOMETRY', 'param2': 'TEST' }) request.params.update({ 'TOPICS': topics }) service = PlrWebservice(request) response = service.get_extract_by_id() with open(schema_json_extract) as f: schema = json.loads(f.read()) Draft4Validator.check_schema(schema) validator = Draft4Validator(schema) response = json.loads(response.body.decode('utf-8')) validator.validate(response) assert isinstance(response, dict) extract = response.get('GetExtractByIdResponse').get('extract') real_estate = extract.get('RealEstate') assert isinstance(real_estate, dict) if topics == 'ALL': assert len(real_estate.get('RestrictionOnLandownership')) == 3 assert len(extract.get('ConcernedTheme')) == 3 assert len(extract.get('NotConcernedTheme')) == 14 assert len(extract.get('ThemeWithoutData')) == 0 restrictions = real_estate.get('RestrictionOnLandownership') assert restrictions[0]['Theme']['Code'] == 'LandUsePlans' assert restrictions[1]['Theme']['Code'] == 'MotorwaysBuildingLines' assert restrictions[2]['Theme']['Code'] == 'ContaminatedSites' if topics == 'ALL_FEDERAL': assert len(real_estate.get('RestrictionOnLandownership')) == 1 assert len(extract.get('ConcernedTheme')) == 1 assert len(extract.get('NotConcernedTheme')) == 9 assert len(extract.get('ThemeWithoutData')) == 0 restrictions = real_estate.get('RestrictionOnLandownership') assert restrictions[0]['Theme']['Code'] == 'MotorwaysBuildingLines' if topics == 'ContaminatedSites,RailwaysProjectPlanningZones': assert len(real_estate.get('RestrictionOnLandownership')) == 1 assert len(extract.get('ConcernedTheme')) == 1 assert len(extract.get('NotConcernedTheme')) == 1 assert len(extract.get('ThemeWithoutData')) == 0 restrictions = real_estate.get('RestrictionOnLandownership') assert restrictions[0]['Theme']['Code'] == 'ContaminatedSites'
def test_return_json(topics): with pyramid_oereb_test_config() as pyramid_config: pyramid_config.add_renderer( 'pyramid_oereb_extract_json', 'pyramid_oereb.lib.renderer.extract.json_.Renderer') request = MockRequest() request.matchdict.update({ 'flavour': 'REDUCED', 'format': 'JSON', 'param1': 'GEOMETRY', 'param2': 'TEST' }) request.params.update({'TOPICS': topics}) service = PlrWebservice(request) response = service.get_extract_by_id() with open(schema_json_extract) as f: schema = json.loads(f.read()) Draft4Validator.check_schema(schema) validator = Draft4Validator(schema) response = json.loads(response.body.decode('utf-8')) validator.validate(response) assert isinstance(response, dict) extract = response.get('GetExtractByIdResponse').get('extract') real_estate = extract.get('RealEstate') assert isinstance(real_estate, dict) if topics == 'ALL': assert len(real_estate.get('RestrictionOnLandownership')) == 3 assert len(extract.get('ConcernedTheme')) == 3 assert len(extract.get('NotConcernedTheme')) == 14 assert len(extract.get('ThemeWithoutData')) == 0 restrictions = real_estate.get('RestrictionOnLandownership') assert restrictions[0]['Theme']['Code'] == 'LandUsePlans' assert restrictions[1]['Theme']['Code'] == 'MotorwaysBuildingLines' assert restrictions[2]['Theme']['Code'] == 'ContaminatedSites' # Check consistency of ordering (according to config) for not concerned themes assert extract.get( 'NotConcernedTheme')[0]['Code'] == 'MotorwaysProjectPlaningZones' assert extract.get( 'NotConcernedTheme')[1]['Code'] == 'RailwaysBuildingLines' assert extract.get( 'NotConcernedTheme')[2]['Code'] == 'RailwaysProjectPlanningZones' assert extract.get( 'NotConcernedTheme')[3]['Code'] == 'AirportsProjectPlanningZones' assert extract.get( 'NotConcernedTheme')[4]['Code'] == 'AirportsBuildingLines' assert extract.get( 'NotConcernedTheme')[5]['Code'] == 'AirportsSecurityZonePlans' assert extract.get( 'NotConcernedTheme')[6]['Code'] == 'ContaminatedMilitarySites' assert extract.get( 'NotConcernedTheme')[7]['Code'] == 'ContaminatedCivilAviationSites' assert extract.get('NotConcernedTheme' )[8]['Code'] == 'ContaminatedPublicTransportSites' assert extract.get( 'NotConcernedTheme')[9]['Code'] == 'GroundwaterProtectionZones' assert extract.get( 'NotConcernedTheme')[10]['Code'] == 'GroundwaterProtectionSites' assert extract.get( 'NotConcernedTheme')[11]['Code'] == 'NoiseSensitivityLevels' assert extract.get( 'NotConcernedTheme')[12]['Code'] == 'ForestPerimeters' assert extract.get( 'NotConcernedTheme')[13]['Code'] == 'ForestDistanceLines' if topics == 'ALL_FEDERAL': assert len(real_estate.get('RestrictionOnLandownership')) == 1 assert len(extract.get('ConcernedTheme')) == 1 assert len(extract.get('NotConcernedTheme')) == 9 assert len(extract.get('ThemeWithoutData')) == 0 restrictions = real_estate.get('RestrictionOnLandownership') assert restrictions[0]['Theme']['Code'] == 'MotorwaysBuildingLines' if topics == 'ContaminatedSites,RailwaysProjectPlanningZones': assert len(real_estate.get('RestrictionOnLandownership')) == 1 assert len(extract.get('ConcernedTheme')) == 1 assert len(extract.get('NotConcernedTheme')) == 1 assert len(extract.get('ThemeWithoutData')) == 0 restrictions = real_estate.get('RestrictionOnLandownership') assert restrictions[0]['Theme']['Code'] == 'ContaminatedSites'