def suppose_assignment():
    # import all not taken deliveries
    now = datetime.datetime.now()

    cond = {
        "conditions" :  {
            # "start" : datetime.datetime(now.year,now.month,now.day,0,0,0).strftime("%Y-%m-%d %H:%M:%S"),
            # "end" : (datetime.datetime(now.year,now.month,now.day,0,0,0) + datetime.timedelta(days=1, seconds=-1)).strftime("%Y-%m-%d %H:%M:%S"),
            "state" : "not assigned"
        }
    }

    deliveries = get_all_deliveries(company_id=session["user"]["company_id"], conditions=cond , return_obj=True, get_locations=True)

    # import drivers
    drivers = get_all_drivers(session["user"]["company_id"], return_obj=True, vehicles=True)


    suggestions = []
    no_registered = []

    for delivery in deliveries:
        best_distance = None
        best_driver = None

        for driver in drivers:
            if is_assignable(driver, delivery):
                distance = Location.getDistance(delivery.getSenderLocation(), driver.getLocation())
                if best_distance is not None:
                    if distance["distance"]["value"]< best_distance["distance"]["value"] :
                        best_distance = distance
                        best_driver = driver
                else:
                    best_distance = distance
                    best_driver = driver


        if best_distance is None or best_driver is None:
            no_registered.append(delivery)

        else :
            best = {"delivery" : delivery, "distance": best_distance["distance"], "duration" : best_distance["duration"]}
            append_suggestion(suggestions, best_driver, best)

            #update driver position
            best_driver.update_location(**delivery.getSenderLocation())


    return jsonify(suggestions=suggestions),200
    def test_getAll_with_drivers_return_obj(self, client, mocker):
        with client.session_transaction() as sess:
            sess["user"] = {"id": 3, "type": "admin", "company_id": 2}

        from application.classes.Driver import Driver

        _sql = [
            {
                "id": 2,
                "name": "Romain",
                "email": "*****@*****.**",
                "phone": "5464654645",
                "location_lat": Decimal(12.46666),
                "location_lng": Decimal(13.46666),
                "vehicle_id_1": 1,
                "vehicle_id_2": 4,
                "v1_weight": 34,
                "v1_area": 1.4,
                "v1_max_weight": 3400,
                "v1_max_area": 41.4,
                "v2_weight": 567,
                "v2_area": 13.4,
                "v2_max_weight": 3400,
                "v2_max_area": 41.3,
            }
        ]

        v1 = {"id": 1, "registration": "", "type": "", "area": 1.4, "weight": 34, "max_area": 41.4, "max_weight": 3400}

        v2 = {"id": 1, "registration": "", "type": "", "area": 1.4, "weight": 34, "max_area": 41.4, "max_weight": 3400}
        driver = Driver(_sql[0])

        from application.controllers.driverController import get_all_drivers

        mocker.patch.object(DBHandler, "query", return_value=_sql)
        res = get_all_drivers(2, return_obj=True, vehicles=True)
        assert isinstance(res, list)
        assert len(res) == 1
        assert res[0] == driver
        mocker.stopall()