Пример #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)
Пример #2
0
    def post(self):
        new_name = self.request.get("name")
        new_employeeid = self.request.get("employeeid")

        errors = {}
        existing_driver = self.get_driver_by_name(new_name)
        has_error = False

        if not new_name:
            errors['name_error'] = "Please enter a name."
            has_error = True

        elif (new_employeeid):

            driver = Driver(name=new_name, employeeid=int(new_employeeid))
            driver.put()

            self.redirect('/drivers')
        else:
            has_error = True

            if not new_employeeid:
                errors['employeeid_error'] = "Please enter an Employee ID"

        if has_error:
            t = jinja_env.get_template("drivers.html")
            response = t.render(name=new_name,
                                employeeid=new_employeeid,
                                errors=errors,
                                drivers=self.get_drivers())
            self.response.out.write(response)
        else:
            t = jinja_env.get_template("drivers.html")
            content = t.render(drivers=self.get_drivers())
            self.redirect('/drivers')
    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)
 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)
Пример #6
0
 def save(entity):
     if entity.key is None:
         entity = Driver.save(entity)
     else:
         current = Driver.get(entity.key)
         if current is not None:
             # current.driver_phone = entity.driver_phone
             # current.driver_email = entity.driver_email
             # current.driver_id = entity.driver_id
             # current.driver_operational = entity.driver_operational
             # current.driver_name = entity.driver_name
             entity = Driver.save(entity)
         else:
             raise ValueError("Driver does not exists")
     return entity
Пример #7
0
 def post(self):
     data = request.get_json()
     newDriver = Driver(data['name'], data['price_base'],
                        data['price_per_mile'], data['tier'])
     db.session.add(newDriver)
     db.session.commit()
     return newDriver.id
Пример #8
0
    def get(self):
        driver = int(self.request.get("edit"))
        edit_driver = Driver.get_by_id(driver)

        t = jinja_env.get_template("driveredit.html")
        content = t.render(driver=edit_driver)
        self.write(content)
Пример #9
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)
Пример #10
0
    def post(self):
        general_checkbox = self.request.get("general")
        oil_checkbox = self.request.get("oil")
        coolant_checkbox = self.request.get("coolant")
        belts_checkbox = self.request.get("belts")
        battery_checkbox = self.request.get("battery")
        engine_checkbox = self.request.get("engine")
        gauges_checkbox = self.request.get("gauges")
        wipers_checkbox = self.request.get("wipers")
        horn_checkbox = self.request.get("horn")
        heat_checkbox = self.request.get("heat")
        mirrors_checkbox = self.request.get("mirrors")
        steering_checkbox = self.request.get("steering")
        brakes_checkbox = self.request.get("brakes")
        ebrake_checkbox = self.request.get("ebrake")
        seatbelts_checkbox = self.request.get("seatbelts")
        safety_checkbox = self.request.get("safety")
        lights_checkbox = self.request.get("lights")
        reflectors_checkbox = self.request.get("reflectors")
        suspension_checkbox = self.request.get("suspension")
        tires_checkbox = self.request.get("tires")
        exhaust_checkbox = self.request.get("exhaust")
        wheels_checkbox = self.request.get("wheels")
        exbrakes_checkbox = self.request.get("exbrakes")
        action_checkbox = self.request.get("action")
        form_num = self.request.get("formnum")
        current_vehicle = self.request.get("vehicle")
        current_driver = self.request.get("driver")

        checkboxes = [
            general_checkbox, oil_checkbox, coolant_checkbox, belts_checkbox,
            battery_checkbox, engine_checkbox, gauges_checkbox,
            wipers_checkbox, horn_checkbox, heat_checkbox, mirrors_checkbox,
            steering_checkbox, brakes_checkbox, ebrake_checkbox,
            seatbelts_checkbox, safety_checkbox, lights_checkbox,
            reflectors_checkbox, suspension_checkbox, tires_checkbox,
            exhaust_checkbox, wheels_checkbox, exbrakes_checkbox
        ]
        action_items = []
        vehicle = Vehicle.get_by_id(int(current_vehicle))
        driver = Driver.get_by_id(int(current_driver))
        for i in checkboxes:
            if i != "":
                action_items.append(i)
        #if action_items != []:
        #vehicle.maintreq = True
        #vehicle.put()
        #else:
        #form = Inspection(formnum = form_num, items = "No maintenance required",
        #vehicle = vehicle)
        #form.put()

        t = jinja_env.get_template("inspectdetails.html")
        response = t.render(action_items=action_items,
                            form_num=form_num,
                            vehicle=vehicle,
                            driver=driver)
        self.write(response)
Пример #11
0
def add_driver(name, version):
    with db_session:
        if select(d for d in Driver
                  if d.name == name and d.version == version).count() > 0:
            raise Exception('Driver already exists')

        driver = Driver(name=name, version=version)

    return driver
Пример #12
0
    def test_get_existing_token(self):
        d = Driver('get_existing_token_test')
        db.session.add(d)
        db.session.commit()
        self.assertEqual(len(Driver.query.all()), 1)

        a = get_user_from_token('get_existing_token_test')
        self.assertEqual(a, d)
        self.assertEqual(len(Driver.query.all()), 1)
Пример #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)
Пример #14
0
    def post(self):
        driver = int(self.request.get("delete"))
        delete_driver = Driver.get_by_id(driver)

        delete_driver.delete()

        t = jinja_env.get_template("delete-confirm.html")
        content = t.render(driver=delete_driver)
        self.write(content)
Пример #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 post(self):
        driver = int(self.request.get("driver"))
        edit_driver = Driver.get_by_id(driver)
        name = self.request.get("name")
        employeeid = int(self.request.get("employeeid"))

        edit_driver.name = name
        edit_driver.employeeid = employeeid
        edit_driver.put()

        self.redirect('/drivers')
Пример #17
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)
Пример #18
0
    def testDriverCreate(self):
        test_token = "test_token"

        # Create driver
        d = Driver(test_token)
        db.session.add(d)
        db.session.commit()

        # Test query
        drivers = Driver.query.all()
        self.assertEqual(len(drivers), 1)
        self.assertEqual(drivers[0].token, test_token)
def create_env(task):
	if task == 'lds':
		return LDS()
	elif task == 'driver':
		return Driver()
	elif task == 'tosser':
		return Tosser()
	elif task == 'fetch':
		return Fetch()
	else:
		print('There is no task called ' + task)
		exit(0)
Пример #20
0
def drivers(request):
    if request.method == 'GET':
        data = serializers.serialize("json", Driver.objects.all())

        return HttpResponse(data, content_type='application/json')

    if request.method == 'POST':
        req = json.loads(request.body)

        for item in req:

            name = item['driverName'].split(" ")
            firstName = name[0]
            lastName = name[1]

            id = item['driverId']
            startTime = item['driverStartTime']
            endTime = item['driverEndTime']
            time = item['driverBlockTime']

            try:
                Block.objects.get(startTime=startTime)
            except:
                block = Block(startTime=startTime, endTime=endTime, shiftLength=time)
                block.save()
            try:
                Driver.objects.get(DPID=id)
            except ObjectDoesNotExist:
                block = Block.objects.get(startTime=startTime)
                driver = Driver(DPID=id,
                                firstName = firstName,
                                lastName = lastName,
                                shiftLength = time,
                                startTime = startTime,
                                endTime = endTime,
                                block = block
                                )
                driver.save()

        return HttpResponse("Kevin is the greatest of all time --drivers")
Пример #21
0
def register():
    fullname = request.json.get('fullname')
    email = request.json.get('email')
    password = request.json.get('password')

    if not email:
        return jsonify({"msg": "Email is required"}), 422
    if not fullname:
        return jsonify({"msg": "Name is required"}), 422
    if not password:
        return jsonify({"msg": "Password is required"}), 422
    driver = Driver.query.filter_by(email=email).first()
    if driver:
        return jsonify({"msg": "This email already register"}), 422
    driver = Driver()
    driver.email = email
    driver.fullname = fullname
    driver.password = bcrypt.generate_password_hash(password)
    db.session.add(driver)
    db.session.commit()
    if bcrypt.check_password_hash(driver.password, password):
        access_token = create_access_token(identity=driver.email)
        data = {"access_token": access_token, "consumer": driver.serialize()}
        return jsonify(data), 200
    else:
        return jsonify({"msg": "Email or password incorrect"}), 401
Пример #22
0
def add_driver_to_fuel(fuel_version, name, version):
    with db_session:
        if select(d for d in Driver
                  if d.name == name and d.version == version).count() > 0:
            raise Exception('Driver already exists')

        fuel_version = get(fv for fv in FuelVersion if fv.name == fuel_version)

        if fuel_version is None:
            raise Exception('Unknown Fuel version')

        driver = Driver(fuel_version=fuel_version, name=name, version=version)

    return driver
Пример #23
0
def get_user_from_token(token):
    try:
        #TODO enable token authorization
        #idinfo = verify_id_token(token, CLIENT_ID)
        driver = Driver.query.filter_by(token=token).first()
        if driver:
            return driver
        else:
            driver = Driver(token)
            db.session.add(driver)
            db.session.commit()
            return driver
    except crypt.AppIdentityError:
        return None
def create_env(task):
    if task == 'driver':
        return Driver()
    elif task == 'lunarlander':
        return LunarLander()
    elif task == 'mountaincar':
        return MountainCar()
    elif task == 'swimmer':
        return Swimmer()
    elif task == 'tosser':
        return Tosser()
    else:
        print('There is no task called ' + task)
        exit(0)
Пример #25
0
def auth_driver(user_id, login, password):
    __init_firebase__()
    snapshot = db.reference('drivers').get()
    for driver in snapshot:
        driver_credentials = snapshot[driver]
        if driver_credentials['login'] == login and driver_credentials[
                'password'] == password:
            driver_reference = db.reference('drivers').child(driver)
            # driver is online
            driver_reference.update({
                'active': 1,
            })
            return Driver(user_id, driver_credentials)
    return None
Пример #26
0
    def get(self):
        current_vehicle = self.request.get("vehicle")
        current_driver = self.request.get("driver")
        vehicle = Vehicle.get_by_id(int(current_vehicle))
        driver = Driver.get_by_id(int(current_driver))
        drivetype = type(current_driver)

        month = str(datetime.today().month)
        year = str(datetime.today().year)
        rand_num = str(random.randint(100, 999))
        today = rand_num + month + year

        t = jinja_env.get_template("inspectdetails.html")
        response = t.render(type=drivetype,
                            driver=driver,
                            vehicle=vehicle,
                            date=datetime.now(),
                            formid=today)
        self.write(response)
Пример #27
0
def update_component(servers=None,
                     type=None,
                     name=None,
                     vendor=None,
                     comments=None,
                     hw_id=None,
                     driver=None):
    component = get(c for c in Component if c.name == name)

    if servers:
        servers = select(s for s in Server if s.name in servers)[:]
        component.servers.clear()

        for s in servers:
            component.servers.add(s)

    if type is not None and check_type(type):
        component.type = type

    if name is not None:
        component.name = name

    if vendor is not None:
        component.vendor = vendor

    if comments is not None:
        component.comments = comments

    if hw_id is not None:
        component.hw_id = hw_id

    if driver is not None:
        driver = Driver.get(lambda d: d.name == driver)

        if driver is not None:
            component.driver = driver

    return component
 def test_with_not_created_parking_slot(self):
     with self.assertRaises(ParkingNotCreatedError):
         driver = Driver(18)
         v = Vehicle("rndomplate", driver)
         parked_slot = self.dao.park_vehicle_at_closest_empty_slot(v)
Пример #29
0
    def savePeople(self):
        alldata = self.grabAllData("people")
        for data in alldata:
            # get person from database
            person = self.find_or_create(data, Person)
            # get planet from database
            planet = self.find_or_create(
                json.loads(requests.get(data['homeworld']).text), Planet)

            for v in data['vehicles']:
                vehicle = self.find_or_create(json.loads(requests.get(v).text),
                                              Vehicle)
                try:
                    self.open().query(Driver).filter(
                        Driver.person == person,
                        Driver.vehicle == vehicle).one()
                    print("data already exist")
                except:
                    driver = Driver()
                    driver.vehicle = vehicle
                    driver.person = person
                    self.save(driver)
                    print("Driver Vehicle saved")

            for s in data['starships']:
                starship = self.find_or_create(
                    json.loads(requests.get(s).text), Starship)
                try:
                    self.open().query(Driver).filter(
                        Driver.person == person,
                        Driver.starship == starship).one()
                    print("data already exist")
                except:
                    pilot = Pilot()
                    pilot.starship = starship
                    pilot.person = person
                    self.save(pilot)
                    print("Pilot Starships saved")

            for f in data['films']:
                film = self.find_or_create(json.loads(requests.get(f).text),
                                           Film)
                try:
                    self.open().query(Role).filter(Role.person == person,
                                                   Role.film == film).one()
                    print("data film already exist")
                except:
                    role = Role()
                    role.film = film
                    role.person = person
                    self.save(role)
                    print("Role  saved")

            for s in data['species']:
                species = self.find_or_create(json.loads(requests.get(s).text),
                                              Species)
                try:
                    self.open().query(Member).filter(
                        Member.person == person,
                        Member.species == species).one()
                    print("data species already exist")
                except:
                    member = Member()
                    member.species = species
                    member.person = person
                    self.save(member)
                    print("Member saved")

            print(planet)
            if not person.homeworld:
                person.homeworld = planet
                self.save(person)

            #add planet based on vehicle
            vehicle = self.find_or_create(
                json.loads(requests.get(data['homeworld']).text), Planet)
Пример #30
0
from models import Car, Driver, Garage, Manufacturer, Status, Station
import datetime

test_manufacturer = Manufacturer()
test_driver = Driver()
test_car = Car()
test_garage = Garage()
test_status = Status()
test_station = Station()

test_manufacturer = {
    'id': 1,
    'name': "Nissan",
    'start_date': datetime.date(year=1933, month=12, day=26)
}

test_driver = {
    'id': 1,
    'name': "Sanic",
    'birthday': datetime.date(year=2010, month=3, day=31)
}

test_car = {
    'id': 1,
    'on': False,
    'doors': 2,
    'color': 'black',
    'make': test_manufacturer,
    'passengers': [test_driver]
}
Пример #31
0
# all the imports
from flask import Flask
from flask_peewee.db import Database


# create our little application :)
app = Flask(__name__)
app.config.from_object('drivers.config')


# instantiate the db wrapper
db = Database(app)


from models import Driver


if Driver.table_exists() == False:
    Driver.create_table()
    Driver.create(username='******', email='*****@*****.**',
                  password='******', is_admin=True, name='Admin')


import drivers.routes
import drivers.api