コード例 #1
0
ファイル: update_hooks.py プロジェクト: 545zhou/osf.io
 def test_get_targets(self):
     AddonGitHubNodeSettings.remove()
     addons = [
         AddonGitHubNodeSettings(),
         AddonGitHubNodeSettings(hook_id=1),
         AddonGitHubNodeSettings(user_settings=self.user_addon),
         AddonGitHubNodeSettings(hook_id=1, user_settings=self.user_addon),
     ]
     for addon in addons:
         addon.save()
     targets = get_targets()
     assert_equal(targets.count(), 1)
     assert_equal(targets[0]._id, addons[-1]._id)
コード例 #2
0
def get_targets():
    """Get `AddonGitHubNodeSettings` records with authorization and a non-null
    webhook.

    """
    return AddonGitHubNodeSettings.find(
        Q('user_settings', 'ne', None) & Q('hook_id', 'ne', None))
コード例 #3
0
ファイル: test_models.py プロジェクト: ubiquitypress/osf.io
 def setUp(self):
     OsfTestCase.setUp(self)
     self.user = UserFactory()
     self.user.add_addon('github')
     self.user_settings = self.user.get_addon('github')
     self.oauth_settings = AddonGitHubOauthSettings(oauth_access_token='foobar')
     self.oauth_settings.github_user_id = 'testuser'
     self.oauth_settings.save()
     self.user_settings.oauth_settings = self.oauth_settings
     self.user_settings.save()
     self.node_settings = AddonGitHubNodeSettings(
         owner=ProjectFactory(),
         user='******',
         repo='openpokemon',
         user_settings=self.user_settings,
     )
     self.node_settings.save()
コード例 #4
0
ファイル: update_hooks.py プロジェクト: 545zhou/osf.io
def get_targets():
    """Get `AddonGitHubNodeSettings` records with authorization and a non-null
    webhook.

    """
    return AddonGitHubNodeSettings.find(
        Q('user_settings', 'ne', None) &
        Q('hook_id', 'ne', None)
    )
コード例 #5
0
ファイル: test_models.py プロジェクト: rdhyee/osf.io
 def setUp(self):
     OsfTestCase.setUp(self)
     self.user = UserFactory()
     self.user.add_addon("github")
     self.user_settings = self.user.get_addon("github")
     self.oauth_settings = AddonGitHubOauthSettings(oauth_access_token="foobar")
     self.oauth_settings.github_user_id = "testuser"
     self.oauth_settings.save()
     self.user_settings.oauth_settings = self.oauth_settings
     self.user_settings.save()
     self.node_settings = AddonGitHubNodeSettings(
         owner=ProjectFactory(), user="******", repo="openpokemon", user_settings=self.user_settings
     )
     self.node_settings.save()
コード例 #6
0
 def test_get_targets(self):
     AddonGitHubNodeSettings.remove()
     addons = [
         AddonGitHubNodeSettings(),
         AddonGitHubNodeSettings(hook_id=1),
         AddonGitHubNodeSettings(user_settings=self.user_addon),
         AddonGitHubNodeSettings(hook_id=1, user_settings=self.user_addon),
     ]
     for addon in addons:
         addon.save()
     targets = get_targets()
     assert_equal(targets.count(), 1)
     assert_equal(targets[0]._id, addons[-1]._id)
コード例 #7
0
ファイル: test_models.py プロジェクト: ubiquitypress/osf.io
class TestAddonGithubNodeSettings(OsfTestCase):

    def setUp(self):
        OsfTestCase.setUp(self)
        self.user = UserFactory()
        self.user.add_addon('github')
        self.user_settings = self.user.get_addon('github')
        self.oauth_settings = AddonGitHubOauthSettings(oauth_access_token='foobar')
        self.oauth_settings.github_user_id = 'testuser'
        self.oauth_settings.save()
        self.user_settings.oauth_settings = self.oauth_settings
        self.user_settings.save()
        self.node_settings = AddonGitHubNodeSettings(
            owner=ProjectFactory(),
            user='******',
            repo='openpokemon',
            user_settings=self.user_settings,
        )
        self.node_settings.save()

    def test_complete_true(self):
        assert_true(self.node_settings.has_auth)
        assert_true(self.node_settings.complete)

    def test_complete_false(self):
        self.node_settings.user = None

        assert_true(self.node_settings.has_auth)
        assert_false(self.node_settings.complete)

    def test_complete_repo_false(self):
        self.node_settings.repo = None

        assert_true(self.node_settings.has_auth)
        assert_false(self.node_settings.complete)

    def test_complete_auth_false(self):
        self.node_settings.user_settings = None

        assert_false(self.node_settings.has_auth)
        assert_false(self.node_settings.complete)

    @mock.patch('website.addons.github.api.GitHub.delete_hook')
    def test_delete_hook(self, mock_delete_hook):
        self.node_settings.hook_id = 'hook'
        self.node_settings.save()
        args = (
            self.node_settings.user,
            self.node_settings.repo,
            self.node_settings.hook_id,
        )
        res = self.node_settings.delete_hook()
        assert_true(res)
        mock_delete_hook.assert_called_with(*args)

    @mock.patch('website.addons.github.api.GitHub.delete_hook')
    def test_delete_hook_no_hook(self, mock_delete_hook):
        res = self.node_settings.delete_hook()
        assert_false(res)
        assert_false(mock_delete_hook.called)

    @mock.patch('website.addons.github.api.GitHub.delete_hook')
    def test_delete_hook_not_found(self, mock_delete_hook):
        self.node_settings.hook_id = 'hook'
        self.node_settings.save()
        mock_delete_hook.side_effect = NotFoundError
        args = (
            self.node_settings.user,
            self.node_settings.repo,
            self.node_settings.hook_id,
        )
        res = self.node_settings.delete_hook()
        assert_false(res)
        mock_delete_hook.assert_called_with(*args)

    @mock.patch('website.addons.github.api.GitHub.delete_hook')
    def test_delete_hook_error(self, mock_delete_hook):
        self.node_settings.hook_id = 'hook'
        self.node_settings.save()
        mock_delete_hook.side_effect = GitHubError(mock.Mock())
        args = (
            self.node_settings.user,
            self.node_settings.repo,
            self.node_settings.hook_id,
        )
        res = self.node_settings.delete_hook()
        assert_false(res)
        mock_delete_hook.assert_called_with(*args)

    def test_to_json_noauthorizing_authed_user(self):
        user = UserFactory()
        user.add_addon('github')
        user_settings = user.get_addon('github')

        oauth_settings = AddonGitHubOauthSettings(oauth_access_token='foobar')
        oauth_settings.github_user_id = 'testuser'
        oauth_settings.save()

        user_settings.oauth_settings = self.oauth_settings
        user_settings.save()

        self.node_settings.to_json(user)
コード例 #8
0
ファイル: test_utils.py プロジェクト: pazthor/osf.io
 def setUp(self):
     super(TestHookVerify, self).setUp()
     self.node_settings = AddonGitHubNodeSettings(
         hook_secret='speakfriend', )