示例#1
0
    def test_with_valid_vehicle(self):
        num_slots = self.service.create_parking_lot_of_size(2)
        self.assertEqual(2, num_slots)
        driver = Driver(22)
        vehicle1 = Vehicle("pb08-11-22-random", driver)
        parked_slot = self.service.park_vehicle(vehicle1)
        self.assertEqual(parked_slot.number, 1)
        self.assertEqual(parked_slot.parked_vehicle.number,
                         "pb08-11-22-random")
        driver = Driver(23)
        vehicle1clone = Vehicle("pb08-11-22-random", driver)
        with self.assertRaises(DuplicateVehicleError):
            parked_slot = self.service.park_vehicle(vehicle1clone)

        driver = Driver(23)
        vehicle2 = Vehicle("pb08-11-23-random", driver)
        parked_slot = self.service.park_vehicle(vehicle2)
        self.assertEqual(parked_slot.number, 2)
        self.assertEqual(parked_slot.parked_vehicle.number,
                         "pb08-11-23-random")

        driver = Driver(23)
        vehicle4 = Vehicle("pb08-11-34-random", driver)
        with self.assertRaises(ParkingFullError):
            parked_slot = self.service.park_vehicle(vehicle4)
            self.assertEqual(len(self.dao.empty_slots_heap), 0)
    def test_polymorphic_generator_one_relationship_readme_example(self):
        db.create_all()

        org1 = Org()
        dealer1 = LocalDealer()  # SQLAlchemy model
        dealer2 = Dealer.find(id=3)  # Network backed model
        db.session.add(org1)
        db.session.add(dealer1)
        # We flush to get the ID of org1 and dealer1
        db.session.flush()

        vehicle1 = Vehicle(source=org1)
        vehicle2 = Vehicle(source=dealer1)
        vehicle3 = Vehicle(source=org1)
        vehicle4 = Vehicle(source=org1)
        vehicle5 = Vehicle(source=dealer2)

        assert vehicle1.source == org1
        assert vehicle1.source_id == 1
        assert vehicle2.source_type == 'local_dealer'
        assert org1.vehicles == [vehicle1, vehicle3, vehicle4]
        assert vehicle5.source == dealer2
        assert vehicle5.source_type == 'dealer'

        db.session.flush()
        db.session.rollback()
    def test_valid_vehicle_parking(self):
        self.assertTrue(self.dao.create_slots(3))
        self.assertEqual(self.dao.capacity, 3)
        self.assertEqual(len(self.dao.empty_slots_heap), 3)
        self.assertEqual(len(self.dao.slot_number_to_slot), 3)
        driver = Driver(22)
        vehicle1 = Vehicle("pb08-11-22-random", driver)
        parked_slot = self.dao.park_vehicle_at_closest_empty_slot(vehicle1)
        self.assertEqual(len(self.dao.empty_slots_heap), 2)
        self.assertEqual(parked_slot.number, 1)

        driver = Driver(23)
        vehicle1clone = Vehicle("pb08-11-22-random", driver)
        with self.assertRaises(DuplicateVehicleError):
            parked_slot = self.dao.park_vehicle_at_closest_empty_slot(
                vehicle1clone)
            self.assertEqual(len(self.dao.empty_slots_heap), 2)

        driver = Driver(23)
        vehicle2 = Vehicle("pb08-11-23-random", driver)
        parked_slot = self.dao.park_vehicle_at_closest_empty_slot(vehicle2)
        self.assertEqual(len(self.dao.empty_slots_heap), 1)
        self.assertEqual(parked_slot.number, 2)

        driver = Driver(23)
        vehicle3 = Vehicle("pb08-11-33-random", driver)
        parked_slot = self.dao.park_vehicle_at_closest_empty_slot(vehicle3)
        self.assertEqual(len(self.dao.empty_slots_heap), 0)
        self.assertEqual(parked_slot.number, 3)

        driver = Driver(23)
        vehicle4 = Vehicle("pb08-11-34-random", driver)
        with self.assertRaises(ParkingFullError):
            parked_slot = self.dao.park_vehicle_at_closest_empty_slot(vehicle4)
            self.assertEqual(len(self.dao.empty_slots_heap), 0)
示例#4
0
 def test_with_invalid_driver(self):
     num_slots = self.service.create_parking_lot_of_size(2)
     self.assertEqual(2, num_slots)
     with self.assertRaises(InvalidDriverError):
         driver = None
         v = Vehicle("rndomplate", driver)
         parked_slot = self.service.park_vehicle(v)
     with self.assertRaises(InvalidDriverError):
         driver = Driver(None)
         v = Vehicle("rndomplate", driver)
         parked_slot = self.service.park_vehicle(v)
 def test_with_invalid_driver(self):
     self.assertTrue(self.dao.create_slots(3))
     with self.assertRaises(InvalidDriverError):
         driver = None
         v = Vehicle("rndomplate", driver)
         parked_slot = self.dao.park_vehicle_at_closest_empty_slot(v)
     with self.assertRaises(InvalidDriverError):
         driver = Driver(-23)
     with self.assertRaises(InvalidDriverError):
         driver = Driver(None)
         v = Vehicle("rndomplate", driver)
         parked_slot = self.dao.park_vehicle_at_closest_empty_slot(v)
    def setUp(self):
        self.dao = ParkingLotDao()
        self.dao.create_slots(3)
        d1 = Driver(18)
        v1 = Vehicle("num1", d1)
        self.dao.park_vehicle_at_closest_empty_slot(v1)
        d2 = Driver(18)
        v2 = Vehicle("num2", d2)
        self.dao.park_vehicle_at_closest_empty_slot(v2)

        d3 = Driver(20)
        v3 = Vehicle("num3", d3)
        self.dao.park_vehicle_at_closest_empty_slot(v3)
示例#7
0
 def saveVehicle(self):
     alldata = self.grabAllData("vehicles")
     for data in alldata:
         savingdata = Vehicle()
         savingdata.parse(data)
         self.save(savingdata)
         return savingdata
示例#8
0
    def setUp(self):
        self.dao = ParkingLotDao()
        self.service = ParkingLotService(self.dao)
        self.service.create_parking_lot_of_size(3)

        d1 = Driver(18)
        v1 = Vehicle("num1", d1)
        self.service.park_vehicle(v1)

        d2 = Driver(18)
        v2 = Vehicle("num2", d2)
        self.service.park_vehicle(v2)

        d3 = Driver(20)
        v3 = Vehicle("num3", d3)
        self.service.park_vehicle(v3)
def init_db():
    booking1 = Booking(
        booking_price=66.6,
        start_time=datetime(2020, 3, 1, 0, 0 ,0),
        end_time=datetime(2020, 3, 4, 0, 0 ,0)
    )
    booking1.save()

    booking2 = Booking(
        booking_price=55.5,
        start_time=datetime(2020, 3, 5, 0, 0 ,0),
        end_time=datetime(2020, 3, 7, 0, 0 ,0)
    )
    booking2.save()

    vehicle1 = Vehicle(
        type="small car",
        make="Honda",
        model="Civic R",
        year=2020,
        registration_tag="A12345",
        current_mileage=123.12,
        condition="like new",
        capacity=4,
        is_available=True,
        booking=[booking1, booking2]
    )
    vehicle1.save()
 def test_constructor(self):
     """
     Test Vehicle class generation
     """
     # veh_par = VehParameter()
     veh_1 = Vehicle()
     self.assertTrue(isinstance(veh_1, Vehicle))
     self.assertEqual(veh_1.n_veh, 1)
示例#11
0
def populate_vehicles(cur):
    cur.execute("SELECT * FROM vehicles LIMIT 1000;")
    vehicles = []
    vehicles_table = cur.fetchall()
    for vehicles_row in vehicles_table:
        vehicle = Vehicle(vehicles_row)
        vehicles.append(vehicle)
    return vehicles
示例#12
0
def create_vehicle():

    request_body_vehicle = request.get_json()

    newVehicle = Vehicle(brand=request_body_vehicle["brand"], capacity=request_body_vehicle["capacity"], color=request_body_vehicle["color"])
    db.session.add(newVehicle)
    db.session.commit()

    return jsonify(request_body_vehicle), 200
示例#13
0
 def test_interface(self):
     self.dao = MagicMock()
     mockVehicle = Vehicle("mock", Driver(15))
     self.dao.unpark_vehicle_at_slot_number = MagicMock(
         return_value=mockVehicle)
     self.service = ParkingLotService(self.dao)
     output = self.service.empty_slot(3)
     self.dao.unpark_vehicle_at_slot_number.assert_called_once_with(3)
     self.assertEqual(output, mockVehicle)
    def test_single_table_inheritence(self):
        db.create_all()

        ads1 = AdsData()
        news1 = NewsData()
        db.session.add(ads1)
        db.session.add(news1)
        db.session.flush()
        vehicle1 = Vehicle(source=ads1)
        vehicle2 = Vehicle(source=ads1)
        vehicle3 = Vehicle(source=news1)

        assert vehicle1.source == ads1
        assert vehicle1.source_id == 1
        assert vehicle1.source_type == "ads_data"
        assert ads1.vehicles == [vehicle1, vehicle2]
        assert news1.vehicles == [vehicle3]
        db.session.flush()
        db.session.rollback()
示例#15
0
 def test_with_valid_vehicle(self):
     driver = Driver(33)
     vehicle = Vehicle("random", driver)
     slot = ParkingSlot(1, vehicle)
     self.dao.park_vehicle_at_closest_empty_slot = MagicMock(
         return_value=slot)
     res = self.service.park_vehicle(vehicle)
     self.dao.park_vehicle_at_closest_empty_slot.assert_called_once_with(
         vehicle)
     self.assertEqual(res, slot)
示例#16
0
def create_vehicle(quantity, price, type, user_id):
    vehicle = Vehicle(type=type,
                      charge=price,
                      quantity=quantity,
                      user_id=user_id,
                      status="FREE")
    db.session.add(vehicle)
    db.session.commit()
    db.session.refresh(vehicle)
    return vehicle
示例#17
0
文件: movr.py 项目: nstewart/movr
        def add_vehicle_helper(session, city, owner_id, current_location, type, vehicle_metadata, status):
            vehicle_type = type

            vehicle = Vehicle(id=MovRGenerator.generate_uuid(), type=vehicle_type,
                              city=city, owner_id=owner_id, current_location = current_location,
                              status=status,
                              ext=vehicle_metadata)

            session.add(vehicle)
            return {'city': vehicle.city, 'id': vehicle.id}
def findVehicleValue(lookupVin):

    # Don't Forget To Replace This With Your Own API Key
    # You will need to add a api key file to reference this, or
    # paste it in as a string at your own risk.
    api_key = api_keys.key

    # VinAudit lets you specify a milage as well, you could easily
    # add an additional spreadsheet field and pull specific values
    # with an actual vehicle mileage.
    # #####
    # For my purposes, I've left the average mileage attribute because
    # the lists I run generally don't have a users upto date vehicle
    # mileage.

    response = requests.get(
        'http://marketvaluev1.vinaudit.com/getmarketvalue.php',
        params={
            'key': api_key,
            'vin': lookupVin,
            'format': 'xml',
            'period': '90',
            'mileage': 'average'
        })

    soup = BeautifulSoup(response.text, 'xml')

    # BS4 by default returns an object, so you want to seperate that to a string for use later in thhe
    # main program.

    current_vin = soup.find('vin').string
    current_details = soup.find('vehicle').string
    current_mileage = soup.find('mileage').string
    current_certainty = soup.find('certainty').string
    current_mean = soup.find('mean').string
    current_average_price = soup.find('average').string
    current_below_price = soup.find('below').string

    # Builds the object and returns it at the end of the program to be
    # added to a list.

    # I've built a more robust object that will utilize the full response from the API -- You may use any of these attributes
    # to build a database of customer vehicle information simply from their vin # with these attributes.

    vehicle = Vehicle(current_vin, current_details, current_mileage,
                      current_certainty, current_mean, current_average_price,
                      current_below_price)

    # valueList = [current_vin,current_details,current_mileage,current_certainty,current_mean,current_average_price,current_below_price]

    # Very useful for checking a vehicles value as the program is running.
    print(vehicle.averagePrice)

    return vehicle
示例#19
0
def vehicles(id=None):
    if request.method == 'GET':
        if id is not None:
            vehicle = Vehicle.query.get(id)    
            if not vehicle:
                return jsonify({"fail": "Vehicle not found"}), 404
            return jsonify({
                "success": "Vehicle found",
                "vehicle": vehicle.serialize()
            }), 200
        else:
            vehicles = Vehicle.query.all()
            vehicles = list(map(lambda vehicle: vehicle.serialize(), vehicles))
            return jsonify({
                "total": len(vehicles),
                "results": vehicles
            }), 200

    if request.method == 'POST':
        name = request.json.get('name')
        model = request.json.get('model')
        vehicle_class = request.json.get('vehicle_class')
        crew = request.json.get('crew')
        manufacturer = request.json.get('manufacturer')
        cargo_capacity = request.json.get('cargo_capacity')
        cost_in_credits = request.json.get('cost_in_credits')
        consumables = request.json.get('consumables')
       
        

        vehicle = Vehicle()
        vehicle.name = name
        vehicle.model = model
        vehicle.vehicle_class = vehicle_class
        vehicle.crew = crew
        vehicle.manufacturer = manufacturer
        vehicle.cargo_capacity = cargo_capacity
        vehicle.cost_in_credits = cost_in_credits
        vehicle.consumables = consumables
        
        vehicle.save()
        return jsonify({
            "success": "vehicle created!",
            "vehicle": vehicle.serialize()
        }), 201

    if request.method == 'PUT':
        pass
    if request.method == 'DELETE':
        vehicle = Vehicle.query.get(id)
        if not vehicle: 
            return jsonify({"fail": "vehicle not found"}), 404
        vehicle.delete()
        return jsonify({"success": "vehicle deleted"}), 200
示例#20
0
def addVehicle(_, info, vehicle_type, **kwargs):
    new_dict = kwargs
    target_location = None
    if ('location_id' in new_dict):
        target_location = Location.objects(id=new_dict['location_id']).first()
        new_dict.pop('location_id')
    vehicle_type = Vehicletype.objects(id=vehicle_type).first()
    vehicle = Vehicle(location=target_location, **new_dict)
    vehicle.vehicle_type = vehicle_type
    vehicle.save()
    return vehicle
示例#21
0
def save_vehicles(route, acessible, prefix):
    try:
        vehicle = Vehicle.objects.get(prefix=prefix)
        vehicle.acessible = acessible
    except Vehicle.DoesNotExist:
        vehicle = Vehicle(
            route=route,
            acessible=acessible,
            prefix=prefix,
        )
    vehicle.save()
    return vehicle
示例#22
0
def create_neo_db():
    # Create temporary station and vehicle
    tmp_station = Station(short='STATI',
                          name='Station',
                          latitude=10.0,
                          longitude=10.0).save()
    tmp_vehicle = Vehicle(code='100').save()

    spatial_query = "CALL spatial.addPointLayer('spati')"
    neo_db.cypher_query(query=spatial_query)

    tmp_station.delete()
    tmp_vehicle.delete()
示例#23
0
 def add_vehicles_helper(sess, chunk, n):
     owners = sess.query(User).filter_by(city=city).all()
     vehicles = []
     for i in range(chunk, n):
         vehicle_type = MovRGenerator.generate_random_vehicle()
         vehicles.append(Vehicle(id=MovRGenerator.generate_uuid(),
                                 type=vehicle_type,
                                 city=city,
                                 current_location=datagen.address(),
                                 owner_id=(random.choice(owners)).id,
                                 status=MovRGenerator.get_vehicle_availability(),
                                 ext=MovRGenerator.generate_vehicle_metadata(vehicle_type)))
     sess.bulk_save_objects(vehicles)
示例#24
0
def add_vehicle():
    form = AddVehicleForm()
    if form.validate_on_submit():
        name = request.form['name']
        year = request.form['year']
        make = request.form['make']
        model = request.form['model']
        user_id = current_user.id
        vehicle = Vehicle(name=name, year=year, make=make, model=model, user_id=user_id)
        db.session.add(vehicle)
        db.session.commit()
        return redirect(url_for('home'))

    return render_template('add_vehicle.html', form=form)
示例#25
0
class StaticVehicleModel(factory.django.DjangoModelFactory):
    """
    Creates Vehicle Object using Admin preiveldges. POSTS to DATABASE for quoting
    tool application.
    """
    class Meta:
        model = Vehicle

    mustang = Vehicle(model_name="mustang",
                      engine=Engine("v8", "clean cut", 19000),
                      exterior_color=ExteriorColor("white", 2500),
                      wheels=Wheel("chrome", "shiny", 4000),
                      interior_package=InteriorColor("default", 2000),
                      audio_system=AudioSound("radio", "simple system", 1000))
    mustang.save()
示例#26
0
def get_vehicles():
    count = get_count('vehicles')
    for vehicle_id in range(1, count + 1):
        url = SWAPI_URL.format('vehicles') + '{}/'.format(vehicle_id)
        vehicle = None
        try:
            vehicle = DB.open().query(Vehicle).filter(
                Vehicle.api_url == url).one()
        except:
            obj = get_request(url)
            if 'name' in obj:
                vehicle = Vehicle()
                vehicle.parse_json(obj)
                DB.save(vehicle)
        if vehicle:
            print(vehicle.name)
            print('+++++++++++++++++')
示例#27
0
def list_addAll():
    body = request.get_json()
    people = body["people"]
    planet = body["planet"]
    vehicle = body["vehicle"]

    for p in people:
        people1 = People(
            name=p["Character name"],
            height=p["Character height"],
            mass=p["Character mass"],
            hair_color=p["Character hair_color"],
            skin_color=p["Character skin color"],
            eye_color=p["Character eye color"],
            birth_year=p["Character birth year"],
            gender=p["Character gender"],
        )
        db.session.add(people1)

    for pl in planet:
        planet1 = Planet(
            planet_name=pl["Planet name"],
            rotation_period=pl["Rotation period"],
            orbital_period=pl["Orbital period"],
            diameter=pl["Diameter"],
            climate=pl["Climate"],
            gravity=pl["Gravity"],
            terrain=pl["Terrain"],
            population=pl["Population"],
        )
        db.session.add(planet1)

    for v in planet:
        vehicle1 = Vehicle(
            vehicle_name=v["Vehicle name"],
            model=v["Model"],
            passenger=v["Passenger"],
            consumable=v["Consumable"],
            starship_class=v["Starship class"],
            lenght=v["Lenght"],
            cargo_capacity=v["Cargo capacity"],
            hyperdrive_rating=v["Hyperdrive rating"],
        )
        db.session.add(vehicle1)

        db.session.commit()
示例#28
0
文件: views.py 项目: camtaylor/upspot
def add_vehicle(request):
    """
    View to add a new vehicle to upspot.
  """
    if request.method == 'GET':
        vehicles = Vehicle.objects.filter(owner=request.user)
        return render(request, 'park/vehicle.html', {'vehicles': vehicles})
    elif request.method == 'POST':
        owner = request.user
        make = request.POST.get("make")
        model = request.POST.get("model")
        new_vehicle = Vehicle()
        new_vehicle.owner = owner
        new_vehicle.make = make
        new_vehicle.model = model
        new_vehicle.save()
        return redirect('/park/vehicles')
示例#29
0
def add_cars():
    body = request.form
    try:
        vehicle = Vehicle(brand=body.get('brand', None),
                          model=body.get('model', None),
                          doors=body.get('doors', None),
                          vtype=body.get('vtype', None),
                          year=body.get('year', 0),
                          power=body.get('power', 0),
                          licence=body.get('licence', ''),
                          transmission=body.get('transmission', ''),
                          category=body.get('category', ''))
        vehicle.insert()

        return redirect(url_for('vehicle_by_id', vehicle_id=vehicle.id))

    except:
        abort(422)
示例#30
0
def create_dict_for_update(JSONDoc):
    modified_vehicles = []
    for k, v in JSONDoc.iteritems():
        if k == 'vehicles':
            # print(k, v)
            # for vehicle, customer_vehicle in zip(v, CustomerObject.vehicles):
            #     print("VEHICLE " + str(vehicle))
            #     for v_key, v_value in vehicle.iteritems():
            #         v_key = "set__" + str(v_key)
            #         print(v_key)
            #     customer_vehicle.update(**vehicle)
            for vehicle in v:
                v_obj = Vehicle()
                v_obj.vehicle_type = vehicle['vehicle_type']
                v_obj.vehicle_number = vehicle['vehicle_number']
                v_obj.vehicle_rc_link = vehicle['vehicle_rc_link']
                v_obj.save()
                modified_vehicles.append(v_obj)
        k = "set__" + str(k)
    return JSONDoc, modified_vehicles