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_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_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_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_law_redirects_to_new_when_stat_prov_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" category = Category(name="top-level", display_name="Top Level", sub_categories=[], parent=None, statutory_provisions=None, 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')) 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_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_all_laws_success_nojs_charge_date(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="Top Level", display_name="Top Level", sub_categories=[], parent=None, statutory_provisions=[], instruments=["abc"]) 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-nojs": "abc"}) self.assert_status(response, 302) self.assertRedirects(response, url_for('add_land_charge.get_charge_date'))
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_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_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_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_law_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.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_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_post_success_update_type(self, mock_current_app): self.client.set_cookie('localhost', Session.session_cookie_name, 'cookie_value') state = LocalLandChargeItem() state.geometry = "abc" state.charge_type = "def" 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_post_all_laws_validation_errors_not_on_list(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.post(url_for('add_land_charge.post_search_law'), data={"legislation": "ghi"}) self.assert_status(response, 400) self.assert_template_used('search_law.html') self.assertIn("abc", response.data.decode()) self.assertIn("def", response.data.decode()) self.assertIn("There are errors on this page", response.data.decode()) self.assertIn("ghi is not a valid selection for law", response.data.decode())
def test_post_law_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" category = Category(name="Light obstruction notice", display_name="Top Level", sub_categories=[], parent=None, statutory_provisions=["abc", "def", "ghi"], instruments=["abc"]) 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": "abc"}) self.assert_status(response, 302) self.assertRedirects(response, url_for('add_lon.new'))