def test_before_page_load_osf_public_gh_private(self, mock_repo): self.project.is_public = True self.project.save() mock_repo.return_value = Repository.from_json({"private": True}) message = self.node_settings.before_page_load(self.project, self.project.creator) mock_repo.assert_called_with(self.node_settings.user, self.node_settings.repo) assert_true(message)
def test_can_see_files_tab(self, mock_repo, mock_file, mock_commits): mock_commits.return_value = [Commit.from_json({ "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "*****@*****.**", "date": "2011-04-14T16:00:49Z" } } })] mock_repo.return_value = Repository.from_json({ "default_branch": "dev", 'url': u'https://api.github.com/repos/{user}/mock-repo/git/trees/dev'.format(user=self.user), 'sha': 'dev', 'private': False, 'tree': [ {u'mode': u'100644', u'path': u'coveragerc', u'sha': u'92029ff5ce192425d346b598d7e7dd25f5f05185', u'size': 245, u'type': u'file', u'url': u'https://api.github.com/repos/{user}/mock-repo/git/blobs/92029ff5ce192425d346b598d7e7dd25f5f05185'.format(user=self.user)}] }) mock_file.return_value = { u'name': u'coveragerc', u'content': u'ClRleHRCbG9iOiBTaW1wbGlmaWVkIFRleHQgUHJvY2Vzc2luZwo9PT09PT09', u'size': 245 } res = self.app.get(self.project.url, auth=self.user.auth) assert_in('a href="/{0}/files/"'.format(self.project._id), res)
def test_before_page_load_osf_private_gh_private(self, mock_repo): mock_repo.return_value = Repository.from_json({'private': True}) message = self.node_settings.before_page_load(self.project, self.project.creator) mock_repo.assert_called_with( self.node_settings.user, self.node_settings.repo, ) assert_false(message)
def test_get_folders_not_have_auth(self, mock_repos, mock_check_authorization): mock_repos.return_value = [Repository.from_json(dumps({'name': 'test', 'id': '12345', 'owner': {'login': '******'} })) ] self.node_settings.user_settings = None with pytest.raises(exceptions.InvalidAuthError): self.node_settings.get_folders()
def test_get_folders(self, mock_check_authorization, mock_repos): mock_repos.return_value = [Repository.from_json(dumps({'name': 'test', 'id': '12345', 'owner': {'login': '******'} })) ] result = self.node_settings.get_folders() assert_equal(len(result), 1) assert_equal(result[0]['id'], '12345') assert_equal(result[0]['name'], 'test') assert_equal(result[0]['path'], 'test name/test') assert_equal(result[0]['kind'], 'repo')
def test_get_folders_not_have_auth(self, mock_repos, mock_check_authorization): mock_repos.return_value = [ Repository.from_json( dumps({ 'name': 'test', 'id': '12345', 'owner': { 'login': '******' } })) ] self.node_settings.user_settings = None with pytest.raises(exceptions.InvalidAuthError): self.node_settings.get_folders()
def test_file_view_with_anonymous_link(self, mock_contents, mock_repo, mock_file, mock_commits): mock_contents.return_value = None mock_commits.return_value = [Commit.from_json({ "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "*****@*****.**", "date": "2011-04-14T16:00:49Z" } } })] mock_repo.return_value = Repository.from_json({ "default_branch": "dev", 'url': u'https://api.github.com/repos/{user}/mock-repo/git/trees/dev'.format(user=self.user), 'sha': 'dev', 'private': False, 'tree': [ {u'mode': u'100644', u'path': u'coveragerc', u'sha': u'92029ff5ce192425d346b598d7e7dd25f5f05185', u'size': 245, u'type': u'file', u'url': u'https://api.github.com/repos/{user}/mock-repo/git/blobs/92029ff5ce192425d346b598d7e7dd25f5f05185'.format(user=self.user)}] }) mock_file.return_value = { u'name': u'coveragerc', u'content': u'ClRleHRCbG9iOiBTaW1wbGlmaWVkIFRleHQgUHJvY2Vzc2luZwo9PT09PT09', u'size': 245 } link = PrivateLinkFactory(anonymous=True) link.nodes.append(self.project) link.save() url = self.project.web_url_for('github_view_file', path="coveragerc") res = self.app.get(url, {'view_only': link.key}).maybe_follow() assert_in("6dcb09b5b57875f334f61aebed695e2e4193db5e", res) assert_in("Thu Apr 14 16:00:49 2011", res) assert_in("file-version-history", res) assert_in("icon-download-alt", res) assert_not_in("Monalisa Octocat", res) assert_not_in("*****@*****.**", res)
def test_file_view_with_anonymous_link(self, mock_repo, mock_file, mock_commits): mock_commits.return_value = [Commit.from_json({ "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "*****@*****.**", "date": "2011-04-14T16:00:49Z" } } })] mock_repo.return_value = Repository.from_json({ "default_branch": "dev", 'url': u'https://api.github.com/repos/{user}/mock-repo/git/trees/dev'.format(user=self.user), 'sha': 'dev', 'private': False, 'tree': [ {u'mode': u'100644', u'path': u'coveragerc', u'sha': u'92029ff5ce192425d346b598d7e7dd25f5f05185', u'size': 245, u'type': u'file', u'url': u'https://api.github.com/repos/{user}/mock-repo/git/blobs/92029ff5ce192425d346b598d7e7dd25f5f05185'.format(user=self.user)}] }) mock_file.return_value = { u'name': u'coveragerc', u'content': u'ClRleHRCbG9iOiBTaW1wbGlmaWVkIFRleHQgUHJvY2Vzc2luZwo9PT09PT09', u'size': 245 } link = PrivateLinkFactory(anonymous=True) link.nodes.append(self.project) link.save() url = self.project.web_url_for('github_view_file', path="coveragerc") res = self.app.get(url, {'view_only': link.key}).maybe_follow() assert_in("6dcb09b5b57875f334f61aebed695e2e4193db5e", res) assert_in("Thu Apr 14 16:00:49 2011", res) assert_in("file-version-history", res) assert_in("icon-download-alt", res) assert_not_in("Monalisa Octocat", res) assert_not_in("*****@*****.**", res)
def test_get_folders(self, mock_check_authorization, mock_repos): mock_repos.return_value = [ Repository.from_json( dumps({ 'name': 'test', 'id': '12345', 'owner': { 'login': '******' } })) ] result = self.node_settings.get_folders() assert_equal(len(result), 1) assert_equal(result[0]['id'], '12345') assert_equal(result[0]['name'], 'test') assert_equal(result[0]['path'], 'test name/test') assert_equal(result[0]['kind'], 'repo')
def test_file_view_deleted(self, mock_contents, mock_repo, mock_file, mock_commits): mock_contents.return_value = None mock_commits.return_value = [Commit.from_json({ "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "*****@*****.**", "date": "2011-04-14T16:00:49Z" } } })] mock_repo.return_value = Repository.from_json({ "default_branch": "dev", 'url': u'https://api.github.com/repos/{user}/mock-repo/git/trees/dev'.format(user=self.user), 'sha': 'dev', 'private': False, 'tree': [ {u'mode': u'100644', u'path': u'coveragerc', u'sha': u'92029ff5ce192425d346b598d7e7dd25f5f05185', u'size': 245, u'type': u'file', u'url': u'https://api.github.com/repos/{user}/mock-repo/git/blobs/92029ff5ce192425d346b598d7e7dd25f5f05185'.format(user=self.user)}] }) mock_file.return_value = (None, None, None) url = "/project/{0}/github/file/{1}/".format( self.project._id, "coveragerc" ) self.app.auth = self.user.auth res = self.app.get(url).maybe_follow() assert_in("icon-download-alt", res) assert_in("Thu Apr 14 16:00:49 2011", res) assert_in("This file does not exist at this commit", res) assert_in("6dcb09b5b57875f334f61aebed695e2e4193db5e", res)
def test_folder_list_GET_expected_behavior(self, mock_client): mock_repo = Repository.from_json( dumps({ 'name': 'test', 'id': '12345', 'owner': { 'login': '******' } })) mock_connection = mock.MagicMock() mock_client.return_value = mock_connection mock_connection.repos = mock.MagicMock(return_value=[mock_repo]) mock_connection.my_orgs_repos = mock.MagicMock( return_value=[mock_repo]) res = self.app.get(self.folder_url, auth=self.user.auth) addon_data = res.json['data'][0]['attributes'] assert_in(addon_data['kind'], ('folder', 'repo')) assert_equal(addon_data['name'], self._mock_folder_result['name']) assert_equal(addon_data['path'], self._mock_folder_result['path']) assert_equal(addon_data['folder_id'], self._mock_folder_result['id'])
def test_folder_list_GET_expected_behavior(self, mock_client): mock_repo = Repository.from_json(dumps({ 'name': 'test', 'id': '12345', 'owner': {'login': '******'} })) mock_connection = mock.MagicMock() mock_client.return_value = mock_connection mock_connection.repos = mock.MagicMock(return_value=[mock_repo]) mock_connection.my_orgs_repos = mock.MagicMock(return_value=[mock_repo]) res = self.app.get( self.folder_url, auth=self.user.auth) addon_data = res.json['data'][0]['attributes'] assert_in(addon_data['kind'], ('folder', 'repo')) assert_equal(addon_data['name'], self._mock_folder_result['name']) assert_equal(addon_data['path'], self._mock_folder_result['path']) assert_equal( addon_data['folder_id'], self._mock_folder_result['id'])