def test_get_sub_category_success_land_compensation(self, mock_service):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Land compensation"

        category = Category(name="Land compensation",
                            display_name="Land compensation",
                            sub_categories=[],
                            parent=None,
                            statutory_provisions=[],
                            instruments=[])

        mock_service.get_category_parent_info.return_value = category

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.get(url_for('add_land_charge.get_sub_category'))

        self.assert_status(response, 302)
        self.assertRedirects(response,
                             url_for("add_land_charge.get_all_legal_document"))
    def test_post_legal_document_successful_charge_date(self):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Charge category"
        state.statutory_provision = "test statutory provision"

        category = Category(name="top-level",
                            display_name="Top Level",
                            sub_categories=[],
                            parent=None,
                            statutory_provisions=[],
                            instruments=["abc", "def", "ghi"])

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]
        self.mock_session.return_value.category_details = category
        self.mock_session.return_value.category_confirmation = False

        response = self.client.post(
            url_for('add_land_charge.get_legal_document'),
            data={"confirm-instrument": "abc"})

        self.assert_status(response, 302)
        self.assertRedirects(response,
                             url_for('add_land_charge.get_charge_date'))
    def test_get_sub_category_success(self, mock_service):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Top Level"

        sub1 = SubCategory("test1", "Test 1")
        sub2 = SubCategory("test2", "Test 2")

        category = Category(name="top-level",
                            display_name="Top Level",
                            sub_categories=[sub1, sub2],
                            parent=None,
                            statutory_provisions=[],
                            instruments=[])

        mock_service.get_category_parent_info.return_value = category

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.get(url_for('add_land_charge.get_sub_category'))

        self.assert_status(response, 200)
        self.assert_template_used('sub_categories.html')
        self.assertIn("top level", response.data.decode())
        self.assertIn("Test 1", response.data.decode())
        self.assertIn("Test 2", response.data.decode())
    def test_get_law_successful(self):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Top Level"

        category = Category(name="top-level",
                            display_name="Top Level",
                            sub_categories=[],
                            parent=None,
                            statutory_provisions=["abc", "def", "ghi"],
                            instruments=[])

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]
        self.mock_session.return_value.category_details = category

        response = self.client.get(url_for('add_land_charge.get_law'))

        self.assert_status(response, 200)
        self.assert_template_used('confirm_law.html')
        self.assertIn("Top Level", response.data.decode())
        self.assertIn("abc", response.data.decode())
        self.assertIn("def", response.data.decode())
        self.assertIn("ghi", response.data.decode())
    def test_post_sub_category_success_no_sub_one_prov_one_instruments_lons(
            self, mock_service):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Top Level"

        category = Category(name="Light obstruction notice",
                            display_name="Top Level",
                            sub_categories=[],
                            parent=None,
                            statutory_provisions=["abc"],
                            instruments=["abc"])

        mock_service.get_sub_category_info.return_value = category

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.post(
            url_for('add_land_charge.post_sub_category'),
            data={'charge-sub-category': 'Light obstruction notice'})

        self.assert_status(response, 302)
        self.assertRedirects(response, url_for("add_lon.new"))
    def test_post_all_legal_documents_successful_when_supplied(
            self, mock_service):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Top Level"
        state.statutory_provision = "test statutory provision"
        state.instrument = None

        mock_service.return_value.get_all_instruments.return_value = [
            "abc", "def"
        ]

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]
        self.mock_session.return_value.category_confirmation = False

        response = self.client.post(
            url_for('add_land_charge.post_all_legal_document'),
            data={"confirm-instrument": "abc"})

        self.assert_status(response, 302)
        self.assertRedirects(response,
                             url_for('add_land_charge.get_charge_date'))
        self.assertEqual(
            "abc", self.mock_session.return_value.add_charge_state.instrument)
    def test_post_law_redirects_to_new_when_stat_prov_empty(self, mock_current_app):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Top Level"

        category = Category(name="top-level",
                            display_name="Top Level",
                            sub_categories=[],
                            parent=None,
                            statutory_provisions=[],
                            instruments=[])

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]
        self.mock_session.return_value.category_details = category

        response = self.client.post(url_for('add_land_charge.get_law'))

        calls = [call("Redirecting to: %s", "/add-local-land-charge")]
        mock_current_app.logger.info.assert_has_calls(calls)
        self.assert_status(response, 302)
        self.assertRedirects(response, url_for('add_land_charge.new'))
    def test_post_law_validation_errors(self):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Top Level"

        category = Category(name="top-level",
                            display_name="Top Level",
                            sub_categories=[],
                            parent=None,
                            statutory_provisions=["abc", "def", "ghi"],
                            instruments=[])

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]
        self.mock_session.return_value.category_details = category

        response = self.client.post(url_for('add_land_charge.get_law'), data={"confirm-law-option": None})

        self.assert_status(response, 400)
        self.assert_template_used('confirm_law.html')
        self.assertIn("There are errors on this page", response.data.decode())
        self.assertIn("Choose one option", response.data.decode())
    def test_edit_location_confirmation_post_redirects_when_valid(self):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.roles = ['LLC LR Admins']
        state = LocalLandChargeItem()
        state.geometry = 'abc'
        state.local_land_charge = 12345678
        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_llc
        ]

        geometry = {
            'coordinates': [294230.7392612094, 93185.05361812815],
            'type': 'Point'
        }
        form_data = {
            'saved-features':
            json.dumps({'features': [{
                'geometry': geometry
            }]})
        }
        response = self.client.post(
            url_for('modify_land_charge.post_location'), data=form_data)

        self.assert_status(response, 302)
        self.assertRedirects(
            response,
            url_for('modify_land_charge.modify_land_charge',
                    local_land_charge='LLC-FCDPP'))
    def test_post_all_laws_success_multiple_instruments(self, mock_service):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Top Level"

        category = Category(name="Light obstruction notice",
                            display_name="Top Level",
                            sub_categories=[],
                            parent=None,
                            statutory_provisions=[],
                            instruments=["abc", "def"])

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]
        self.mock_session.return_value.category_details = category

        mock_service.get_all_stat_provs.return_value = ["abc", "def"]

        response = self.client.post(url_for('add_land_charge.post_search_law'), data={"legislation": "abc"})

        self.assert_status(response, 302)
        self.assertRedirects(response, url_for('add_land_charge.get_legal_document'))
Exemplo n.º 11
0
    def test_location_confirmation_redirects_to_location_if_no_geometry(self):
        self.client.set_cookie('localhost', Session.session_cookie_name, 'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = None
        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.get(url_for('add_land_charge.get_location_confirmation'))

        self.assert_status(response, 302)
        self.assertRedirects(response, url_for('add_land_charge.get_location'))
Exemplo n.º 12
0
    def test_location_confirmation_renders_address_true(self):
        self.client.set_cookie('localhost', Session.session_cookie_name, 'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = 'abc'
        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.get(url_for('add_land_charge.get_location_confirmation', address_selected=True))

        self.assertStatus(response, 200)
        self.assert_template_used('location_confirmation.html')
    def test_expiry_post_validation_errors(self, mock_expiry_validator):
        self.client.set_cookie('localhost', Session.session_cookie_name, 'cookie_value')
        self.mock_session.return_value.user.permissions = [Permissions.vary_llc]
        state = LocalLandChargeItem()
        state.geometry = "abc"

        self.mock_session.return_value.add_charge_state = state
        validation_errors = {'does_charge_expire': 'test error message'}
        mock_expiry_validator.validate.return_value.errors = validation_errors
        response = self.client.post(url_for('modify_land_charge.post_expiry'))

        self.assert_status(response, 400)
        self.assert_context('validation_errors', validation_errors)
Exemplo n.º 14
0
    def test_edit_location_get_with_state(self):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_llc
        ]
        state = LocalLandChargeItem()
        state.geometry = 'abc'
        self.mock_session.return_value.add_charge_state = state

        response = self.client.get(url_for('modify_land_charge.get_location'))
        self.assert_status(response, 200)
        self.assert_template_used('location.html')
    def test_get_land_compensation_type_success(self):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.get(url_for('add_land_charge.get_land_compensation_type'))

        self.assert_status(response, 200)
        self.assert_template_used('land_compensation_type.html')
Exemplo n.º 16
0
    def test_location_confirmation_post_returns_required_validation(self):
        self.client.set_cookie('localhost', Session.session_cookie_name, 'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = 'abc'

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.post(url_for('add_land_charge.post_location_confirmation'),
                                    data={'location-confirmation': None})

        self.assert_status(response, 400)
        self.assert_template_used('location_confirmation.html')
        self.assertIn('Confirm that you have the authority to add this charge', response.data.decode())
    def test_post_without_geom(self):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_llc
        ]
        state = LocalLandChargeItem()
        state.local_land_charge = 9372254
        state.geometry = None
        self.mock_session.return_value.add_charge_state = state

        response = self.client.post(
            url_for('modify_land_charge.post_update_location_confirmation'))
        self.assert_status(response, 302)
        self.assertRedirects(response, '/error')
    def test_post_all_laws_redirects_to_new_when_charge_type_none(self, mock_current_app):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.post(url_for('add_land_charge.post_search_law'))

        calls = [call("Redirecting to: %s", "/add-local-land-charge")]
        mock_current_app.logger.info.assert_has_calls(calls)
        self.assert_status(response, 302)
        self.assertRedirects(response, url_for('add_land_charge.new'))
Exemplo n.º 19
0
    def test_location_confirmation_post_redirects_when_address_not_set(self, mock_review_router):
        self.client.set_cookie('localhost', Session.session_cookie_name, 'cookie_value')

        mock_review_router.get_redirect_url.return_value = url_for('add_land_charge.get_address_confirmation')

        state = LocalLandChargeItem()
        state.geometry = 'abc'

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.post(url_for('add_land_charge.post_location_confirmation', address_selected=False),
                                    data={'location-confirmation': True})

        self.assert_status(response, 302)
        self.assertRedirects(response, url_for('add_land_charge.get_address_confirmation'))
        self.assertTrue(self.mock_session.return_value.charge_added_outside_users_authority)
    def test_expiry_post_charge_does_not_expire(self):
        self.client.set_cookie('localhost', Session.session_cookie_name, 'cookie_value')
        self.mock_session.return_value.user.permissions = [Permissions.vary_llc]

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.local_land_charge = 1

        self.mock_session.return_value.add_charge_state = state

        response = self.client.post(url_for('modify_land_charge.post_expiry'), data={
            'does_charge_expire': 'no'
        })

        self.assert_status(response, 302)
        self.assertRedirects(response, url_for('modify_land_charge.modify_land_charge',
                                               local_land_charge="LLC-1"))
Exemplo n.º 21
0
    def test_confirm_successful_lon(self):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Light obstruction notice"
        state.statutory_provision = "test statutory provision"
        state.instrument = "test instrument"

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.get(
            url_for('add_land_charge.law_document_confirmed'))

        self.assert_status(response, 302)
        self.assertRedirects(response, url_for('add_lon.new'))
    def test_get_all_laws_successful(self, mock_service):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Top Level"

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        mock_service.get_all_stat_provs.return_value = ["abc", "def"]
        response = self.client.get(url_for('add_land_charge.search_law'))

        self.assert_status(response, 200)
        self.assert_template_used('search_law.html')
        self.assertIn("abc", response.data.decode())
        self.assertIn("def", response.data.decode())
    def test_post_success(self, mock_current_app):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.post(url_for('add_land_charge.post_charge_type'), data={
            'charge-type': 'ABC'
        })

        calls = [call("Updating session object with charge type: %s", "ABC")]
        mock_current_app.logger.info.assert_has_calls(calls)
        self.assert_status(response, 302)
        self.assertRedirects(response, url_for('add_land_charge.get_sub_category'))
Exemplo n.º 24
0
    def test_expiry_post_dates(self, mock_review_router):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        mock_review_router.get_redirect_url.return_value = url_for(
            'add_land_charge.get_additional_info')

        state = LocalLandChargeItem()
        state.geometry = "abc"

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.post(url_for('add_land_charge.post_expiry'),
                                    data=EXPIRED_REQUEST)

        self.assert_status(response, 302)
        self.assertRedirects(response,
                             url_for('add_land_charge.get_additional_info'))
Exemplo n.º 25
0
    def test_get_successful(self):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Top Level"
        state.statutory_provision = "test statutory provision"

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.get(
            url_for('add_land_charge.get_law_document_confirmation'))

        self.assert_status(response, 200)
        self.assert_template_used('confirm_law_and_document.html')
        self.assertIn("test statutory provision", response.data.decode())
    def test_post_sub_category_success_dont_know_category(self):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Top Level"

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.post(
            url_for('add_land_charge.post_sub_category'),
            data={'charge-sub-category': "I don't know the charge category"})

        self.assert_status(response, 302)
        self.assertRedirects(
            response, url_for("add_land_charge.get_subcategory_not_known"))
    def test_location_post_validation_errors(self, mock_location_validator):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')
        self.mock_session.return_value.user.permissions = [
            Permissions.vary_llc
        ]
        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.local_land_charge = 9372254

        self.mock_session.return_value.add_charge_state = state
        validation_errors = {'map': 'test error message'}
        mock_location_validator.validate.return_value.errors = validation_errors
        response = self.client.post(
            url_for('modify_land_charge.post_update_location_confirmation'))

        self.assert_status(response, 400)
        self.assert_template_used('update_location_confirmation.html')
    def test_get_legal_document_redirects_to_new_when_details_none(
            self, mock_current_app):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"
        state.charge_type = "Top Level"

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]
        self.mock_session.return_value.category_details = None

        response = self.client.get(
            url_for('add_land_charge.get_legal_document'))

        calls = [call("Redirecting to: %s", "/add-local-land-charge")]
        mock_current_app.logger.info.assert_has_calls(calls)
        self.assert_status(response, 302)
        self.assertRedirects(response, url_for('add_land_charge.new'))
    def test_get_charge_type_success(self, mock_service):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"

        mock_service.get_categories.return_value = [
            {"name": "ABC", "display": "ABC Display"},
            {"name": "DEF", "display": "DEF Display"}
        ]

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.get(url_for('add_land_charge.get_charge_type'))

        self.assert_status(response, 200)
        self.assert_template_used('charge_type.html')
        self.assertIn("ABC Display", response.data.decode())
        self.assertIn("DEF Display", response.data.decode())
    def test_post_success_yes(self, mock_current_app):
        self.client.set_cookie('localhost', Session.session_cookie_name,
                               'cookie_value')

        state = LocalLandChargeItem()
        state.geometry = "abc"

        self.mock_session.return_value.add_charge_state = state
        self.mock_session.return_value.user.permissions = [Permissions.add_llc]

        response = self.client.post(
            url_for('add_land_charge.post_financial_charge'),
            data={'amount-known-indicator': 'Yes'})

        calls = [
            call("Endpoint called with amount-known-indicator = '%s'", "Yes")
        ]
        mock_current_app.logger.info.assert_has_calls(calls)
        self.assert_status(response, 302)
        self.assertRedirects(
            response, url_for('add_land_charge.get_financial_charge_details'))