Ejemplo n.º 1
0
    def test_financial_charge_roi_and_missing_amount(self):
        payload = payloads.financial_charge_roi_and_missing_amount
        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(
            data, "'amount-originally-secured' is a required property", "$.")
        assert result_contains_at(
            data,
            "Additional properties are not allowed ('rate-of-interest' was unexpected)",
            "$.")
Ejemplo n.º 2
0
    def test_legacy_fields(self):
        payload = payloads.simple_charge_legacy_fields
        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(data,
                                  "['old-register-part']} is not allowed",
                                  "$.")
        assert result_contains_at(
            data, "'migration-supplier' is a required property", "$.")
        assert result_contains_at(
            data, "'migrating-authority' is a required property", "$.")
Ejemplo n.º 3
0
    def test_s52_charge_missing_fields(self):
        payload = payloads.s52_charge_missing_fields
        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(
            data, "'land-capacity-description' is a required property", '$.')
        assert result_contains_at(
            data, "'land-compensation-amount-type' is a required property",
            '$.')
        assert result_contains_at(
            data, "'land-compensation-paid' is a required property", '$.')
Ejemplo n.º 4
0
    def test_s8_fields_too_large(self):
        payload = copy.deepcopy(payloads.simple_charge_with_s8_field)
        payload['land-works-particulars'] = text_401_chars
        payload['land-sold-description'] = text_401_chars
        payload['charge-type'] = 'Land compensation'
        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(data,
                                  "'{}' is too long".format(text_401_chars),
                                  '$.land-works-particulars')
        assert result_contains_at(data,
                                  "'{}' is too long".format(text_401_chars),
                                  '$.land-sold-description')
Ejemplo n.º 5
0
 def test_migrated_missing_fields(self):
     payload = payloads.simple_migrated_charge_missing_fields
     response = self.app.post('/validate',
                              data=json.dumps(payload),
                              headers={'Content-Type': 'application/json'})
     data = json.loads(response.data.decode())
     self.assertEqual(response.status_code, 400)
     assert result_contains_at(
         data, "'old-register-part' is a required property", "$.")
Ejemplo n.º 6
0
 def test_lca_s52_invalid_paid(self):
     payload = copy.deepcopy(payloads.s52_charge)
     payload['land-compensation-paid'] = "£100000"
     response = self.app.post('/validate',
                              data=json.dumps(payload),
                              headers={'Content-Type': 'application/json'})
     data = json.loads(response.data.decode())
     self.assertEqual(response.status_code, 400)
     assert result_contains_at(data, "'£100000' does not match",
                               "$.land-compensation-paid")
Ejemplo n.º 7
0
    def test_financial_charge_invalid_amount(self):
        payload = payloads.financial_charge_invalid_amount
        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(data, "'0.2' does not match '",
                                  "$.amount-originally-secured")
Ejemplo n.º 8
0
    def test_financial_charge_invalid_roi(self):
        payload = payloads.financial_charge_invalid_roi
        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(data, "'None' does not match",
                                  "$.rate-of-interest")
Ejemplo n.º 9
0
 def test_lon_charge_no_certificates(self):
     payload = payloads.lon_charge_no_certificates
     response = self.app.post('/validate',
                              data=json.dumps(payload),
                              headers={'Content-Type': 'application/json'})
     data = json.loads(response.data.decode())
     self.assertEqual(response.status_code, 400)
     assert result_contains_at(
         data,
         "'tribunal-temporary-certificate-expiry-date' is a required property",
         "$.")
     assert result_contains_at(
         data,
         "'tribunal-temporary-certificate-date' is a required property",
         "$.")
     assert result_contains_at(
         data,
         "'tribunal-definitive-certificate-date' is a required property",
         "$.")
Ejemplo n.º 10
0
 def test_lon_charge_missing_field(self):
     payload = payloads.lon_charge_missing_field
     response = self.app.post('/validate',
                              data=json.dumps(payload),
                              headers={'Content-Type': 'application/json'})
     data = json.loads(response.data.decode())
     self.assertEqual(response.status_code, 400)
     assert result_contains_at(data,
                               "'applicant-name' is a required property",
                               "$.")
Ejemplo n.º 11
0
    def test_sub_category_missing_charge_sub_category(self):
        payload = copy.deepcopy(payloads.simple_charge)
        del payload['charge-sub-category']

        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(
            data, "'charge-sub-category' is a required property", "$.")
Ejemplo n.º 12
0
    def test_array_provision(self):
        payload = payloads.simple_charge_array_provision
        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(
            data,
            "Additional properties are not allowed ('statutory-provisions' was unexpected)",
            "$.")
Ejemplo n.º 13
0
    def test_lca_s52_invalid_amount_type(self):
        payload = copy.deepcopy(payloads.s52_charge)
        payload['land-compensation-amount-type'] = "Invalid type"
        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(
            data,
            "'Invalid type' is not one of ['Agreed amount', 'Estimated amount']",
            "$.land-compensation-amount-type")
Ejemplo n.º 14
0
    def test_lca_s52_with_s8_field(self):
        payload = copy.deepcopy(payloads.s52_charge)
        payload['land-sold-description'] = "Invalid"
        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(
            data,
            "Additional properties are not allowed ('land-sold-description' was unexpected)",
            "$.")
Ejemplo n.º 15
0
    def test_invalid_financial_field(self):
        payload = payloads.simple_charge_with_financial_field
        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        self.assertEqual(len(data), 1)
        assert result_contains_at(
            data,
            "Additional properties are not allowed ('rate-of-interest' was unexpected)",
            "$.")
Ejemplo n.º 16
0
    def test_sub_category_invalid_sub_category_type(self):
        payload = copy.deepcopy(payloads.simple_charge)
        payload['charge-sub-category'] = 'Not a valid sub-category'

        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(
            data,
            "'Not a valid sub-category' is not one of ['Change a development', ",
            "$.charge-sub-category")
Ejemplo n.º 17
0
 def test_servient_limited_no_units(self):
     payload = copy.deepcopy(payloads.lon_charge_without_position_dimension)
     payload['structure-position-and-dimension'] = {
         'height': '40',
         'extent-covered': 'All of the extent'
     }
     response = self.app.post('/validate',
                              data=json.dumps(payload),
                              headers={'Content-Type': 'application/json'})
     data = json.loads(response.data.decode())
     self.assertEqual(response.status_code, 400)
     assert result_contains_at(
         data, " is not valid under any of the given schemas",
         "$.structure-position-and-dimension")
Ejemplo n.º 18
0
    def test_sub_category_mismatching_sub_category(self):
        payload = copy.deepcopy(payloads.simple_charge)
        payload['charge-sub-category'] = 'Smoke control order'

        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        data = json.loads(response.data.decode())
        self.assertEqual(response.status_code, 400)
        assert result_contains_at(
            data,
            "'Smoke control order' is not one of ['Approval under house in multiple "
            "occupation (HMO)', 'Grant', 'Interim certificate under HMO',",
            "$.charge-sub-category")
Ejemplo n.º 19
0
    def test_sub_category_invalid_charge_type(self):
        payload = copy.deepcopy(payloads.simple_charge)
        payload['charge-type'] = 'Not a valid charge type'

        response = self.app.post('/validate',
                                 data=json.dumps(payload),
                                 headers={'Content-Type': 'application/json'})

        self.assertEqual(response.status_code, 400)
        data = json.loads(response.data.decode())
        assert result_contains_at(
            data,
            "'Not a valid charge type' is not one of ['Planning', 'Listed building', "
            "'Housing', 'Other', 'Land compensation', 'Financial', 'Light obstruction notice']",
            "$.charge-type")
Ejemplo n.º 20
0
 def test_lon_charge_wrong_type(self):
     payload = payloads.lon_charge_wrong_type
     response = self.app.post('/validate',
                              data=json.dumps(payload),
                              headers={'Content-Type': 'application/json'})
     data = json.loads(response.data.decode())
     self.assertEqual(response.status_code, 400)
     assert result_contains_at(data,
                               "Additional properties are not allowed",
                               "$.")
     assert result_contains_at(
         data, "tribunal-temporary-certificate-expiry-date", "$.")
     assert result_contains_at(data, "documents-filed", "$.")
     assert result_contains_at(data, "structure-position-and-dimension",
                               "$.")
     assert result_contains_at(data, "tribunal-temporary-certificate-date",
                               "$.")
     assert result_contains_at(data, "applicant-name", "$.")
     assert result_contains_at(data, "applicant-address", "$.")