def test_get_redir_user_demo(self): payload = {"user": {"username": self.demo["username"]}} self.client.login(username=payload["user"]["username"], password="******") sapp = SocialApp(provider='github', name='Github', client_id='<test>', secret='<test>') sapp.save() sacc = SocialAccount(uid=1001, user=self.test_user, provider="github") sacc.save() stoken = SocialToken(app=sapp, account=sacc, token="test_token") stoken.save() response = self.client.post('/accounts/profile', follow=True) first_url, first_response = response.redirect_chain[0] self.assertEqual( first_url, "/login?status=passed&token=test_token&username=testname&user_id=1001" ) self.client.login(username=payload["user"]["username"], password="******") stoken = SocialToken(app=sapp, account=sacc, token="test_token") stoken.save() response = self.client.post('/accounts/profile', follow=True) first_url, first_response = response.redirect_chain[0] self.assertEqual( first_url, "/login?status=passed&token=test_token&username=testname&user_id=1001" )
def test_get_redir_user_demo(self): payload = {"user": {"username": self.demo["username"]}} self.client.login(username=payload["user"]["username"], password="******") sapp = SocialApp(provider='github', name='Github', client_id='<test>', secret='<test>') sapp.save() sacc = SocialAccount(uid=1001, user=self.test_user, provider="github") sacc.save() stoken = SocialToken(app=sapp, account=sacc, token="test_token") stoken.save() response = self.client.post('/accounts/profile', follow=True) first_url, first_response = response.redirect_chain[0] self.assertEqual(first_url, "/login?status=passed&token=test_token&username=testname&user_id=1001") self.client.login(username=payload["user"]["username"], password="******") stoken = SocialToken(app=sapp, account=sacc, token="test_token") stoken.save() response = self.client.post('/accounts/profile', follow=True) first_url, first_response = response.redirect_chain[0] self.assertEqual(first_url, "/login?status=passed&token=test_token&username=testname&user_id=1001")
def complete_login(self, request, app, token, email_addresses=[]): client = TwitterAPI(request, app.client_id, app.secret, self.request_token_url) extra_data = client.get_user_info() uid = extra_data['id'] user = User.objects.filter(username=extra_data.get('screen_name')) if user: return user else: user = get_adapter() \ .populate_new_user(username=extra_data.get('screen_name'), name=extra_data.get('name')) user.save() account = SocialAccount(user=user, uid=uid, provider=TwitterProvider.id, extra_data=extra_data) account.save() application = SocialApp.objects.get(secret=app.secret) sample_token = SocialToken.objects.filter(app=application, account=account) if sample_token: token = sample_token[0] else: token = SocialToken( app=application, account=account, token=request.session["oauth_api.twitter.com_access_token"] ["oauth_token"], token_secret=request. session["oauth_api.twitter.com_access_token"] ["oauth_token_secret"]) token.save() mail = send_email_confirmation(request=request, user=user, signup=True) return SocialLogin(account=account, token=token, email_addresses=email_addresses)
def complete_login(self, request, app, token, email_addresses=[]): client = TwitterAPI(request, app.client_id, app.secret, self.request_token_url) extra_data = client.get_user_info() uid = extra_data['id'] user = User.objects.filter(username=extra_data.get('screen_name')) if user: return user else: user = get_adapter() \ .populate_new_user(username=extra_data.get('screen_name'), name=extra_data.get('name')) user.save() account = SocialAccount(user=user, uid=uid, provider=TwitterProvider.id, extra_data=extra_data) account.save() application = SocialApp.objects.get(secret=app.secret) sample_token = SocialToken.objects.filter(app=application, account=account) if sample_token: token = sample_token[0] else: token = SocialToken(app=application, account=account, token=request.session["oauth_api.twitter.com_access_token"]["oauth_token"], token_secret=request.session["oauth_api.twitter.com_access_token"][ "oauth_token_secret"]) token.save() mail = send_email_confirmation(request=request, user=user, signup=True) return SocialLogin(account=account, token=token, email_addresses=email_addresses)
class GitManagerTestCases(TestCase): def setUp(self): call_command('loaddata', 'fixtures/steps.json', verbosity=0) call_command('loaddata', 'fixtures/package_categories_languages.json', verbosity=0) call_command('loaddata', 'fixtures/cookiecutter.json', verbosity=0) self.user = User.objects.create_user('test', '*****@*****.**', 'test') self.workbench_user = WorkbenchUser.objects.get(user=self.user) self.second_user = User.objects.create_user('test2', '*****@*****.**', 'test2') self.git_repo = GitRepository.objects.create( name='Experiment', owner=self.workbench_user, github_url='https://github') schema = DataSchema(name='main') schema.save() self.experiment = Experiment.objects.create(title='Experiment', description='test', owner=self.workbench_user, git_repo=self.git_repo, language_id=1, template_id=2, schema=schema) self.client = Client() self.client.login(username='******', password='******') if self._testMethodName is not 'test_init_github_helper_no_socialtoken': self.set_up_social() def set_up_social(self): self.social_app = SocialApp(provider='GitHub', name='GitHub', client_id='B', secret='A') self.social_app.save() self.social_account = SocialAccount(user=self.user, provider='github', uid='A') self.social_account.save() self.social_token = SocialToken(app=self.social_app, account=self.social_account, token='A', token_secret='B') self.social_token.save() def test_init_github_helper_no_socialtoken(self): github_helper = GitHubHelper args = [self.user, 'test'] self.assertRaises(ValueError, github_helper, *args) @patch('git_manager.helpers.github_helper.GitHubHelper._get_github_object') def test_init_github_helper(self, mock_github): mock_github.return_value = GithubMock() github_helper = GitHubHelper(self.user, 'test') self.assertIsNotNone(github_helper) @patch('git_manager.helpers.github_helper.GitHubHelper._get_github_object') def test_init_github_helper_create(self, mock_github): mock_github.return_value = GithubMock() github_helper = GitHubHelper(self.user, 'test', create=True) self.assertIsNotNone(github_helper) self.assertEqual(github_helper.github_repository.repo_name, 'newly_created_repo') @patch('git_manager.helpers.github_helper.GitHubHelper._get_github_object') def test_github_owner(self, mock_github): mock_github.return_value = GithubMock() github_helper = GitHubHelper(self.user, 'test') self.assertIsNotNone(github_helper) self.assertEqual(github_helper.owner, 'test') @patch('git_manager.helpers.github_helper.GitHubHelper._get_github_object') def test_init_github_helper(self, mock_github): mock_github.return_value = GithubMock() github_helper = GitHubHelper(self.user, 'test') self.assertIsNotNone(github_helper) self.assertEqual(github_helper.get_clone_url(), 'https://A@clone-url') @patch('git_manager.helpers.github_helper.GitHubHelper._get_github_object') def test_github_list_folder(self, mock_github): mock_github.return_value = GithubMock() github_helper = GitHubHelper(self.user, 'test') self.assertIsNotNone(github_helper) self.assertEqual(github_helper.list_files_in_folder('test1'), GithubMockRepo.TEST1_LIST) @patch('git_manager.helpers.github_helper.GitHubHelper._get_github_object') def test_github_list_folder_with_slash(self, mock_github): mock_github.return_value = GithubMock() github_helper = GitHubHelper(self.user, 'test') self.assertIsNotNone(github_helper) self.assertEqual(github_helper.list_files_in_folder('/test1'), GithubMockRepo.TEST1_LIST) @patch('git_manager.helpers.github_helper.GitHubHelper._get_github_object') def test_github_list_folder_empty(self, mock_github): mock_github.return_value = GithubMock() github_helper = GitHubHelper(self.user, 'test') self.assertIsNotNone(github_helper) self.assertEqual(github_helper.list_files_in_folder(), GithubMockRepo.TEST2_LIST) @patch('git_manager.helpers.github_helper.GitHubHelper._get_github_object') def test_view_file_in_repo(self, mock_github): mock_github.return_value = GithubMock() github_helper = GitHubHelper(self.user, 'test') self.assertIsNotNone(github_helper)