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, [])
Beispiel #3
0
    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
Beispiel #4
0
    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'])
Beispiel #5
0
 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)
Beispiel #8
0
    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 []