示例#1
0
    def test_show_request_rejected_approval(self, mock_menu, mock_db,
                                            mock_print, mock_input,
                                            mock_table):
        mock_db().get_requests.return_value.description.return_value = [
            'dummy', 'dummy', 'dummy', 'dummy', 'dummy'
        ]
        mock_db().get_requests.return_value.fetchall.return_value = [[
            'APPROVAL', 'dummy', 'MEMBER|sample_member|ea32d0e8-'
            '298a-4967-9fbd-72dc595294fb|334aabf5-'
            '8663-492d-bf75-6a5d7ece032d|project1', 'dummy', 'dummy'
        ]]
        mock_menu().draw_menu.return_value = 'REJECTED'
        mock_input.side_effect = ['0', '']

        bdo = BDO()
        bdo.show_requests()

        mock_menu().draw_menu.assert_called_once()
        mock_table.assert_called_once()
        mock_db().get_requests.assert_called_once()
        mock_db().resolve_request.assert_called_once()
        mock_db().commit_data.assert_called_once()
        mock_db().get_requests().fetchall.assert_called_once()
        self.assertEqual(mock_print.call_count, 3)
        self.assertEqual(mock_input.call_count, 2)
示例#2
0
 def test_show_gpm_no_gpm(self, mock_db, mock_decrypt, mock_raw_to_table, mock_print):
     mock_db().get_subordinate_details.return_value.fetchall.return_value = []
     bdo = BDO()
     bdo.show_gpm()
     self.assertEqual(mock_print.call_count, 2)
     mock_db().get_subordinate_details.assert_called_once()
     mock_db().get_subordinate_details().fetchall.assert_called_once()
示例#3
0
 def test_project_deletion_exception(self, mock_db, mock_print):
     mock_db().get_project_members_list.side_effect = Exception
     bdo = BDO()
     bdo.project_deletion()
     mock_print.assert_called_once()
     mock_db().get_project_members_list.assert_called_once()
     mock_db().rollback_data.assert_called_once()
示例#4
0
 def test_create_project_exception(self, mock_gpm_list, mock_db, mock_print):
     mock_gpm_list.side_effect = Exception
     bdo = BDO()
     bdo.create_project()
     self.assertEqual(mock_print.call_count, 2)
     mock_gpm_list.assert_called_once()
     mock_db().rollback_data.assert_called_once()
示例#5
0
 def test_show_members(self, mock_db, mock_print, mock_gpm):
     mock_db().get_user_names.return_value = [['dummy', 'dummy']]
     bdo = BDO()
     bdo.show_members()
     mock_db().get_user_names.assert_called_once()
     mock_gpm().show_members.assert_called_once()
     self.assertEqual(mock_print.call_count, 2)
示例#6
0
 def test_get_project_list(self, mock_db):
     mock_db().get_bdo_project_names.return_value = [['name', 'id']]
     sample_dict = {'name': 'id'}
     bdo = BDO()
     result = bdo.get_project_list()
     mock_db().get_bdo_project_names.assert_called_once()
     self.assertEqual(result, sample_dict)
示例#7
0
 def test_update_gpm_exception(self, mock_gpm_list, mock_db, mock_print):
     mock_gpm_list.side_effect = Exception
     bdo = BDO()
     bdo.update_gpm()
     mock_print.assert_called_once()
     mock_gpm_list.assert_called_once()
     mock_db().rollback_data.assert_called_once()
示例#8
0
 def test_show_request_exception(self, mock_db, mock_print):
     mock_db().get_requests.side_effect = Exception
     bdo = BDO()
     bdo.show_requests()
     mock_print.assert_called_once()
     mock_db().get_requests.assert_called_once()
     mock_db().rollback_data.assert_called_once()
示例#9
0
 def test_update_gpm_back(self, mock_gpm_list, mock_menu, mock_input):
     mock_gpm_list.return_value = {'name1': 'id1'}
     mock_menu().draw_menu.side_effect = ['BACK']
     bdo = BDO()
     bdo.update_gpm()
     mock_input.assert_called_once()
     mock_menu().draw_menu.assert_called_once()
     mock_gpm_list.assert_called_once()
示例#10
0
 def test_delete_project_back(self, mock_project_list, mock_menu, mock_input):
     mock_project_list.return_value = {'name1': 'id1'}
     mock_menu().draw_menu.side_effect = ['BACK']
     bdo = BDO()
     bdo.delete_project()
     mock_input.assert_called_once()
     mock_menu().draw_menu.assert_called_once()
     mock_project_list.assert_called_once()
示例#11
0
 def test_create_gpm_invalid_gender(self, mock_print, mock_input):
     mock_input.side_effect = [
         'name', 'pass@Pas123', 'username', 'state', 'district', '232323',
         '21', 'male', ''
     ]
     bdo = BDO()
     bdo.create_gpm()
     mock_print.assert_called_once()
     self.assertEqual(mock_input.call_count, 9)
示例#12
0
    def test_show_request_no_request(self, mock_db, mock_print):
        mock_db().get_requests.return_value.fetchall.return_value = []
        mock_db().get_requests.return_value.description.return_value = ()
        bdo = BDO()
        bdo.show_requests()

        mock_db().get_requests.assert_called_once()
        mock_db().get_requests().fetchall.assert_called_once()
        self.assertEqual(mock_print.call_count, 1)
示例#13
0
 def test_show_gpm(self, mock_db, mock_decrypt, mock_raw_to_table, mock_print):
     mock_db().get_subordinate_details.return_value.fetchall.return_value = [['dummy1', 'dummy2', 'dummy3']]
     bdo = BDO()
     bdo.show_gpm()
     mock_print.assert_called_once_with("GPM's list:\n")
     mock_db().get_subordinate_details.assert_called_once()
     mock_db().get_subordinate_details().fetchall.assert_called_once()
     mock_decrypt.assert_called_once()
     mock_raw_to_table.assert_called_once()
示例#14
0
 def test_delete_project_members(self, mock_db):
     mock_db().get_members_assigned_project.return_value = ['dummy', 'dummy', '2020-02-23']
     mock_db().find_project_is_assigned.return_value = []
     bdo = BDO()
     bdo.delete_project_members()
     mock_db().get_members_assigned_project.assert_called_once()
     mock_db().register_project_completion.assert_called_once()
     mock_db().remove_project_member.assert_called_once()
     mock_db().find_project_is_assigned.assert_called_once()
     mock_db().update_project.assert_called_once()
示例#15
0
 def test_delete_gpm_menu2_back(self, mock_gpm_list, mock_menu, mock_print, mock_os, mock_input):
     mock_gpm_list.return_value = {'name1': 'id1', 'name2': 'id2'}
     mock_menu().draw_menu.side_effect = ['name1', 'BACK']
     bdo = BDO()
     bdo.delete_gpm()
     self.assertEqual(mock_input.call_count, 2)
     self.assertEqual(mock_print.call_count, 2)
     self.assertEqual(mock_menu().draw_menu.call_count, 2)
     mock_os.system.assert_called_once_with('clear')
     mock_gpm_list.assert_called_once()
示例#16
0
 def test_delete_gpm_no_alternative(self, mock_gpm_list, mock_menu, mock_print, mock_os, mock_input):
     mock_gpm_list.return_value = {'name1': 'id1'}
     mock_menu().draw_menu.side_effect = ['name1']
     bdo = BDO()
     bdo.delete_gpm()
     self.assertEqual(mock_print.call_count, 3)
     mock_os.system.assert_called_once()
     mock_input.assert_called_once()
     mock_menu().draw_menu.assert_called_once()
     mock_gpm_list.assert_called_once()
示例#17
0
 def test_create_gpm(self, mock_db, mock_print, mock_input, mock_encrypt):
     mock_input.side_effect = ['name', 'pass@Pas123', 'username', 'state', 'district', '232323', '21', 'M']
     bdo = BDO()
     bdo.create_gpm()
     mock_db().add_user.assert_called_once()
     mock_db().add_personal_details.assert_called_once()
     mock_db().commit_data.assert_called_once()
     mock_encrypt.assert_called_once()
     mock_print.assert_called_once()
     self.assertEqual(mock_input.call_count, 8)
示例#18
0
 def test_delete_project(self, mock_print, mock_project_list, mock_menu, mock_input, mock_project_deletion):
     mock_project_list.return_value = {'name': 'id'}
     mock_menu().draw_menu.return_value = 'name'
     mock_input.return_value = ''
     bdo = BDO()
     bdo.delete_project()
     mock_input.assert_called_once()
     mock_menu().draw_menu.assert_called_once()
     mock_project_list.assert_called_once()
     mock_project_deletion.assert_called_once()
     self.assertEqual(mock_print.call_count, 2)
示例#19
0
    def test_update_project_type(self, mock_print, mock_menu, mock_input, mock_db, mock_project_list):
        mock_input.return_value = ''
        mock_project_list.return_value = {'name': 'id'}
        mock_menu().draw_menu.side_effect = ['name', 'PROJECT_TYPE', 'road_project']
        bdo = BDO()
        bdo.update_project()

        self.assertEqual(mock_input.call_count, 3)
        self.assertEqual(mock_print.call_count, 4)
        self.assertEqual(mock_menu().draw_menu.call_count, 3)
        mock_db().update_project.assert_called_once()
        mock_db().commit_data.assert_called_once()
        mock_project_list.assert_called_once()
示例#20
0
    def test_update_gpm_invalid_gender(self, mock_input, mock_gpm_list, mock_validation, mock_print, mock_menu):
        mock_gpm_list.return_value = {'name1': 'id1', 'name2': 'id2'}
        mock_menu().draw_menu.side_effect = ['name1', 'GENDER']
        mock_validation.gender.return_value = False
        mock_input.side_effect = ['', '', 'dummy_data', '']
        bdo = BDO()
        bdo.update_gpm()

        self.assertEqual(mock_menu().draw_menu.call_count, 2)
        self.assertEqual(mock_print.call_count, 2)
        mock_gpm_list.assert_called_once()
        self.assertEqual(mock_input.call_count, 4)
        mock_validation.gender.assert_called_once_with('dummy_data')
示例#21
0
    def test_create_project_invalid_cost_number(self, mock_print, mock_menu, mock_input, mock_validation, mock_gpm_list):
        mock_input.return_value = ''
        mock_menu().draw_menu.return_value = ''
        mock_validation.is_int.side_effect = [True, False]
        mock_menu().draw_menu.side_effect = ['name', 'project_type']
        mock_gpm_list.return_value = {'name': 'id'}

        bdo = BDO()
        bdo.create_project()
        self.assertEqual(mock_validation.is_int.call_count, 2)
        self.assertEqual(mock_print.call_count, 3)
        self.assertEqual(mock_menu().draw_menu.call_count, 2)
        self.assertEqual(mock_input.call_count, 6)
示例#22
0
    def test_update_project_invalid_area(self, mock_print, mock_menu, mock_input, mock_project_list, mock_validation):
        mock_input.return_value = ''
        mock_project_list.return_value = {'name': 'id'}
        mock_menu().draw_menu.side_effect = ['name', 'AREA_OF_PROJECT']
        mock_validation.is_int.return_value = False
        bdo = BDO()
        bdo.update_project()

        self.assertEqual(mock_input.call_count, 4)
        self.assertEqual(mock_print.call_count, 3)
        self.assertEqual(mock_menu().draw_menu.call_count, 2)
        mock_project_list.assert_called_once()
        mock_validation.is_int.assert_called_once()
示例#23
0
    def test_update_gpm_user_details(self, mock_db, mock_input, mock_gpm_list, mock_print, mock_menu, mock_encrypt):
        mock_gpm_list.return_value = {'name1': 'id1', 'name2': 'id2'}
        mock_menu().draw_menu.side_effect = ['name1', 'PASSWORD']
        mock_encrypt.return_value = 'Pass@123'
        mock_input.side_effect = ['', '', 'Pass@123']
        bdo = BDO()
        bdo.update_gpm()

        self.assertEqual(mock_menu().draw_menu.call_count, 2)
        self.assertEqual(mock_print.call_count, 2)
        mock_gpm_list.assert_called_once()
        self.assertEqual(mock_input.call_count, 3)
        mock_db().update_user.assert_called_once_with('PASSWORD', mock.ANY, 'Pass@123')
        mock_db().commit_data.assert_called_once()
示例#24
0
    def test_update_project_invalid_end_date(self, mock_print, mock_menu, mock_input, mock_project_list,
                                             mock_validation, mock_db):
        mock_input.return_value = ''
        mock_project_list.return_value = {'name': 'id'}
        mock_menu().draw_menu.side_effect = ['name', 'ESTIMATED_END_DATE']
        mock_validation.end_date.return_value = False
        bdo = BDO()
        bdo.update_project()

        self.assertEqual(mock_input.call_count, 4)
        self.assertEqual(mock_print.call_count, 3)
        self.assertEqual(mock_menu().draw_menu.call_count, 2)
        mock_project_list.assert_called_once()
        mock_validation.end_date.assert_called_once()
示例#25
0
    def test_update_project_invalid_labour_numbers(self, mock_print, mock_menu, mock_input, mock_project_list
                                                   , mock_validation):
        mock_input.return_value = ''
        mock_project_list.return_value = {'name': 'id'}
        mock_menu().draw_menu.side_effect = ['name', 'TOTAL_LABOUR_REQUIRED']
        mock_validation.is_int.return_value = False
        bdo = BDO()
        bdo.update_project()

        self.assertEqual(mock_input.call_count, 4)
        self.assertEqual(mock_print.call_count, 3)
        self.assertEqual(mock_menu().draw_menu.call_count, 2)
        mock_project_list.assert_called_once()
        mock_validation.is_int.assert_called_once()
示例#26
0
文件: login.py 项目: riyaz489/mnrega
def main():
    """
    this method is used to call main menu for login
    """
    conn = ConnectDb()
    try:
        os.system('clear')
        # select role for login
        print("login as:\n")
        menu = Menu()
        roles = [x.name for x in Role]
        roles.extend([str(BackButton.EXIT.name)])
        role = menu.draw_menu(roles)
        role_id = Role[role].value
        input()

        # get user name and password for login
        user_name = input("enter user name: ")
        password = getpass()

        # check user authentication
        result = conn.get_user_with_role(user_name, role_id)
        flag = True
        if result is not None:
            os.system('clear')
            actual_pass = decrypt_pass(result[1])
            if str(actual_pass.decode("utf-8")) == password:
                flag = False
                if role_id == int(Role.BDO.value):
                    bdo = BDO()
                    bdo.bdo_id = result[0]
                    bdo.bdo_features()
                elif role_id == int(Role.GPM.value):
                    gpm = GPM()
                    gpm.gpm_id = result[0]
                    gpm.gpm_features()
                elif role_id == int(Role.Member.value):
                    member = Member()
                    member.member_id = result[0]
                    member.member_features()
        if result is None or flag:
            print(Color.F_Red + 'wrong credentials' + Base.END)
            input()
            main()

    except Exception as e:
        print(e)
        sys.exit()
    finally:
        conn.close_conn()
示例#27
0
 def test_project_deletion(self, mock_db):
     mock_db().get_project_members_list.return_value = [['dummy', 'dummy', '2020-02-23']]
     mock_db().get_bdo_approvals_list.return_value = [['dummy_id', 'MEMBER|sample_member|ea32d0e8-298a-4967-'
                                                                   '9fbd-72dc595294fb|334aabf5-8663-492d-bf75-'
                                                                   '6a5d7ece032d|project1']]
     bdo = BDO()
     bdo.project_id = '334aabf5-8663-492d-bf75-6a5d7ece032d'
     bdo.project_deletion()
     mock_db().get_project_members_list.assert_called_once()
     mock_db().register_project_completion.assert_called_once()
     mock_db().remove_project_all_members.assert_called_once()
     mock_db().get_bdo_approvals_list.assert_called_once()
     mock_db().commit_data.assert_called_once()
     mock_db().resolve_request.assert_called_once_with("'True'", mock.ANY)
     mock_db().update_project.assert_called_once_with('is_deleted', 'True', mock.ANY)
示例#28
0
    def test_create_project_invalid_start_date(self, mock_print, mock_menu, mock_input, mock_validation, mock_gpm_list):
        mock_input.return_value = ''
        mock_menu().draw_menu.return_value = ''
        mock_validation.is_int.return_value = True
        mock_validation.start_date.return_value = False
        mock_menu().draw_menu.side_effect = ['name', 'project_type']
        mock_gpm_list.return_value = {'name': 'id'}

        bdo = BDO()
        bdo.create_project()
        self.assertEqual(mock_validation.is_int.call_count, 3)
        self.assertEqual(mock_print.call_count, 3)
        self.assertEqual(mock_menu().draw_menu.call_count, 2)
        self.assertEqual(mock_input.call_count, 8)
        mock_validation.start_date.assert_called_once()
示例#29
0
    def test_update_gpm_personal_detail(self, mock_db, mock_input, mock_gpm_list, mock_validation, mock_print,
                                        mock_menu):
        mock_gpm_list.return_value = {'name1': 'id1', 'name2': 'id2'}
        mock_menu().draw_menu.side_effect = ['name1', 'AGE']
        mock_validation.age.return_value = True
        mock_input.side_effect = ['', '', 'dummy_data']
        bdo = BDO()
        bdo.update_gpm()

        self.assertEqual(mock_menu().draw_menu.call_count, 2)
        self.assertEqual(mock_print.call_count, 2)
        mock_gpm_list.assert_called_once()
        mock_validation.age.assert_called_once()
        self.assertEqual(mock_input.call_count, 3)
        mock_db().update_personal_details.assert_called_once_with('AGE', mock.ANY, 'dummy_data')
        mock_db().commit_data.assert_called_once()
示例#30
0
 def test_delete_gpm(self, mock_gpm_list, mock_menu, mock_print, mock_db, mock_os, mock_delete_member, mock_input):
     mock_gpm_list.return_value = {'name1': 'id1', 'name2': 'id2'}
     mock_menu().draw_menu.side_effect = ['name1', 'name2']
     mock_db().get_gpm_projects.return_value = ['dummy']
     mock_db().get_project_members.return_value = [['dummy']]
     bdo = BDO()
     bdo.delete_gpm()
     self.assertEqual(mock_menu().draw_menu.call_count, 2)
     self.assertEqual(mock_input.call_count, 2)
     self.assertEqual(mock_print.call_count, 2)
     mock_os.system.assert_called_once()
     mock_delete_member.assert_called_once()
     mock_db().get_project_members.assert_called_once()
     mock_db().get_gpm_projects.assert_called_once()
     mock_gpm_list.assert_called_once()
     mock_db().update_member_gpm.assert_called_once()
     mock_db().update_user.assert_called_once()
     mock_db().commit_data.assert_called_once()