def test_delete_route(self): route = Route.create(self.points) route_id = route.id self.assertIsNotNone(route) route.delete() db_route = Route.get(route_id) self.assertIsNone(db_route)
def test_create_route(self): route = Route.create(self.points) db_route = Route.get(route.id) self.assertIsNotNone(db_route.path) self.assertEqual(type(db_route.path), WKBElement) self.assertIsNotNone(db_route.created_ts) self.assertIsNone(db_route.modified_ts) self.assertEqual(db_route.robots, [])
def find_routes_by_ts_range(self, start_ts=None, end_ts=None): start_ts = start_ts or datetime(1970, 1, 1) end_ts = end_ts or datetime.now(tz=timezone.utc) routes = [] for robot_route in self.robot_routes: if self._does_ts_range_overlap_robot_route(robot_route, start_ts, end_ts): routes.append(Route.get(robot_route.route_id)) return routes
def get_all(cls, query_string=None): query_string = json.loads(query_string) if query_string else {} if not query_string.get('radius'): return cls.query.all() if query_string.get('route_id'): route = Route.get(query_string['route_id']) return cls.get_all_in_route_radius(route, query_string['radius']) return cls.get_all_in_radius(query_string['target_longitude'], query_string['target_latitude'], query_string['radius'])
def change_route(route_list: list): cur_t = RouteTree() cur_t.generate_by_dir({'id': 0, 'children': route_list}) cur_list = cur_t.deserialize() with db.auto_commit(): for cur_route in cur_list: old_route = Route.get(id=cur_route['id']) if old_route and \ (old_route.parent_id != cur_route['parent_id'] or old_route.order != cur_route['order']): old_route.update(id=cur_route['id'], parent_id=cur_route['parent_id'], order=cur_route['order'], commit=False)
def test_get_nonexistent_route(self): route = Route.get(100) self.assertIsNone(route)
def test_get_route(self): route = Route.create(self.points) route_id = route.id db_route = Route.get(route_id) self.assertEqual(db_route.id, route_id)
def find_route_by_ts(self, ts): for robot_route in self.robot_routes: if self._is_ts_within_robot_route_range(robot_route, ts): return [Route.get(robot_route.route_id)] return []