def test_enroll_new_device_error(self, mock_directoryclass): err_message = 'Failed to move device' mock_directoryclient = mock_directoryclass.return_value mock_directoryclient.move_chrome_device_org_unit.side_effect = ( directory.DirectoryRPCError(err_message)) ou = constants.ORG_UNIT_DICT.get('DEFAULT') with self.assertRaisesRegexp( device_model.DeviceCreationError, device_model._FAILED_TO_MOVE_DEVICE_MSG % ( '2346777', ou, err_message)): device_model.Device.enroll('2346777', loanertest.USER_EMAIL)
def test_unenroll_error(self): err_message = 'Failed to move device' self.enroll_test_device(loanertest.TEST_DIR_DEVICE_DEFAULT) self.mock_directoryclient.reset() self.mock_directoryclient.move_chrome_device_org_unit.side_effect = ( directory.DirectoryRPCError(err_message)) unenroll_ou = config_model.Config.get('unenroll_ou') with self.assertRaisesRegexp( device_model.FailedToUnenrollError, device_model._FAILED_TO_MOVE_DEVICE_MSG % ( self.test_device.serial_number, unenroll_ou, err_message)): self.test_device.unenroll(loanertest.USER_EMAIL)
def test_enable_guest_mode_failure(self): self.enroll_test_device(loanertest.TEST_DIR_DEVICE_DEFAULT) self.test_device.assigned_user = loanertest.USER_EMAIL self.test_device.put() self.mock_directoryclient.reset_mock() self.mock_directoryclient.move_chrome_device_org_unit.side_effect = ( directory.DirectoryRPCError('Guest move failed.')) config_model.Config.set('allow_guest_mode', True) with self.assertRaisesWithLiteralMatch(device_model.EnableGuestError, 'Guest move failed.'): self.test_device.enable_guest_mode(loanertest.USER_EMAIL) self.assertNotEqual(device_model.constants.ORG_UNIT_DICT['GUEST'], self.test_device.current_ou)
def test_disable_guest_mode_fail_to_move(self): self.enroll_test_device(loanertest.TEST_DIR_DEVICE_DEFAULT) self.test_device.current_ou = constants.ORG_UNIT_DICT['GUEST'] self.test_device.assigned_user = loanertest.USER_EMAIL self.test_device.put() err_message = 'Failed to move device' self.mock_directoryclient.reset() self.mock_directoryclient.move_chrome_device_org_unit.side_effect = ( directory.DirectoryRPCError(err_message)) with self.assertRaisesRegexp( device_model.UnableToMoveToDefaultOUError, device_model._FAILED_TO_MOVE_DEVICE_MSG % ( self.test_device.serial_number, constants.ORG_UNIT_DICT['DEFAULT'], err_message)): self.test_device._disable_guest_mode(loanertest.USER_EMAIL)
def test_enroll_move_ou_error(self, mock_directoryclass): device_model.Device( enrolled=False, serial_number='5467FD', chrome_device_id='unique_id_09', current_ou='not_default').put() err_message = 'Failed to move device' mock_directoryclient = mock_directoryclass.return_value mock_directoryclient.move_chrome_device_org_unit.side_effect = ( directory.DirectoryRPCError(err_message)) ou = constants.ORG_UNIT_DICT['DEFAULT'] with self.assertRaisesRegexp( device_model.DeviceCreationError, device_model._FAILED_TO_MOVE_DEVICE_MSG % ( '5467FD', ou, err_message)): device_model.Device.enroll( user_email=loanertest.USER_EMAIL, serial_number='5467FD')
def test_get_loan_without_given_name(self): """Tests the get loan function when the given name is not needed.""" self.mock_directoryclient.given_name.side_effect = ( directory.DirectoryRPCError('No name!')) now = datetime.datetime(year=2017, month=1, day=1) with freezegun.freeze_time(now): config_model.Config.set('loan_duration', 3) config_model.Config.set('maximum_loan_duration', 14) self.create_device(assigned_user=loanertest.USER_EMAIL) response = self.service.get_loan( chrome_message.LoanRequest(device_id=UNIQUE_ID, need_name=False)) self.assertIsInstance(response, chrome_message.LoanResponse) self.assertEqual(response.due_date, now + datetime.timedelta(days=3)) self.assertEqual( response.max_extend_date, now + datetime.timedelta(days=14)) self.assertIsNone(response.given_name) self.assertFalse(response.guest_enabled)
def test_get_users_directory_check_rpcerror_with_nextpagetoken( self, mock_directoryclass): directory_obj_rpcerror = [ { 'members': [ { 'email': 'tech_admin_user@{}'.format(loanertest.USER_DOMAIN) }, ], 'nextPageToken': 'AHmOf6b_Ika37tPYH5N' }, directory.DirectoryRPCError('Directory Failed') ] mockdirectoryclient = mock_directoryclass.return_value mockdirectoryclient.users_in_group.side_effect = ( directory_obj_rpcerror) with self.assertRaisesRegexp( sync_users.InvalidCallToDirectoryError, sync_users._DIR_CALL_INVALID_MSG % 'Directory Failed'): sync_users._get_users_directory(loanertest.USER_EMAIL, mockdirectoryclient)
def raise_error(group_email): raise directory.DirectoryRPCError(group_email)