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'))
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'))
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)
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')
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'))
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"))
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'))
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'))
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'))