def assertInputOutput(self, get, code=200, response='id=123'): request = HttpRequest() request.method = 'GET' request.GET = get # register device with patch('urllib2.urlopen') as urlopen: urlopen.return_value = make_fake_urlopen( response=response)(request) response = views.set_registration_id(request) self.assertIsInstance(response, HttpResponse) self.assertEqual(response.status_code, code)
def test_register_device(self): # Create new device request = HttpRequest() request.method = 'GET' request.GET = { 'device_id': 'devid_001', 'registration_id': 'reg_id_001'} # register device with patch('urllib2.urlopen') as urlopen: urlopen.return_value = make_fake_urlopen( response='id=123')(request) response = views.set_registration_id(request) self.assertIsInstance(response, HttpResponse) self.assertEqual(response.status_code, 200) ad = AndroidDevice.objects.get(device_id='devid_001') self.assertEqual(ad.registration_id, '') # wait to the time to send a token task = response.task_registration res = task.wait() adt = AndroidDeviceToken.objects.get(registration_id='reg_id_001') self.assertTrue(len(adt.token) == REGISTRATION_TOKEN_LEN) # check token request = HttpRequest() request.method = 'GET' request.GET = { 'device_id': 'devid_001', 'registration_token': adt.token} response = views.check_token(request) self.assertEqual(response.status_code, 200) # check if has been set registration_id ad = AndroidDevice.objects.get(registration_id='reg_id_001') self.assertEqual('devid_001', ad.device_id) ############################## # update registration_id # Create new device request = HttpRequest() request.method = 'GET' request.GET = { 'device_id': 'devid_001', 'registration_id': 'reg_id_002'} # register device with patch('urllib2.urlopen') as urlopen: urlopen.return_value = make_fake_urlopen( response='id=1234')(request) response = views.set_registration_id(request) self.assertIsInstance(response, HttpResponse) self.assertEqual(response.status_code, 200) ad = AndroidDevice.objects.get(device_id='devid_001') self.assertEqual(ad.registration_id, 'reg_id_001') # wait to the time to send a token task = response.task_registration task.wait() adt = AndroidDeviceToken.objects.get(registration_id='reg_id_002') self.assertTrue(len(adt.token) == REGISTRATION_TOKEN_LEN) # check token request = HttpRequest() request.method = 'GET' request.GET = { 'device_id': 'devid_001', 'registration_token': adt.token} response = views.check_token(request) self.assertEqual(response.status_code, 200) # check if has been set registration_id ad = AndroidDevice.objects.get(registration_id='reg_id_002') self.assertEqual('devid_001', ad.device_id)