def test_enroll(self, mock_directoryclass): """Tests Enroll with mock methods.""" mock_directoryclient = mock_directoryclass.return_value mock_directoryclient.get_chrome_device.return_value = ( self.unenrolled_device) mock_directoryclient.get_chrome_device_by_serial.return_value = ( self.unenrolled_device_directory) retrieved_device = device_model.Device.get( serial_number=self.unenrolled_device.serial_number) self.assertFalse(retrieved_device.enrolled) request = device_messages.DeviceRequest( serial_number=self.unenrolled_device.serial_number) with mock.patch.object(self.service, 'check_xsrf_token', autospec=True) as mock_xsrf_token: response = self.service.enroll(request) self.assertIsInstance(response, message_types.VoidMessage) retrieved_device = device_model.Device.get( serial_number=self.unenrolled_device.serial_number) self.assertTrue(retrieved_device.enrolled) self.assertEqual(mock_xsrf_token.call_count, 1)
def test_resume_loan(self, mock_xsrf_token, mock_resume_loan): self.login_endpoints_user() self.service.resume_loan( device_messages.DeviceRequest(urlkey=self.device.key.urlsafe())) assert mock_resume_loan.call_count == 1 assert mock_xsrf_token.call_count == 1
def test_mark_lost(self, mock_xsrf_token, mock_marklost): self.service.mark_lost( device_messages.DeviceRequest(urlkey=self.device.key.urlsafe())) mock_marklost.assert_called_once_with( user_email=loanertest.SUPER_ADMIN_EMAIL) assert mock_xsrf_token.call_count == 1
def test_get_device_directory_errors(self, test_error, mock_directory_class): request = device_messages.DeviceRequest(asset_tag='12345') mock_directory_client = mock_directory_class.return_value mock_directory_client.given_name.side_effect = test_error self.assertIsNone(self.service.get_device(request).given_name)
def test_get_device_unenrolled(self): request = device_messages.DeviceRequest( unknown_identifier=self.device.serial_number) self.device.enrolled = False with self.assertRaises(device_api.endpoints.BadRequestException): self.service.get_device(request)
def test_get_device_not_found(self, mock_directory_class): mock_directory_client = mock_directory_class.return_value mock_directory_client.given_name.return_value = 'given name value' request = device_messages.DeviceRequest(unknown_identifier='not-found') with self.assertRaises(device_api.endpoints.NotFoundException): self.service.get_device(request)
def test_device_audit_check_device_damaged(self): request = device_messages.DeviceRequest( unknown_identifier=self.device.serial_number) self.device.damaged = True with self.assertRaises(device_api.endpoints.BadRequestException): self.service.device_audit_check(request)
def test_enroll_error(self, test_error, mock_device_cls): mock_device_cls.enroll.side_effect = test_error request = device_messages.DeviceRequest( serial_number=self.unenrolled_device.serial_number) with self.assertRaises(endpoints.BadRequestException): self.service.enroll(request)
def test_device_audit_check_audit_error(self): request = device_messages.DeviceRequest( identifier=self.device.serial_number) self.testbed.mock_raiseevent.side_effect = device_model.DeviceAuditEventError with self.assertRaises(device_api.endpoints.BadRequestException): self.service.device_audit_check(request)
def test_device_audit_check_device_not_enrolled(self): request = device_messages.DeviceRequest( identifier=self.device.serial_number) self.device.enrolled = False with self.assertRaises(device_api.endpoints.BadRequestException): self.service.device_audit_check(request)
def testHistoryRequest(self): hist_req = device_messages.HistoryRequest( device=device_messages.DeviceRequest(asset_tag='FAKE-DEVICE-TAG')) self.assertEqual(hist_req.device.asset_tag, 'FAKE-DEVICE-TAG')
def test_get_history(self, mock_xsrf_token, mock_bigquery): device_request = device_messages.DeviceRequest() device_request.asset_tag = '12345' request = device_messages.HistoryRequest(device=device_request) device_response = device_messages.Device() device_response.asset_tag = '12345' expected_response = device_messages.HistoryResponse() for _ in range(2): expected_response.devices.append(device_response) expected_response.timestamp.append( datetime.datetime(2019, 10, 22, 20, 43, 37)) expected_response.actor.append('*****@*****.**') expected_response.summary.append( 'Beginning new loan for user [email protected] with device 12345.' ) bigquery_response = [ (u"Key('Device', 5158133238333440)", datetime.datetime(2019, 10, 22, 20, 43, 37), u'*****@*****.**', u'enable_guest_mode', u'Beginning new loan for user [email protected] with device 12345.', { u'ou_changed_date': datetime.datetime(2019, 10, 22, 20, 43, 37), u'current_ou': u'/', u'shelf': None, u'due_date': datetime.datetime(2019, 10, 22, 20, 43, 37), u'chrome_device_id': u'unique_id_1', u'mark_pending_return_date': None, u'asset_tag': u'12345', u'last_known_healthy': datetime.datetime(2019, 10, 22, 20, 43, 37), u'locked': False, u'last_reminder': { u'count': 1, u'time': datetime.datetime(2019, 10, 22, 20, 43, 37), u'level': 1 }, u'next_reminder': None, u'device_model': u'Chromebook', u'enrolled': True, u'serial_number': u'123ABC', u'damaged': False, u'onboarded': True, u'assignment_date': datetime.datetime(2019, 10, 22, 20, 43, 37), u'damaged_reason': None, u'assigned_user': u'*****@*****.**', u'lost': False, u'last_heartbeat': datetime.datetime(2019, 10, 22, 20, 43, 37) }), (u"Key('Device', 5158133238333440)", datetime.datetime(2019, 10, 22, 20, 43, 37), u'*****@*****.**', u'enable_guest_mode', u'Beginning new loan for user [email protected] with device 12345.', { u'ou_changed_date': datetime.datetime(2019, 10, 22, 20, 43, 37), u'current_ou': u'/', u'shelf': None, u'due_date': datetime.datetime(2019, 10, 22, 20, 43, 37), u'chrome_device_id': u'unique_id_1', u'mark_pending_return_date': None, u'asset_tag': u'12345', u'last_known_healthy': datetime.datetime(2019, 10, 22, 20, 43, 37), u'locked': False, u'last_reminder': { u'count': 1, u'time': datetime.datetime(2019, 10, 22, 20, 43, 37), u'level': 1 }, u'next_reminder': None, u'device_model': u'Chromebook', u'enrolled': True, u'serial_number': u'123ABC', u'damaged': False, u'onboarded': True, u'assignment_date': datetime.datetime(2019, 10, 22, 20, 43, 37), u'damaged_reason': None, u'assigned_user': u'*****@*****.**', u'lost': False, u'last_heartbeat': datetime.datetime(2019, 10, 22, 20, 43, 37) }), ] mock_bigquery_client = mock.Mock() mock_bigquery_client.get_device_info.return_value = bigquery_response mock_bigquery.return_value = mock_bigquery_client actual_response = self.service.get_history(request) self.assertEqual(actual_response, expected_response)