Exemplo n.º 1
0
    def try_schedule_simple_algorithm(self, company, facility, min_permission,
                                      participant_num):
        rooms = Room.available_rooms(self.date, participant_num,
                                     self.start_time, self.end_time,
                                     min_permission, company, facility)

        print('here the rooms available')
        print(rooms)
        for room in rooms:
            if room.available_on_time(self.date, self.start_time,
                                      self.end_time, participant_num):
                print('available')
                return self._id, room._id
        return False, 'fail'
Exemplo n.º 2
0
def test_schedules_orders():
    Database.initialize()
    Database.dropAll()
    Manager.manager_register("*****@*****.**", 'admin', 'Admin admin', '000000000', 'eng', 1, 'YAHOO', 'matam')

    status, room_id = Room.add_room(2, 30, 1, 3, 'YAHOO', 'matam', True)
    assert status is True
    status, room_id = Room.add_room(2, 30, 3, 4, 'YAHOO', 'matam', False)
    assert status is True
    assert Room.remove_room(room_id) is True
    status, room_id = Room.add_room(2, 30, 3, 4, 'YAHOO', 'matam', True)

    num1 = Database.count('orders')
    Database.remove('orders', {'_id': '23/05/18'})
    num2 = Database.count('orders')
    Database.remove('orders', {'date': '26/05/18'})
    num3 = Database.count('orders')
    num_users1 = Database.count('users')
    Manager.user_register("*****@*****.**", '123', 'foox', '000002600', 'eng', 3, 'YAHOO', 'matam')
    Manager.user_register("*****@*****.**", '123', 'yan', '026000000', 'eng', 3, 'YAHOO', 'matam')
    num_users2 = Database.count('users')

    manager = Manager.get_by_email('*****@*****.**')
    assert manager is None
    manager = Manager.get_by_email('*****@*****.**')
    assert manager is not None
    try:
        manager.import_rooms(os.getcwd() + '\\rooms.csv')
        manager.import_employee(os.getcwd() + '\\employee.csv')
    # should'nt works on travis
    except Exception as e:
        pass
    num_users2 = Database.count('users')

    user = User.get_by_email('*****@*****.**')
    participants = ['*****@*****.**', '*****@*****.**']
    date = datetime.utcnow().strftime('%d/%m/%y')
    date = '26/06/18'
    status, string = user.new_order(date, participants, 1, 2, "YAHOO", 'matam')
    print(string)
    orders = user.get_orders()
    num_orders = len(orders)
    assert len(user.get_orders()) > 0
    schedules = user.get_schedule()
    assert len(schedules) > 0
    schedules = Schedule.get_schedules('*****@*****.**')
    assert len(Schedule.get_by_room("YAHOO matam 1")) > 0
    assert len(Room.available_rooms('11/11/11', 2, 1, 2, 2, 'YAHOO', 'matam')) > 0
Exemplo n.º 3
0
    def try_schedule_naive_algorithm(self, company, facility, min_permission,
                                     participant_num):
        rooms = Room.available_rooms(self.date, participant_num,
                                     self.start_time, self.end_time,
                                     min_permission, company, facility,
                                     self.min_occupancy, self.max_occupancy,
                                     self.min_friends, self.max_friends,
                                     self.is_accessible)

        print('here the rooms available')
        print(rooms)
        for room in rooms:
            if room.avialable_on_time(self.date, self.start_time,
                                      self.end_time, participant_num):
                return self._id, room._id
        return False, 'fail'