def load_employees(self, filters = None, #sorting = 'id', first_index = 0, last_index = 10000): limit = last_index - first_index + 1 offset = first_index columns = Employee().to_dict().keys() request = 'SELECT ' for column in columns: request += column + ', ' request = request[0:-2] + ' FROM employees ' if filters != None and len(filters) != 0: request = request + 'WHERE ' for key in filters.keys(): request += key + ' = ' + self.f + ' AND ' request = request[0:-5] #request += ' ORDER BY ' + sorting #request += ' LIMIT ' + str(limit) #request += ' OFFSET ' + str(offset) try: if filters != None and len(filters) != 0: self.cursor.execute(request, filters.values()) else: self.cursor.execute(request) rows = self.cursor.fetchall() except Exception as e: print traceback.format_exc() print e rows = [] employees = [] for row in rows: values_dict = {} for i in xrange(len(columns)): values_dict[columns[i]] = row[i] employee = Employee() employee.set_values(values_dict) employees.append(employee) return employees
class Employee_test(unittest.TestCase): def setUp(self): self.employee = Employee() def set_values_tests(self): values = {'id' : 10, 'name' : 'John', 'age' : 30} self.employee.set_values(values) assert self.employee.id == values['id'] assert self.employee.name == values['name'] assert self.employee.age == values['age'] values2 = self.employee.to_dict() for key in values.keys(): assert values[key] == values2[key] def add_working_seconds_test(self): hours = 5 seconds = hours * 60 * 60 self.employee.add_working_seconds(seconds) self.employee.add_working_seconds(seconds) assert self.employee.get_working_hours(utils.current_month()) == hours * 2 assert self.employee.get_working_hours('01 1999') == 0