def test_sync_where_in_facetools_missing_in_facebook(self): from test_project.testapp3.facebook_test_users import facebook_test_users as t3 facebook_test_users = t3() self.assertTrue(not all([u['installed'] for u in facebook_test_users])) # make sure all the users aren't set to have the app installed self.assertEquals(0, TestUser.objects.count()) management.call_command('sync_facebook_test_users', 'testapp3') # Get the test user data from facebook test_users_url = "https://graph.facebook.com/%s/accounts/test-users?access_token=%s" % (settings.FACEBOOK_APPLICATION_ID, _get_app_access_token()) test_users = _merge_with_facebook_data(facebook_test_users, json.loads(requests.get(test_users_url).content)['data'], _get_app_access_token()) # Make sure the data looks good self.assertEquals(3, TestUser.objects.count()) self.assertEquals(3, len(test_users)) self.assertEquals(3, len([u for u in test_users if 'graph_user_data' in u])) # Now remove the users from facebook, leaving them in facetools database for test_user in test_users: _delete_test_user_on_facebook(TestUser.objects.get(name=test_user['name'])) self.assertEquals(3, TestUser.objects.count()) check_users = json.loads(requests.get(test_users_url).content)['data'] old_ids = [u['graph_user_data']['id'] for u in test_users] self.assertTrue(not any([c['id'] in old_ids for c in check_users])) # After syncing again the data should be back to normal management.call_command('sync_facebook_test_users', 'testapp3') test_users = _merge_with_facebook_data(facebook_test_users, json.loads(requests.get(test_users_url).content)['data'], _get_app_access_token()) self.assertEquals(3, TestUser.objects.count()) self.assertEquals(3, len(test_users)) self.assertEquals(3, len([u for u in test_users if 'graph_user_data' in u])) # Make sure the generated fixture is correct self.assertTestUserFixture(testapp3, 'testapp3', t3())
def delete(self, *args, **kwargs): from facetools.test.testusers import _delete_test_user_on_facebook # avoiding circular dependency if self.facebook_id: for attempts in range(3, 0, -1): try: _delete_test_user_on_facebook(self) break except: if attempts <= 0: raise super(TestUser, self).delete(*args, **kwargs)
def delete(self, *args, **kwargs): from facetools.test.testusers import _delete_test_user_on_facebook # avoiding circular dependency if self.facebook_id: for attempts in range(3, 0, -1): try: _delete_test_user_on_facebook(self) break except: if attempts <= 0: raise super(TestUser, self).delete(*args, **kwargs)
def test_sync_where_in_facetools_missing_in_facebook(self): from test_project.testapp3.facebook_test_users import facebook_test_users as t3 facebook_test_users = t3() self.assertTrue(not all([ u['installed'] for u in facebook_test_users ])) # make sure all the users aren't set to have the app installed self.assertEquals(0, TestUser.objects.count()) management.call_command('sync_facebook_test_users', 'testapp3') # Get the test user data from facebook test_users_url = "https://graph.facebook.com/%s/accounts/test-users?access_token=%s" % ( settings.FACEBOOK_APPLICATION_ID, _get_app_access_token()) test_users = _merge_with_facebook_data( facebook_test_users, json.loads(requests.get(test_users_url).content)['data'], _get_app_access_token()) # Make sure the data looks good self.assertEquals(3, TestUser.objects.count()) self.assertEquals(3, len(test_users)) self.assertEquals( 3, len([u for u in test_users if 'graph_user_data' in u])) # Now remove the users from facebook, leaving them in facetools database for test_user in test_users: _delete_test_user_on_facebook( TestUser.objects.get(name=test_user['name'])) self.assertEquals(3, TestUser.objects.count()) check_users = json.loads(requests.get(test_users_url).content)['data'] old_ids = [u['graph_user_data']['id'] for u in test_users] self.assertTrue(not any([c['id'] in old_ids for c in check_users])) # After syncing again the data should be back to normal management.call_command('sync_facebook_test_users', 'testapp3') test_users = _merge_with_facebook_data( facebook_test_users, json.loads(requests.get(test_users_url).content)['data'], _get_app_access_token()) self.assertEquals(3, TestUser.objects.count()) self.assertEquals(3, len(test_users)) self.assertEquals( 3, len([u for u in test_users if 'graph_user_data' in u])) # Make sure the generated fixture is correct self.assertTestUserFixture(testapp3, 'testapp3', t3())