def update_employee(self): """ this method is used to update employee details. """ cursor = self.conn.show_members() emp_id = self.show_table_menu(cursor) if emp_id is None: return columns = self.conn.worker_table_fields() print("choose attribute :\n") menu = Menu() columns.extend([str(BackButton.BACK.name), str(BackButton.EXIT.name)]) column = menu.draw_menu(columns) input() user_input = '' if column == str(BackButton.BACK.name): return elif column == str(MemberUpdateColumns.password.name): user_input = encrypt_pass(input_validation("enter new value: ", Validation.password, 'Weak password')) elif column == str(MemberUpdateColumns.email.name): user_input = input_validation("enter new value: ", Validation.is_email, 'Invalid Email') elif column == str(MemberUpdateColumns.phone_number.name) and not Validation.is_phone(user_input): user_input = input_validation("enter new value: ", Validation.is_phone, "Invalid Phone Number") else: user_input = input("enter new value: ") try: self.conn.update_member(emp_id, column, user_input) self.conn.commit_data() print(Color.F_Red, 'Record Updated', Base.END) except sqlite3.IntegrityError: print(Color.F_Red, 'user_name already taken', Base.END) except Exception: print(Color.F_Red, 'some internal error occurred', Base.END)
def update_gpm(self): """ this method is used to update gpm for current bdo. """ try: gpm_list = self.get_gpm_list() menu = Menu() gpm_names = [x for x in gpm_list.keys()] gpm_names.extend( [str(BackButton.EXIT.name), str(BackButton.BACK.name)]) gpm_name = menu.draw_menu(gpm_names) input() if str(BackButton.BACK.name) == gpm_name: return gpm_id = gpm_list[gpm_name] print("select the field to update: \n") menu = Menu() details = [x.name for x in GpmUpdateFields] details.extend([str(BackButton.EXIT.name)]) field = menu.draw_menu(details) input() user_input = input("enter new value for " + str(field) + " ") user_table_fields = [1, 2, 3] # validating field if field == str(GpmUpdateFields.PASSWORD.name): if not Validation.password(user_input): print("password is weak") input() return user_input = encrypt_pass(user_input) if field == str(GpmUpdateFields.AGE.name): if not Validation.age(user_input): print("age is not valid") input() return if field == str(GpmUpdateFields.PINCODE.name): if not Validation.pincode(user_input): print("pincode is not valid") input() return if field == str(GpmUpdateFields.GENDER.name): if not Validation.gender(user_input): print("gender is not valid") input() return query = "" # if field belong to user table if user_table_fields.count(GpmUpdateFields[field].value) == 1: self.conn.update_user(str(field), gpm_id, user_input) else: self.conn.update_personal_details(str(field), gpm_id, user_input) self.conn.commit_data() print("\n" + Color.F_Green + "record updated" + Base.END) except Exception as e: print(e) self.conn.rollback_data()
def create_gpm(self): """ this method is used to create gpm for current bdo. """ try: name = input("enter gpm name ") id = str(uuid.uuid4()) password = input("enter password for gpm ") if not Validation.password(password): print("weak password") input() return user_name = input("enter user name for gpm ") role_id = int(Role.GPM.value) created_at = datetime.datetime.now().date() updated_at = datetime.datetime.now().date() is_deleted = 'False' state = input("enter state ") district = input("enter district ") pincode = input("enter pincode ") if not Validation.pincode(pincode): print("pin code is not valid") input() return age = input("enter age ") if not Validation.is_int(age): print("age is not valid") input() return gender = input("enter gender ") if not Validation.gender(gender): print("gender is not valid") input() return created_by = self.bdo_id encrypted_pass = encrypt_pass(password) self.conn.add_user(id, encrypted_pass, user_name, role_id, created_at, updated_at, name, is_deleted) self.conn.add_personal_details(id, state, district, pincode, age, gender, created_by) self.conn.commit_data() print("\n" + Color.F_Green + "record inserted" + Base.END) except Exception as e: print(e) self.conn.rollback_data()
def test_encrypt_pass(self, mock_encrypt): password = '******' result = encrypt_pass(password) mock_encrypt.assert_called_once() self.assertEqual('dummy', result)
def test_encrypt_pass(self, mock_encode, mock_encrypt): password = '******' encrypt_pass(password) mock_encrypt.assert_called_once_with(mock.ANY, password) mock_encode.assert_called_once()