class BoundaryDatasetsIDsView(viewsets.ViewSet): serializer_class = BoundaryDatasetIDSerializer store = BoundaryStore() def list(self, request): try: boundaries_datasets_ids = self.store.boundary_datasets_ids() except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) serializer = self.serializer_class(instance=boundaries_datasets_ids, many=True) return Response(serializer.data) def retrieve(self, request, pk=None): if pk == 'last': try: boundary_datasets_last_id = self.store.boundary_datasets_last_id( ) except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) serializer = self.serializer_class( instance=boundary_datasets_last_id) return Response(serializer.data)
def test_API_polygon_P11(self): print('TEST START') store = BoundaryStore() store.dropAll() for person in self.bds: if person['person'] == '11': bds = [] for boundaries in person['boundaries']: data = {} boundary_id = '' for polygon in boundaries: boundary_id = boundary_id + polygon['properties']['id'] data[polygon['properties']['id']] = polygon['properties'] bds.append({'boundary': boundary_id, 'data': data}) boundary_dataset = {"id": "persona11", 'boundary_data_set': bds} # POST BOUNDARY_DATASETS TEST r = requests.post('http://127.0.0.1:8000/bdatasets/', json=boundary_dataset) assert r.status_code == 201 # GET BOUNDARY (POLYGON) TEST params = { 'dlx': '-0.929656', 'dly': '41.614571', 'urx': '-0.920650', 'ury': '41.627084' } boundaries = ['RP22220716588$)))))7326$))7$))8$)))38$)))42$))4$))5$))6$))7$))8$)))50$))1$))2$))3$))4$))5$))6$))7$))8$)))61$))2$))3$))4$))5$))6$))7$))8$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))80$))1$))2$))3$))4$))5$))6$))7$))8$))))406$)))30$))1$))2$))3$))4$))5$))6$))7$))8$)))43$))4$))6$))7$))8$)))56$)))60$))1$))2$))3$))4$))5$))6$))7$))8$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))80$))1$))2$))3$))4$))5$))6$))7$))8$))))563$))4$))6$))7$))8$)))76$))))601$))2$)))10$))1$))2$))3$))4$))5$))8$)))20$))1$))2$))3$))4$))5$))6$))7$))8$)))52$))))700$))1$))2$))3$))4$))5$))6$))7$))8$)))10$))1$))2$))3$))4$))5$))6$))7$))8$)))20$))1$))2$))3$))4$))5$))6$))7$)))30$))1$))2$)))40$))))800$))1$))2$))3$))4$)))10$))1$))))))22458$)))82$))5$))8$))))533$))4$))6$))7$))8$)))60$))1$))2$))3$))4$))5$))6$))7$))8$)))70$))3$))4$))6$))7$))8$)))86$))))721$))2$))4$))5$))7$))8$)))51$))2$))3$))4$))5$))6$))7$))8$)))78$)))80$))1$))2$))3$))4$))5$))6$))))800$))1$))2$))3$))4$))5$))6$))7$))8$)))10$))1$))2$))3$))4$))5$))6$))7$))8$)))20$))1$))3$))4$))5$))6$))7$))8$)))30$))1$))2$))3$))4$))5$))6$))7$))8$)))40$))1$))2$))3$))4$))5$))6$))7$)))50$))1$))2$))3$)))60$))1$))2$)))))4115$))6$))7$))8$)))23$))4$))6$))7$))8$)))31$))2$))4$))5$)))40$))1$))2$))3$))4$))5$))8$)))50$))1$))2$))3$))4$))5$))6$))7$))8$))))230$))3$))6$))7$)))60$))1$))2$)))))))800606$))))))))))))))', 'RP22220476527$))8$)))35$))7$))8$)))42$))3$))4$))5$))6$))7$))8$)))50$))1$))2$))3$))4$))5$))6$))7$))8$)))62$)))70$))1$))2$))3$))4$))5$))8$)))80$))1$))2$))3$))4$))5$))6$))7$))8$))))820$))1$))2$))5$)))))7304$))5$))6$))7$))8$)))10$))1$))2$))3$))4$))5$))6$))7$))8$)))26$)))30$))1$))2$))3$))4$))5$))6$))7$))8$)))40$))1$))2$))3$))4$))5$))6$))7$))8$)))50$))3$))6$)))60$))1$))2$))3$))4$))5$))6$))7$))8$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))80$))3$))6$))))600$))1$))2$))3$))4$))5$))6$))7$))8$)))10$))1$))2$))3$))4$))5$))6$))7$))8$)))20$))3$))6$)))32$)))40$))1$))2$))4$))5$)))))))708018$)))26$))7$))8$)))51$))2$))))103$))4$))5$))6$))7$))8$)))11$))2$))3$))4$))5$))6$))7$))8$)))20$))1$))2$))3$))4$))5$))6$))7$))8$)))30$))1$))2$)))40$))1$))2$))4$))5$)))50$))1$))2$))3$))4$))5$))))200$))3$))4$))6$))7$)))30$))1$))2$))3$))4$))5$))8$)))43$))6$))))))20014$))5$))8$)))23$))4$))5$))6$))7$))8$)))50$))1$))2$))4$))5$))8$))))103$))4$))6$))7$))8$)))16$))7$))8$)))26$))7$))8$)))30$))1$))2$))3$))4$))5$))6$))7$))8$)))40$))1$))2$))3$))4$))5$))6$))7$))8$)))50$))1$))2$))3$))4$))5$))6$))7$))8$)))60$))1$))2$))4$))5$))8$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))80$))1$))2$))3$))4$))6$))))206$))7$)))30$))1$))2$))3$))4$))5$))6$))7$))8$)))40$))1$))3$)))60$))))410$))1$))))))))))))))', 'RP22220713067$))8$)))76$))7$))8$)))86$))7$))8$))))166$))7$))8$)))76$))7$))8$)))86$))7$))8$))))266$))7$))8$))))302$)))10$))1$))2$))3$))4$))5$))7$))8$)))20$))1$))2$))3$))4$))5$))6$))7$))8$)))42$)))50$))1$))2$))4$))5$))8$))))400$))1$))2$))3$))4$))5$))6$))7$))8$)))10$))1$))2$))3$))4$))5$))6$))7$))8$)))20$))1$))2$))3$))4$))5$))6$))7$))8$)))30$))1$))2$))3$))4$))5$))6$))7$))8$)))40$))1$))2$))3$))4$))5$))6$))7$))8$)))50$))1$))2$))3$))4$))5$))6$))7$)))60$))1$))2$))4$))5$))8$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))80$))1$))3$))))500$))1$))3$))6$))))710$))1$))2$)))))4688$))))766$))7$))8$)))74$))5$))6$))7$))8$)))83$))4$))5$))6$))7$))8$))))863$))4$))5$))6$))7$))8$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))80$))1$))3$)))))7100$))1$))2$))5$)))10$))1$))2$))3$))4$))5$))8$)))20$))1$))2$))3$))4$))5$))6$))7$))8$)))51$))2$))))200$))1$))2$))3$))4$))5$))6$))7$))8$)))10$))1$))3$)))30$))1$))2$))4$))))))24357$))8$)))82$))))436$))7$)))60$))1$))2$))3$))4$))5$))7$))8$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))80$))1$))2$))3$))4$))5$))6$))7$))8$))))560$))1$))2$))3$))4$))5$))6$))7$))8$)))73$))4$))5$))6$))7$))8$)))83$))4$))5$))6$))7$))8$))))702$)))10$))1$))2$))3$))4$))5$))7$))8$)))20$))1$))2$))3$))4$))5$))6$))7$))8$)))42$)))50$))1$))2$))3$))4$))5$))7$))8$)))82$))))800$))1$))2$))3$))4$))5$))6$))7$))8$)))10$))1$))2$))3$))4$))5$))6$))7$))8$)))20$))1$))2$))3$))4$))5$))6$))7$))8$)))30$))1$))2$))3$))4$))5$))6$))7$))8$)))40$))1$))2$))3$))4$))5$))6$))7$))8$)))50$))1$))2$))3$))4$))5$))6$)))60$))1$))2$))3$))4$))5$))7$)))70$))1$))2$))3$)))))5363$))4$))5$))6$))7$))8$)))73$))6$))7$))8$)))86$))))600$))1$))2$))3$))4$))5$))6$))7$))8$)))10$))1$))2$))3$)))30$))))))))))))))'] r = requests.get('http://127.0.0.1:8000/boundaries/', params=params) assert r.status_code == 200 num_boundaries = 0 for boundary in r.json(): assert boundaries.__contains__(boundary['AUID']) num_boundaries = num_boundaries + 1 assert num_boundaries == len(boundaries) store.dropAll() print('TEST FINISH')
def test_API_polygon_P26(self): print('TEST START') store = BoundaryStore() store.dropAll() for person in self.bds: if person['person'] == '26': bds = [] for boundaries in person['boundaries']: data = {} boundary_id = '' for polygon in boundaries: boundary_id = boundary_id + polygon['properties']['id'] data[polygon['properties']['id']] = polygon['properties'] bds.append({'boundary': boundary_id, 'data': data}) boundary_dataset = {"id": "persona26", 'boundary_data_set': bds} # POST BOUNDARY_DATASETS TEST r = requests.post('http://127.0.0.1:8000/bdatasets/', json=boundary_dataset) assert r.status_code == 201 # GET BOUNDARY (POLYGON) TEST params = { 'dlx': '-0.869159', 'dly': '41.643394', 'urx': '-0.863760', 'ury': '41.654733' } boundaries = ['RP22220488768$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))83$))4$))6$))7$))8$)))))))722102$)))10$))1$))2$))5$)))20$))1$))2$))3$))4$))5$)))64$))5$))6$))7$))8$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))80$))3$))4$))6$))7$))8$))))200$))1$))3$))4$))5$))6$))7$))8$)))13$))6$))7$))8$)))40$))1$))2$)))50$))1$))3$))4$))5$)))66$))))315$))6$))7$))8$)))21$))2$))3$))4$))5$))6$))7$))8$)))40$))1$))2$)))50$))1$))2$))))400$))1$))2$))3$))4$))5$))6$))7$))8$)))10$))1$))2$))3$))4$))5$))6$))7$))8$)))20$))1$))2$))3$))4$))5$))6$))7$))8$)))30$))1$))2$)))40$))1$))2$))4$))5$)))50$))1$))2$))3$))4$))5$))))500$))1$))3$))4$))5$))6$))7$))8$)))30$))1$)))))4482$))4$))5$))7$))8$))))536$))7$)))60$))1$))2$))3$))4$))5$))6$))7$))8$)))73$))4$))6$))7$))8$))))800$))1$))2$))4$))5$)))10$))1$))2$))3$))4$))5$))6$))7$))8$)))20$))3$))4$))5$))6$))7$))8$)))42$)))50$))1$)))))5606$)))))))800033$))6$))7$))))))))))))))', 'RP22220722576$))7$))8$)))83$))4$))5$))6$))7$))8$))))717$))8$)))24$))5$))6$))7$))8$)))41$))2$)))50$))1$))2$))3$))4$))5$))7$))8$)))82$))))800$))1$))2$))3$))4$))5$))6$))7$))8$)))10$))1$))2$))3$))4$))5$))6$))7$))8$)))20$))1$))2$))3$))4$))5$))6$))7$))8$)))30$))1$))2$))3$))4$))5$))6$))7$))8$)))40$))1$))2$))3$))4$))5$))6$))7$))8$)))50$))1$))2$))3$))4$))5$))6$))7$))8$)))60$))1$))2$))3$))4$))5$))7$))8$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))80$))1$))2$))3$))4$))5$))6$))7$)))))5202$)))10$))1$))2$)))))))800360$))1$))2$))3$))4$))5$))6$))7$))8$)))73$))4$))5$))6$))7$))8$)))86$))7$))8$))))600$))1$))2$))3$))4$))5$))6$))7$))8$)))10$))1$))2$))3$))4$))5$))6$))7$))8$)))20$))1$))2$))3$))4$))5$))6$))7$))8$)))30$))1$))2$))3$))4$))5$))6$))7$))8$)))40$))1$))2$))3$))4$))5$))6$)))50$))1$)))60$))1$))3$))))700$))1$))2$))3$))4$))6$))))))))))))))'] r = requests.get('http://127.0.0.1:8000/boundaries/', params=params) assert r.status_code == 200 num_boundaries = 0 for boundary in r.json(): assert boundaries.__contains__(boundary['AUID']) num_boundaries = num_boundaries + 1 assert num_boundaries == len(boundaries) store.dropAll() print('TEST FINISH')
def test_API_polygon_P21(self): print('TEST START') store = BoundaryStore() store.dropAll() for person in self.bds: if person['person'] == '21': bds = [] for boundaries in person['boundaries']: data = {} boundary_id = '' for polygon in boundaries: boundary_id = boundary_id + polygon['properties']['id'] data[polygon['properties']['id']] = polygon['properties'] bds.append({'boundary': boundary_id, 'data': data}) boundary_dataset = {"id": "persona21", 'boundary_data_set': bds} # POST BOUNDARY_DATASETS TEST r = requests.post('http://127.0.0.1:8000/bdatasets/', json=boundary_dataset) assert r.status_code == 201 # GET BOUNDARY (POLYGON) TEST params = { 'dlx': '-0.90267', 'dly': '41.64054', 'urx': '-0.89886', 'ury': '41.64299' } boundaries = ['RP22220720638$)))46$))7$))8$)))53$))4$))5$))6$))7$))8$)))60$))1$))2$))3$))4$))5$))6$))7$))8$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))80$))1$))2$))3$))4$))5$))6$))7$))8$))))733$))4$))6$))7$))8$)))46$))7$)))60$))1$))2$))3$))4$))5$))6$))7$))8$)))70$))1$))2$))3$))4$))5$))6$))7$))8$)))80$))3$))4$))5$))6$))7$))8$))))866$)))))3001$))2$))5$)))10$))1$))2$))3$))4$))5$))7$))8$)))20$))1$))2$))3$))4$))5$))6$))7$))8$)))50$))1$))2$))5$))))100$))1$))2$))3$))4$))5$))6$))7$))8$)))10$))1$))2$))3$))4$))5$))6$))7$))8$)))20$))1$))2$))3$))4$)))30$))1$))2$))3$))4$))5$))7$))8$)))40$))1$))3$))4$))6$))))))))))))))'] r = requests.get('http://127.0.0.1:8000/boundaries/', params=params) assert r.status_code == 200 num_boundaries = 0 for boundary in r.json(): assert boundaries.__contains__(boundary['AUID']) num_boundaries = num_boundaries + 1 assert num_boundaries == len(boundaries) store.dropAll() print('TEST FINISH')
def test_API(self, n_person): print('TEST START') store = BoundaryStore() store.dropAll() boundary_dataset_test = {} all_bds_test = [] all_boundaries = [] boundary_test = [] test_boundary_id = '' number_person = 0 test_person_number = '' for person in self.bds[0:n_person]: number_person = number_person + 1 bds = [] bds_test = [] for boundaries in person['boundaries']: data = {} boundary_id = '' for polygon in boundaries: boundary_id = boundary_id + polygon['properties']['id'] data[polygon['properties']['id']] = polygon['properties'] bds.append({'boundary': boundary_id, 'data': data}) optB = Boundary(boundary_ID=BoundaryID(boundary_id)).optimize() bds_test.append({'AUID': optB.boundary_ID.value, 'boundary': optB.AUID_to_CUIDs(), 'data': data}) all_boundaries.append({'AUID': optB.boundary_ID.value, 'boundary': optB.AUID_to_CUIDs(), 'data': data}) test_boundary_id = boundary_id boundary_test = [{'AUID': optB.boundary_ID.value, 'boundary': optB.AUID_to_CUIDs(), 'data': data}] boundary_dataset = {"id": "persona" + str(number_person), 'boundary_data_set': bds} test_person_number = "persona" + str(number_person) boundary_dataset_test = {"id": "persona" + str(number_person), 'boundary_data_set': bds_test} all_bds_test.append(boundary_dataset_test) # POST BOUNDARY_DATASETS TEST r = requests.post('http://127.0.0.1:8000/bdatasets/', json=boundary_dataset) assert r.status_code == 201 # GET ALL BOUNDARY_DATASETS TEST r = requests.get('http://127.0.0.1:8000/bdatasets/') assert r.status_code == 200 json_test = json.dumps(all_bds_test) json_data = json.dumps(r.json()) assert json_test == json_data # GET BOUNDARY_DATASET TEST r = requests.get('http://127.0.0.1:8000/bdatasets/' + test_person_number) assert r.status_code == 200 json_test = json.dumps([boundary_dataset_test]) json_data = json.dumps(r.json()) assert json_test == json_data # GET BOUNDARY IN BOUNDARY_DATASET TEST r = requests.get('http://127.0.0.1:8000/bdatasets/' + test_person_number + "/" + test_boundary_id) assert r.status_code == 200 boundary_in_boundary_dataset = {"id": test_person_number, 'boundary_data_set': boundary_test} json_test = json.dumps([boundary_in_boundary_dataset]) json_data = json.dumps(r.json()) assert json_test == json_data # GET ALL BOUNDARIES TEST r = requests.get('http://127.0.0.1:8000/boundaries/') assert r.status_code == 200 json_test = json.dumps(all_boundaries) json_data = json.dumps(r.json()) assert json_test == json_data # GET BOUNDARY TEST r = requests.get('http://127.0.0.1:8000/boundaries/' + test_boundary_id) assert r.status_code == 200 json_test = json.dumps(boundary_test) json_data = json.dumps(r.json()) assert json_test == json_data # DELETE BOUNDARY TEST r = requests.delete('http://127.0.0.1:8000/boundaries/' + test_boundary_id) assert r.status_code == 204 r = requests.get('http://127.0.0.1:8000/boundaries/') assert r.status_code == 200 all_boundaries.pop() json_test = json.dumps(all_boundaries) json_data = json.dumps(r.json()) assert json_test == json_data store.dropAll() print('TEST FINISH')
class BoundaryDatasetsView(viewsets.ViewSet): serializer_class = BoundaryDatasetSerializer update_bds_serializer_class = BoundaryDatasetUpdateSerializer update_boundary_serializer_class = BoundaryDataUpdateSerializer store = BoundaryStore() def list(self, request): try: boundaries_datasets = self.store.all_boundary_datasets() except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) serializer = self.serializer_class(instance=boundaries_datasets, many=True) return Response(serializer.data) def create(self, request): serializer = self.serializer_class(data=request.data) if serializer.is_valid(): try: serializer.save(store=self.store) except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response({ 'status': 'Bad request', }, status=status.HTTP_400_BAD_REQUEST) def retrieve(self, request, bds=None, pk=None): if bds is not None: if not re.match(r'^[A-Za-z0-9]+$', pk): return Response({ 'status': 'Bad request', }, status=status.HTTP_400_BAD_REQUEST) try: boundary_dataset = self.store.query_by_boundary_in_boundary_datasets( bds, Boundary(boundary_ID=BoundaryID(pk))) except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) serializer = self.serializer_class(instance=boundary_dataset, many=True) else: try: boundary_dataset = self.store.query_by_boundary_dataset_id(pk) except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) serializer = self.serializer_class(instance=boundary_dataset, many=True) return Response(serializer.data) def update(self, request, bds=None, pk=None): if bds is not None: print(request.data) serializer = self.update_boundary_serializer_class( data=request.data) if serializer.is_valid(): try: result = serializer.save(store=self.store, bds_id=bds, boundary_id=pk) if result == 0: return Response(status=status.HTTP_404_NOT_FOUND) except: return Response( { 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response({ 'status': 'Bad request', }, status=status.HTTP_400_BAD_REQUEST) else: serializer = self.update_bds_serializer_class(data=request.data) if serializer.is_valid(): try: serializer.save(store=self.store, bds_id=pk) except: return Response( { 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response({ 'status': 'Bad request', }, status=status.HTTP_400_BAD_REQUEST) def destroy(self, request, bds=None, pk=None): if bds is not None: if not re.match(r'^[A-Za-z0-9]+$', pk): return Response({ 'status': 'Bad request', }, status=status.HTTP_400_BAD_REQUEST) try: result = self.store.delete_boundary_in_boundary_datasets( bds, Boundary(boundary_ID=BoundaryID(pk))) if result == 0: return Response(status=status.HTTP_404_NOT_FOUND) else: return Response(status=status.HTTP_204_NO_CONTENT) except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) else: try: result = self.store.delete_boundary_dataset(pk) if result == 0: return Response(status=status.HTTP_404_NOT_FOUND) else: return Response(status=status.HTTP_204_NO_CONTENT) except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
class BoundaryView(viewsets.ViewSet): serializer_class = BoundaryDataSerializer store = BoundaryStore() def list(self, request): dlx = self.request.query_params.get('dlx', None) dly = self.request.query_params.get('dly', None) drx = self.request.query_params.get('drx', None) dry = self.request.query_params.get('dry', None) urx = self.request.query_params.get('urx', None) ury = self.request.query_params.get('ury', None) ulx = self.request.query_params.get('ulx', None) uly = self.request.query_params.get('uly', None) if (dlx and dly and drx and dry and urx and ury and ulx and uly) is not None: polygon = [[[float(dlx), float(dly)], [float(drx), float(dry)], [float(urx), float(ury)], [float(ulx), float(uly)], [float(dlx), float(dly)]]] try: boundaries = self.store.query_by_polygon(polygon) except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) serializer = self.serializer_class(instance=boundaries, many=True) elif ((dlx and dly and urx and ury) is not None) and ((drx and dry and ulx and uly) is None): polygon = [[[float(dlx), float(dly)], [float(urx), float(dly)], [float(urx), float(ury)], [float(dlx), float(ury)], [float(dlx), float(dly)]]] print(polygon) try: boundaries = self.store.query_by_polygon(polygon) except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) serializer = self.serializer_class(instance=boundaries, many=True) else: try: boundaries_datasets = self.store.all_boundaries() except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) serializer = self.serializer_class(instance=boundaries_datasets, many=True) return Response(serializer.data) def retrieve(self, request, pk=None, boundary=None): if not re.match(r'^[A-Za-z0-9]+$', pk): return Response({ 'status': 'Bad request', }, status=status.HTTP_400_BAD_REQUEST) try: boundaries = self.store.query_by_boundary( Boundary(boundary_ID=BoundaryID(pk))) except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR) serializer = self.serializer_class(instance=boundaries, many=True) return Response(serializer.data) def destroy(self, request, pk=None): if not re.match(r'^[A-Za-z0-9]+$', pk): return Response({ 'status': 'Bad request', }, status=status.HTTP_400_BAD_REQUEST) try: result = self.store.delete_boundary( Boundary(boundary_ID=BoundaryID(pk))) if result == 0: return Response(status=status.HTTP_404_NOT_FOUND) else: return Response(status=status.HTTP_204_NO_CONTENT) except: return Response({ 'status': 'Bad request', }, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def test_API_polygon_11(self): print('TEST START') store = BoundaryStore(MongoClient(port=27017).bds) store.dropAll() i = 0 data = {} bds = [] boundary_id = '' for polygon in self.shapes: if i != 0: bds.append({'boundary': boundary_id, 'data': data}) optB = Boundary(boundary_ID=BoundaryID(boundary_id)).optimize() data = {} boundary_id = '' boundary_id = boundary_id + polygon['properties']['id'] data[polygon['properties']['id']] = polygon['properties'] i = i + 1 boundary_dataset = {'boundary_data_set': bds} # POST BOUNDARY_DATASETS TEST r = requests.post('http://127.0.0.1:8000/bdatasets/', json=boundary_dataset) assert r.status_code == 201 # GET BOUNDARY (POLYGON) TEST params = { 'dlx': '-0.903563', 'dly': '41.644185', 'urx': '-0.902558', 'ury': '41.644762' } cells = [ Boundary(boundary_ID=BoundaryID( 'P22220720640')).optimize().boundary_ID.value, Boundary(boundary_ID=BoundaryID( 'P22220720641')).optimize().boundary_ID.value, Boundary(boundary_ID=BoundaryID( 'P22220720642')).optimize().boundary_ID.value, Boundary(boundary_ID=BoundaryID( 'P22220720643')).optimize().boundary_ID.value, Boundary(boundary_ID=BoundaryID( 'P22220720644')).optimize().boundary_ID.value, Boundary(boundary_ID=BoundaryID( 'P22220720645')).optimize().boundary_ID.value ] r = requests.get('http://127.0.0.1:8000/boundaries/', params=params) assert r.status_code == 200 num_cells = 0 for boundary in r.json(): assert cells.__contains__(boundary['AUID']) num_cells = num_cells + 1 assert num_cells == len(cells) store.dropAll() print('TEST FINISH')
def test_API(self): print('TEST START') store = BoundaryStore(MongoClient(port=27017).bds) store.dropAll() i = 0 data = {} bds = [] boundary_id = '' bds_test = [] boundary_test = [] test_boundary_id = '' for polygon in self.shapes: if i % 10 == 0 and i != 0: bds.append({'boundary': boundary_id, 'data': data}) optB = Boundary(boundary_ID=BoundaryID(boundary_id)).optimize() bds_test.append({ 'AUID': optB.boundary_ID.value, 'boundary': optB.AUID_to_CUIDs(), 'data': data }) test_boundary_id = boundary_id boundary_test = [{ 'AUID': optB.boundary_ID.value, 'boundary': optB.AUID_to_CUIDs(), 'data': data }] data = {} boundary_id = '' boundary_id = boundary_id + polygon['properties']['id'] data[polygon['properties']['id']] = polygon['properties'] i = i + 1 boundary_dataset = {'boundary_data_set': bds} boundary_dataset_test = {'boundary_data_set': bds_test} # POST BOUNDARY_DATASETS TEST r = requests.post('http://127.0.0.1:8000/bdatasets/', json=boundary_dataset) assert r.status_code == 201 # GET ALL BOUNDARY_DATASETS TEST r = requests.get('http://127.0.0.1:8000/bdatasets/') json_test = json.dumps([boundary_dataset_test]) json_data = json.dumps(r.json()) assert r.status_code == 200 assert json_test == json_data # GET BOUNDARY IN BOUNDARY_DATASET TEST r = requests.get('http://127.0.0.1:8000/bdatasets/' + test_boundary_id) json_test = json.dumps([boundary_dataset_test]) json_data = json.dumps(r.json()) assert r.status_code == 200 assert json_test == json_data # GET ALL BOUNDARIES TEST r = requests.get('http://127.0.0.1:8000/boundaries/') json_test = json.dumps(bds_test) json_data = json.dumps(r.json()) assert r.status_code == 200 assert json_test == json_data # GET BOUNDARY TEST r = requests.get('http://127.0.0.1:8000/boundaries/' + test_boundary_id) json_test = json.dumps(boundary_test) json_data = json.dumps(r.json()) assert r.status_code == 200 assert json_test == json_data # DELETE BOUNDARY TEST r = requests.delete('http://127.0.0.1:8000/boundaries/' + test_boundary_id) assert r.status_code == 204 r = requests.get('http://127.0.0.1:8000/boundaries/') bds_test.pop() json_test = json.dumps(bds_test) json_data = json.dumps(r.json()) assert r.status_code == 200 assert json_test == json_data store.dropAll() print('TEST FINISH')
import unittest from dggs.cellset.boundary import Boundary from dggs.boundary_ID import BoundaryID from dggs.dataset.boundary_dataset import BoundaryDataSet from dggs.store.boundary_store import BoundaryStore from dggs.dataset.data import Data store = BoundaryStore() class TestBoundaryStore(unittest.TestCase): def test_insert_and_all_boudnaries(self): store.dropAll() bds = BoundaryDataSet("id") boundaries = [ 'O23P12P34S56', 'P10P11P2', 'N0', 'N8O2P0', 'O6S0S1S2', 'Q' ] for boundary in boundaries: bds.add(Boundary(boundary_ID=BoundaryID(boundary)), Data("")) store.insert(bds) stored_boundaries = store.all_boundaries() num_boundaries = 0 for boundary in stored_boundaries: assert boundaries.__contains__(boundary[0].AUID_to_CUIDs()) num_boundaries = num_boundaries + 1 self.assertEqual(num_boundaries, len(boundaries)) store.dropAll() def test_query_by_boundary(self):