def test_not_retrieving_same_forms_repeatedly(self, mock_ona_form_submissions, mock_get_form_definition): # The test DATA fixture already contains the form def json submission = json.loads(USER_CODE_DATA) mock_ona_form_submissions.return_value = [submission] verify_deviceid.run() self.assertEqual(1, FormSubmission.objects.count())
def test_not_retrieving_same_forms_repeatedly(self, mock_ona_form_submissions, mock_get_form_definition): # The test DATA fixture already contains the form def json submission = json.loads(USER_CODE_DATA) mock_ona_form_submissions.return_value = [submission] verify_deviceid.run() self.assertEqual(1, FormSubmission.objects.count())
def test_verify_deviceid_invalid_code(self, mock_logger, mock_ona_form_submissions, mock_get_form_definition): self.assertFalse(FormSubmission.objects.all()) # The test DATA fixture already contains the form def json submission = json.loads(USER_CODE_DATA) submission['qr_code'] = 'foobar' mock_ona_form_submissions.return_value = [submission] verify_deviceid.run() self.assertEqual(0, FormSubmission.objects.count()) self.assertTrue(mock_logger.error.called)
def test_verify_deviceid_invalid_code(self, mock_logger, mock_ona_form_submissions, mock_get_form_definition): self.assertFalse(FormSubmission.objects.all()) # The test DATA fixture already contains the form def json submission = json.loads(USER_CODE_DATA) submission['qr_code'] = 'foobar' mock_ona_form_submissions.return_value = [submission] verify_deviceid.run() self.assertEqual(0, FormSubmission.objects.count()) self.assertTrue(mock_logger.error.called)
def test_update_deviceid(self, mock_ona_form_submissions, mock_get_form_definition): # A later scan can update the user/device connection user2 = CtsUserFactory(code='test2', deviceid='device_foo') user3 = CtsUserFactory(code='test3', deviceid='device_foo') submission = json.loads(USER_CODE_DATA) mock_ona_form_submissions.return_value = [submission] verify_deviceid.run() # "new" user now has device self.assertEqual('device_foo', CtsUser.objects.get(pk=self.user.pk).deviceid) # and previous users do not self.assertEqual('', CtsUser.objects.get(pk=user2.pk).deviceid) self.assertEqual('', CtsUser.objects.get(pk=user3.pk).deviceid)
def test_update_deviceid(self, mock_ona_form_submissions, mock_get_form_definition): # A later scan can update the user/device connection user2 = CtsUserFactory(code='test2', deviceid='device_foo') user3 = CtsUserFactory(code='test3', deviceid='device_foo') submission = json.loads(USER_CODE_DATA) mock_ona_form_submissions.return_value = [submission] verify_deviceid.run() # "new" user now has device self.assertEqual('device_foo', CtsUser.objects.get(pk=self.user.pk).deviceid) # and previous users do not self.assertEqual('', CtsUser.objects.get(pk=user2.pk).deviceid) self.assertEqual('', CtsUser.objects.get(pk=user3.pk).deviceid)
def test_verify_deviceid(self, mock_ona_form_submissions, mock_get_form_definition): self.assertEqual('', self.user.deviceid) self.assertFalse(FormSubmission.objects.all()) submission = json.loads(USER_CODE_DATA) mock_ona_form_submissions.return_value = [submission] verify_deviceid.run() self.assertEqual(1, FormSubmission.objects.count()) # Passed minimum as the 'since' parm mock_ona_form_submissions.assert_called_with(ANY, 111, since=minimum_aware_datetime()) # Only add the record once verify_deviceid.run() self.assertEqual(1, FormSubmission.objects.count()) # passed the previous submission time as the 'since' parm when fetching forms subtime = OnaItemBase.parse_form_datetime(submission['_submission_time']) mock_ona_form_submissions.assert_called_with(ANY, 111, since=subtime) self.assertEqual('device_foo', CtsUser.objects.get(pk=self.user.pk).deviceid)
def test_verify_deviceid(self, mock_ona_form_submissions, mock_get_form_definition): self.assertEqual('', self.user.deviceid) self.assertFalse(FormSubmission.objects.all()) submission = json.loads(USER_CODE_DATA) mock_ona_form_submissions.return_value = [submission] verify_deviceid.run() self.assertEqual(1, FormSubmission.objects.count()) # Passed minimum as the 'since' parm mock_ona_form_submissions.assert_called_with( ANY, 111, since=minimum_aware_datetime()) # Only add the record once verify_deviceid.run() self.assertEqual(1, FormSubmission.objects.count()) # passed the previous submission time as the 'since' parm when fetching forms subtime = OnaItemBase.parse_form_datetime( submission['_submission_time']) mock_ona_form_submissions.assert_called_with(ANY, 111, since=subtime) self.assertEqual('device_foo', CtsUser.objects.get(pk=self.user.pk).deviceid)
def test_bad_form_id(self, mock_logger, mock_ona_form_submissions, mock_get_form_definition): mock_get_form_definition.return_value = None verify_deviceid.run() self.assertIn(settings.ONA_DEVICEID_VERIFICATION_FORM_ID, bad_form_ids) self.assertTrue(mock_logger.error.called)
def test_bad_form_id(self, mock_logger, mock_ona_form_submissions, mock_get_form_definition): mock_get_form_definition.return_value = None verify_deviceid.run() self.assertIn(settings.ONA_DEVICEID_VERIFICATION_FORM_ID, bad_form_ids) self.assertTrue(mock_logger.error.called)