Exemple #1
0
    def test_edit_dominant_building_extent_update_success(
            self, mock_validator, mock_request):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_lon
        ]

        mock_lon = LightObstructionNoticeItem.from_json(get_mock_lon_item())
        self.mock_session.return_value.add_lon_charge_state = mock_lon
        self.mock_session.return_value.edited_fields = {}

        geometry = {
            'coordinates': [294230.7392612094, 93185.05361812815],
            'type': 'Point'
        }
        saved_features = {
            'saved-features':
            json.dumps({'features': [{
                'geometry': geometry
            }]})
        }
        mock_request.form = saved_features

        mock_validator.validate.return_value.errors = None

        response = self.client.post(
            url_for('modify_lon.edit_dominant_building_extent_post'))

        self.assert_status(response, 302)
        self.assertIsNotNone(
            self.mock_session.return_value.add_lon_charge_state.geometry)
        self.assertEqual(
            self.mock_session.return_value.edited_fields['geometry'], "Extent")
Exemple #2
0
    def test_edit_lon_land_interest_update_success(self, mock_validator,
                                                   mock_request):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_lon
        ]

        mock_lon = LightObstructionNoticeItem.from_json(get_mock_lon_item())

        self.mock_session.return_value.add_lon_charge_state = mock_lon
        self.mock_session.return_value.edited_fields = {}

        mock_validator.return_value.errors = None
        mock_request.form.get.return_value = "tenant"

        response = self.client.post(
            url_for('modify_lon.edit_lon_land_interest_post'))

        self.assertEqual(
            self.mock_session.return_value.add_lon_charge_state.
            servient_land_interest_description, "tenant")
        self.assertEqual(
            self.mock_session.return_value.
            edited_fields['servient-land-interest-description'], "Interest")
        self.assert_status(response, 302)
Exemple #3
0
    def test_edit_servient_structure_position_update_success_amend(
            self, mock_validator, mock_request):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_lon
        ]

        mock_lon = LightObstructionNoticeItem.from_json(get_mock_lon_item())
        mock_lon.structure_position_and_dimension[
            'extent-covered'] = 'Part of the extent'
        mock_lon.structure_position_and_dimension[
            'part-explanatory-text'] = 'northern hedge'

        self.mock_session.return_value.add_lon_charge_state = mock_lon
        self.mock_session.return_value.edited_fields = {}

        mock_validator.validate.return_value.errors = None
        mock_request.form.get.return_value = "All of the extent"

        response = self.client.post(
            url_for('modify_lon.edit_servient_structure_position_post'))

        structure_position_and_dimension = \
            self.mock_session.return_value.add_lon_charge_state.structure_position_and_dimension

        self.assert_status(response, 302)
        self.assertEqual(structure_position_and_dimension["extent-covered"],
                         "All of the extent")
        self.assertEqual(
            self.mock_session.return_value.edited_fields['structure-position'],
            "Extent - planned development")
    def test_edit_dominant_description_update_success(self, mock_validator,
                                                      mock_request):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_lon
        ]

        mock_lon = LightObstructionNoticeItem.from_json(get_mock_lon_item())
        self.mock_session.return_value.add_lon_charge_state = mock_lon
        self.mock_session.return_value.edited_fields = {
            'charge-address': "Dominant address"
        }

        mock_validator.validate.return_value.errors = None
        mock_request.form = {
            'have_address': 'No',
            'charge_geographic_description': 'CHANGED'
        }

        response = self.client.post(
            url_for('modify_lon.edit_dominant_building_post'))
        self.assert_status(response, 302)
        self.assertEqual(
            self.mock_session.return_value.add_lon_charge_state.charge_address,
            '')
        self.assertEqual(
            self.mock_session.return_value.add_lon_charge_state.
            charge_geographic_description, 'CHANGED')
        self.assertNotIn('charge-address',
                         self.mock_session.return_value.edited_fields)
        self.assertEqual(
            self.mock_session.return_value.
            edited_fields['charge_geographic_description'], 'Dominant address')
    def test_edit_servient_structure_height_update_success_amend(
            self, mock_validator, mock_request):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_lon
        ]

        mock_lon = LightObstructionNoticeItem.from_json(get_mock_lon_item())
        mock_lon.structure_position_and_dimension['height'] = '20'
        mock_lon.structure_position_and_dimension['units'] = 'Metres'

        self.mock_session.return_value.add_lon_charge_state = mock_lon
        self.mock_session.return_value.edited_fields = {}

        mock_validator.validate.return_value.errors = None
        mock_request.form.get.return_value = "Unlimited height"

        response = self.client.post(
            url_for('modify_lon.edit_servient_structure_height_post'))

        structure_position_and_dimension = \
            self.mock_session.return_value.add_lon_charge_state.structure_position_and_dimension

        self.assert_status(response, 302)
        self.assertEqual(structure_position_and_dimension["height"],
                         "Unlimited height")
        self.assertEqual(
            self.mock_session.return_value.
            edited_fields['structure-dimension'],
            "Height - planned development")
Exemple #6
0
    def test_edit_lon_land_interest_get_with_state(self):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_lon
        ]
        mock_lon = LightObstructionNoticeItem.from_json(get_mock_lon_item())
        self.mock_session.return_value.add_lon_charge_state = mock_lon

        response = self.client.get(
            url_for('modify_lon.edit_lon_land_interest_get'))

        self.assert_status(response, 200)
        self.assert_template_used('lon_land_interest.html')
Exemple #7
0
    def test_modify_lon_redirect_when_different_id_in_session(
            self, mock_service):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_lon
        ]

        state = LightObstructionNoticeItem.from_json(get_mock_lon_item())
        self.mock_session.return_value.add_lon_charge_state = state

        response = self.client.get(
            url_for('modify_lon.modify_lon_upload_get', charge_id=3))

        self.assert_status(response, 302)
Exemple #8
0
    def test_modify_lon_details_get_with_state(self, mock_service,
                                               mock_calc_display_id):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_lon
        ]
        self.mock_session.return_value.add_lon_charge_state = LightObstructionNoticeItem.from_json(
            get_mock_lon_item())
        mock_calc_display_id.return_value = "LLC-TST"

        response = self.client.get(
            url_for('modify_lon.modify_lon_details_get', charge_id='LLC-TST'))

        self.assert_status(response, 200)
        self.assert_template_used('modify_lon_details.html')
Exemple #9
0
    def test_edit_dominant_building_extent_update_errors(self, mock_validator):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_lon
        ]

        mock_lon = LightObstructionNoticeItem.from_json(get_mock_lon_item())
        self.mock_session.return_value.add_lon_charge_state = mock_lon
        mock_validator.validate.return_value.errors = {"error": "test-error"}

        response = self.client.post(
            url_for('modify_lon.edit_dominant_building_extent_post'))

        self.assert_status(response, 400)
        self.assert_template_used('dominant_building_extent.html')
        self.assert_context("validation_errors", {"error": "test-error"})
Exemple #10
0
def get_lon_by_charge_id(charge_id, local_land_charge_service):
    validate_charge_id(charge_id)

    current_app.logger.info("Retrieving charge information from charge_id='{}'".format(charge_id))

    response = local_land_charge_service.get_by_charge_number(charge_id)

    if response.status_code == 404:
        current_app.logger.info("Search service reports '{}' not found - Returning error".format(charge_id))
        raise ApplicationError(404)

    response.raise_for_status()

    charge_item = LightObstructionNoticeItem.from_json(response.json()[0]['item'])
    display_id = response.json()[0]['display_id']
    current_app.logger.info("Retrieved charge for local_land_charge='{}'".format(charge_id))

    return display_id, charge_item
Exemple #11
0
    def test_edit_lon_land_interest_other_missing_details(
            self, mock_render_template, mock_validator, mock_request):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_lon
        ]

        mock_lon = LightObstructionNoticeItem.from_json(get_mock_lon_item())
        self.mock_session.return_value.add_lon_charge_state = mock_lon
        self.mock_session.return_value.edited_fields = {}

        mock_request.form.get.side_effect = ["Other", ""]
        mock_validator.return_value.errors = {"error": "test-error"}
        mock_render_template.return_value = "Template was called"

        response = self.client.post(
            url_for('modify_lon.edit_lon_land_interest_post'))

        self.assert_status(response, 400)
        mock_render_template.assert_called()
    def test_edit_applicant_info_update_success(self, mock_validator,
                                                mock_converter, mock_request):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_lon
        ]

        mock_lon = LightObstructionNoticeItem.from_json(get_mock_lon_item())
        mock_edited_name = "Test"
        mock_edited_address = {
            "line-1": "street",
            "line-2": "town",
            "postcode": "postcode",
            "country": "country"
        }

        self.mock_session.return_value.add_lon_charge_state = mock_lon
        self.mock_session.return_value.edited_fields = {}

        mock_validator.validate.return_value.errors = None
        mock_request.form.get.return_value = mock_edited_name
        mock_converter.condense_address.return_value = mock_edited_address

        response = self.client.post(
            url_for('modify_lon.edit_applicant_info_post'))

        self.assert_status(response, 302)
        self.assertEqual(
            self.mock_session.return_value.add_lon_charge_state.applicant_name,
            mock_edited_name)
        self.assertEqual(
            self.mock_session.return_value.add_lon_charge_state.
            applicant_address, mock_edited_address)
        self.assertEqual(
            self.mock_session.return_value.edited_fields['applicant-name'],
            "Name")
        self.assertEqual(
            self.mock_session.return_value.edited_fields['applicant-address'],
            "Address")
 def populate_state(self):
     """Populates the add charge from session state."""
     current_app.logger.info(
         "Method called, getting session state from session api")
     response = SessionAPIService.get_session_state(
         self.session_key, Session.session_state_key)
     if response is not None:
         current_app.logger.info("Non-empty session state contents")
         if 'add_charge_state' in response:
             current_app.logger.info("add_charge_state in session state")
             self.add_charge_state = LocalLandChargeItem.from_json(
                 response['add_charge_state'])
         if 'add_lon_charge_state' in response:
             current_app.logger.info(
                 "add_lon_charge_state in session state")
             self.add_lon_charge_state = LightObstructionNoticeItem.from_json(
                 response['add_lon_charge_state'])
         if 'last_created_charge' in response:
             current_app.logger.info("last_created_charge in session state")
             self.last_created_charge = LastCreatedCharge.from_dict(
                 response['last_created_charge'])
         if 'statutory_provision_list' in response:
             current_app.logger.info(
                 "statutory_provision_list in session state")
             self.statutory_provision_list = response[
                 'statutory_provision_list']
         if 'edited_fields' in response:
             current_app.logger.info("edited_fields in session state")
             self.edited_fields = response['edited_fields']
         if 'llc1_state' in response:
             current_app.logger.info("llc1_state in session state")
             self.llc1_state = LLC1Search.from_json(response['llc1_state'])
         if 'redirect_route' in response:
             current_app.logger.info('redirect_route in session state')
             self.redirect_route = response['redirect_route']
         if 'search_extent' in response:
             current_app.logger.info('search_extent in session state')
             self.search_extent = response['search_extent']
         if 'filenames' in response:
             current_app.logger.info('filenames in session state')
             self.filenames = response['filenames']
         if 'previously_selected_address' in response:
             current_app.logger.info(
                 'previously_selected_address in session state')
             self.previously_selected_address = response[
                 'previously_selected_address']
         if 'adding_charge_for_other_authority' in response:
             current_app.logger.info(
                 'adding_charge_for_other_authority in session state')
             self.adding_charge_for_other_authority = response[
                 'adding_charge_for_other_authority']
         if 'submit_token' in response:
             current_app.logger.info('submit token in session state')
             self.submit_token = response['submit_token']
         if 'upload_shapefile_processed' in response:
             current_app.logger.info(
                 'upload_shapefile_processed in session state')
             self.upload_shapefile_processed = response[
                 'upload_shapefile_processed']
         if 'category_details' in response:
             self.category_details = Category.from_dict(
                 response['category_details'])
         if 'category_confirmation' in response:
             self.category_confirmation = response['category_confirmation']
         if 'charge_added_outside_users_authority' in response:
             self.charge_added_outside_users_authority = response[
                 'charge_added_outside_users_authority']
         if 'other_authority_update_permission' in response:
             self.other_authority_update_permission = response[
                 'other_authority_update_permission']
         if 'other_authority_cancel_permission' in response:
             self.other_authority_cancel_permission = response[
                 'other_authority_cancel_permission']
         if 'source_information' in response:
             self.source_information = response['source_information']
         if 'source_information_id' in response:
             self.source_information_id = response['source_information_id']
         if 'send_payment_link_info' in response:
             current_app.logger.info(
                 "send_payment_link_info in session state")
             self.send_payment_link_info = PaymentLink.from_json(
                 response['send_payment_link_info'])
         if 'payment_info' in response:
             current_app.logger.info("payment_info in session state")
             self.payment_info = PaymentInfo.from_json(
                 response['payment_info'])
         if 'search_details' in response:
             self.search_details = SearchDetails.from_json(
                 response['search_details'])