def post(self, request): """Handle a Mobilisation submission.""" try: create_mobilisation_visit(request.data) except IntegrityError: logger.error("Mobilisation submission already exists.") status_response = status.HTTP_202_ACCEPTED else: status_response = status.HTTP_201_CREATED return Response(status=status_response)
def fetch_mobilisation(): """Fetch mobilisation submissions.""" formid = getattr(settings, "MOBILISATION_FORM_ID", None) if formid: data_ids = get_missing_ids(formid, Mobilisation) for data_id in data_ids: data = fetch_form_data(formid, dataid=data_id) if data: try: create_mobilisation_visit(data) except IntegrityError: logger.exception("{} Record not found.".format(formid)) continue
def test_create_mobilisation_visit(self): """Test create_mobilisation_visit() function.""" data_setup() mobilisation_visit = create_mobilisation_visit(MOBILISATION_VISIT_DATA) self.assertIsInstance(mobilisation_visit, Mobilisation) self.assertTrue(mobilisation_visit.is_mobilised) self.assertTrue(mobilisation_visit.spray_area.is_mobilised)
def test_link_mobilisation_visit_via_spatial_query(self): """Test create_mobilisation_visit() function.""" data_setup() gps_data = MOBILISATION_VISIT_DATA.copy() self.assertEqual(gps_data['spray_area'], '01_1') gps_data["osmstructure:way:id"] = 525683350 gps_data['osmstructure:ctr:lat'] = -15.418780034209806 gps_data['osmstructure:ctr:lon'] = 28.35196267147328 mobilisation = create_mobilisation_visit(gps_data) self.assertIsNotNone(mobilisation.spray_area) self.assertIsInstance(mobilisation, Mobilisation) self.assertEqual(mobilisation.spray_area.name, 'Akros_1')
def test_link_mobilisation_via_spray_area(self): """Test create_mobilisation_visit() function.""" data_setup() gps_data = MOBILISATION_VISIT_DATA.copy() self.assertEqual(gps_data['spray_area'], '01_1') gps_data["osmstructure:way:id"] = 528516754 gps_data['osmstructure:ctr:lat'] = None gps_data['osmstructure:ctr:lon'] = None gps_data['spray_area'] = 'Akros_1' mobilisation = create_mobilisation_visit(gps_data) self.assertEqual(mobilisation.spray_area.name, 'Akros_1') self.assertIsNotNone(mobilisation.spray_area) self.assertIsInstance(mobilisation, Mobilisation)