コード例 #1
0
ファイル: test_gist.py プロジェクト: PhillipTStephens/Gist-1
    def test_token_auth_string(self):
        self.assertRaises(MissingCredentialsException,
                          gist_request.token_auth_string)

        gist.plugin_loaded()
        sublime.settings_storage['Gist.sublime-settings'].set(
            'token', 'some token')

        self.assertEqual(gist_request.token_auth_string(), 'some token')
コード例 #2
0
ファイル: test_settings.py プロジェクト: condemil/Gist
    def test_use_starred(self, mocked_api_request, mocked_get_window):
        gist.plugin_loaded()
        mocked_api_request.side_effect = [github_api.GIST_STARRED_LIST, github_api.GIST_LIST]
        gist_list_base = gist.GistListCommandBase()

        gist_list_base.run()
        self.assertEqual(mocked_api_request.call_count, 2)
        self.assertEqual(mocked_api_request.mock_calls[0][1], (DEFAULT_STARRED_GISTS_URL,))
        self.assertEqual(mocked_api_request.mock_calls[1][1], (DEFAULT_GISTS_URL,))

        mocked_api_request.reset_mock()
        mocked_api_request.side_effect = [github_api.GIST_STARRED_LIST]
        gist.settings.set('use_starred', True)
        gist_list_base.run()
        self.assertEqual(mocked_api_request.call_count, 1)
        self.assertEqual(mocked_api_request.mock_calls[0][1], (DEFAULT_STARRED_GISTS_URL,))
コード例 #3
0
    def test_use_starred(self, mocked_api_request, mocked_get_window):
        gist.plugin_loaded()
        mocked_api_request.side_effect = [
            github_api.GIST_STARRED_LIST, github_api.GIST_LIST
        ]
        gist_list_base = gist.GistListCommandBase()

        gist_list_base.run()
        self.assertEqual(mocked_api_request.call_count, 2)
        self.assertEqual(mocked_api_request.mock_calls[0][1],
                         (DEFAULT_STARRED_GISTS_URL, ))
        self.assertEqual(mocked_api_request.mock_calls[1][1],
                         (DEFAULT_GISTS_URL, ))

        mocked_api_request.reset_mock()
        mocked_api_request.side_effect = [github_api.GIST_STARRED_LIST]
        gist.settings.set('use_starred', True)
        gist_list_base.run()
        self.assertEqual(mocked_api_request.call_count, 1)
        self.assertEqual(mocked_api_request.mock_calls[0][1],
                         (DEFAULT_STARRED_GISTS_URL, ))
コード例 #4
0
ファイル: test_gist.py プロジェクト: PhillipTStephens/Gist-1
    def test_gists_filter(self):
        gist.plugin_loaded()
        sublime.settings_storage['Gist.sublime-settings'].set(
            'gist_prefix', 'some_prefix:')
        sublime.settings_storage['Gist.sublime-settings'].set(
            'gist_tag', 'some_tag')

        all_gists = [
            {
                'description': 'some gist 1',
                'files': {}
            },
            {
                'description': 'some_prefix:some gist 2',
                'files': {
                    'some_test.sh': {}
                }
            },
            {
                'description': 'some_prefix:some gist 3 #some_tag',
                'files': {
                    'some_test2.sh': {}
                }
            },
        ]

        gists, gists_names = gist_helpers.gists_filter(all_gists)

        self.assertEqual(gists,
                         [{
                             'files': {
                                 'some_test2.sh': {}
                             },
                             'description': 'some_prefix:some gist 3 #some_tag'
                         }])
        self.assertEqual(gists_names, [['some gist 3']])
コード例 #5
0
ファイル: test_gist.py プロジェクト: PhillipTStephens/Gist-1
    def test_create_gist(self, mocked_api_request):
        gist.plugin_loaded()
        description = 'some description'
        public = 'some public'
        files = {
            'some_file1.txt': 'some content',
            'some_file2.txt': 'another content'
        }
        api_request_data = json.dumps({
            'description': description,
            'public': public,
            'files': {
                'some_file1.txt': {
                    'content': 'some content'
                },
                'some_file2.txt': {
                    'content': 'another content'
                }
            }
        })

        gist.create_gist(public, description, files)
        mocked_api_request.assert_called_with(gist.settings.get('GISTS_URL'),
                                              api_request_data)
コード例 #6
0
    def test_gist_listener(self, mocked_update_gist):
        gist_listener = gist.GistListener()
        gist.plugin_loaded()

        lock = Lock()

        self.update_gist_call_count = 0

        # noinspection PyUnusedLocal
        def threaded_call_count(*kwargs):
            with lock:
                self.update_gist_call_count += 1

        threaded_call_count.update_gist_call_count = 0

        mocked_update_gist.side_effect = threaded_call_count

        view = sublime.View()
        gist_listener.on_pre_save(view)
        gist.settings.set('update_on_save', False)
        self.assertEqual(self.update_gist_call_count, 0)
        self.assertIsNone(view.settings().get('do-update'))

        view.settings().set('gist_filename', 'test_gist.txt')
        gist_listener.on_pre_save(view)
        self.assertEqual(self.update_gist_call_count, 0)
        self.assertIsNone(view.settings().get('do-update'))

        gist.settings.set('update_on_save', True)
        gist_listener.on_pre_save(view)
        self.assertEqual(self.update_gist_call_count, 0)
        self.assertTrue(view.settings().get('do-update'))

        gist_listener.on_pre_save(view)
        self.assertEqual(self.update_gist_call_count, 1)
        self.assertTrue(view.settings().get('do-update'))
コード例 #7
0
ファイル: test_commands.py プロジェクト: condemil/Gist
    def test_gist_listener(self, mocked_update_gist):
        gist_listener = gist.GistListener()
        gist.plugin_loaded()

        lock = Lock()

        self.update_gist_call_count = 0

        # noinspection PyUnusedLocal
        def threaded_call_count(*kwargs):
            with lock:
                self.update_gist_call_count += 1

        threaded_call_count.update_gist_call_count = 0

        mocked_update_gist.side_effect = threaded_call_count

        view = sublime.View()
        gist_listener.on_pre_save(view)
        gist.settings.set('update_on_save', False)
        self.assertEqual(self.update_gist_call_count, 0)
        self.assertIsNone(view.settings().get('do-update'))

        view.settings().set('gist_filename', 'test_gist.txt')
        gist_listener.on_pre_save(view)
        self.assertEqual(self.update_gist_call_count, 0)
        self.assertIsNone(view.settings().get('do-update'))

        gist.settings.set('update_on_save', True)
        gist_listener.on_pre_save(view)
        self.assertEqual(self.update_gist_call_count, 0)
        self.assertTrue(view.settings().get('do-update'))

        gist_listener.on_pre_save(view)
        self.assertEqual(self.update_gist_call_count, 1)
        self.assertTrue(view.settings().get('do-update'))
コード例 #8
0
ファイル: test_settings.py プロジェクト: condemil/Gist
 def setUp(self):
     gist.plugin_loaded()
コード例 #9
0
 def setUp(self):
     gist.plugin_loaded()
コード例 #10
0
    def test_gist_list_command_base(self, mocked_api_request):
        gist.plugin_loaded()
        mocked_api_request.side_effect = [
            github_api.GIST_STARRED_LIST, github_api.GIST_LIST
        ]
        gist.settings.set('include_users', ['some user'])
        gist.settings.set('include_orgs', ['some org'])
        gist_list_base = gist.GistListCommandBase()

        with patch(
                'gist_80.GistListCommandBase.get_window') as mocked_get_window:
            mocked_window = Mock()
            mocked_get_window.return_value = mocked_window
            gist_list_base.run()
            self.assertEqual(mocked_api_request.call_count, 2)
            self.assertEqual(mocked_api_request.mock_calls[0][1],
                             (DEFAULT_STARRED_GISTS_URL, ))
            self.assertEqual(mocked_api_request.mock_calls[1][1],
                             (DEFAULT_GISTS_URL, ))
            self.assertEqual(
                mocked_window.show_quick_panel.call_args[0][0],
                [['> some org'], ['> some user'], ['some shell gist'],
                 ['some python gist'], ['★ some starred gist']])

            # test include_orgs is True
            mocked_api_request.reset_mock()
            mocked_api_request.side_effect = [
                github_api.GIST_STARRED_LIST, github_api.GIST_LIST,
                [{
                    'login': '******'
                }]
            ]
            gist.settings.set('include_orgs', True)
            gist_list_base.run()
            self.assertEqual(mocked_api_request.call_count, 3)
            self.assertEqual(mocked_api_request.mock_calls[2][1],
                             (DEFAULT_ORGS_URL, ))

            # test run() accepts one argument
            mocked_api_request.reset_mock()
            mocked_api_request.side_effect = [
                github_api.GIST_STARRED_LIST, github_api.GIST_LIST
            ]
            gist.settings.set('include_users', [])
            gist.settings.set('include_orgs', [])
            gist_list_base = gist.GistListCommandBase()

            self.assertIsNone(gist_list_base.run('accepts one argument'))

            # test on_gist_num
            on_gist_num = mocked_window.show_quick_panel.call_args[0][1]

            # pass flow
            mocked_window.reset_mock()
            mocked_api_request.reset_mock()
            with patch('gist_80.GistListCommandBase.handle_gist'
                       ) as mocked_handle_gist:
                on_gist_num(-1)

                self.assertEqual(mocked_api_request.call_count, 0)
                self.assertEqual(mocked_window.show_quick_panel.call_count, 0)
                self.assertEqual(mocked_handle_gist.call_count, 0)

            # personal gists flow
            mocked_window.reset_mock()
            mocked_api_request.reset_mock()
            with patch('gist_80.GistListCommandBase.handle_gist'
                       ) as mocked_handle_gist:
                on_gist_num(0)

                self.assertEqual(mocked_api_request.call_count, 0)
                self.assertEqual(mocked_window.show_quick_panel.call_count, 0)
                mocked_handle_gist.assert_called_with(github_api.GIST_LIST[0])

            # organizations flow
            mocked_window.reset_mock()
            mocked_api_request.reset_mock()
            mocked_api_request.side_effect = [[{
                'login': '******'
            }], github_api.GIST_LIST]
            gist_list_base.orgs = [0]  # off_orgs = 1

            on_gist_num(0)

            self.assertEqual(mocked_api_request.call_count, 2)
            self.assertEqual(mocked_api_request.call_args_list[0][0][0],
                             TEST_ORG_MEMBERS_URL)
            self.assertEqual(mocked_api_request.call_args_list[1][0][0],
                             TEST_ORG_GIST_URL)
            mocked_window.show_quick_panel.assert_called_with(
                [['some shell gist'], ['some python gist']], on_gist_num)

            # users flow
            mocked_window.reset_mock()
            mocked_api_request.reset_mock()
            mocked_api_request.side_effect = [github_api.GIST_LIST]
            gist_list_base.users = [0]  # off_users = 1

            on_gist_num(0)

            self.assertEqual(mocked_api_request.call_count, 1)
            self.assertEqual(mocked_api_request.call_args_list[0][0][0],
                             TEST_MEMBERS_URL)
            mocked_window.show_quick_panel.assert_called_with(
                [['some shell gist'], ['some python gist']], on_gist_num)

        self.assertRaises(NotImplementedError, gist_list_base.handle_gist,
                          None)
        self.assertRaises(NotImplementedError, gist_list_base.get_window)
コード例 #11
0
ファイル: test_commands.py プロジェクト: condemil/Gist
    def test_gist_list_command_base(self, mocked_api_request):
        gist.plugin_loaded()
        mocked_api_request.side_effect = [github_api.GIST_STARRED_LIST, github_api.GIST_LIST]
        gist.settings.set('include_users', ['some user'])
        gist.settings.set('include_orgs', ['some org'])
        gist_list_base = gist.GistListCommandBase()

        with patch('gist_80.GistListCommandBase.get_window') as mocked_get_window:
            mocked_window = Mock()
            mocked_get_window.return_value = mocked_window
            gist_list_base.run()
            self.assertEqual(mocked_api_request.call_count, 2)
            self.assertEqual(mocked_api_request.mock_calls[0][1], (DEFAULT_STARRED_GISTS_URL,))
            self.assertEqual(mocked_api_request.mock_calls[1][1], (DEFAULT_GISTS_URL,))
            self.assertEqual(mocked_window.show_quick_panel.call_args[0][0],
                             [['> some org'], ['> some user'], ['some shell gist'], ['some python gist'],
                              ['★ some starred gist']])

            # test include_orgs is True
            mocked_api_request.reset_mock()
            mocked_api_request.side_effect = [github_api.GIST_STARRED_LIST, github_api.GIST_LIST,
                                              [{'login': '******'}]]
            gist.settings.set('include_orgs', True)
            gist_list_base.run()
            self.assertEqual(mocked_api_request.call_count, 3)
            self.assertEqual(mocked_api_request.mock_calls[2][1], (DEFAULT_ORGS_URL,))

            # test run() accepts one argument
            mocked_api_request.reset_mock()
            mocked_api_request.side_effect = [github_api.GIST_STARRED_LIST, github_api.GIST_LIST]
            gist.settings.set('include_users', [])
            gist.settings.set('include_orgs', [])
            gist_list_base = gist.GistListCommandBase()

            self.assertIsNone(gist_list_base.run('accepts one argument'))

            # test on_gist_num
            on_gist_num = mocked_window.show_quick_panel.call_args[0][1]

            # pass flow
            mocked_window.reset_mock()
            mocked_api_request.reset_mock()
            with patch('gist_80.GistListCommandBase.handle_gist') as mocked_handle_gist:
                on_gist_num(-1)

                self.assertEqual(mocked_api_request.call_count, 0)
                self.assertEqual(mocked_window.show_quick_panel.call_count, 0)
                self.assertEqual(mocked_handle_gist.call_count, 0)

            # personal gists flow
            mocked_window.reset_mock()
            mocked_api_request.reset_mock()
            with patch('gist_80.GistListCommandBase.handle_gist') as mocked_handle_gist:
                on_gist_num(0)

                self.assertEqual(mocked_api_request.call_count, 0)
                self.assertEqual(mocked_window.show_quick_panel.call_count, 0)
                mocked_handle_gist.assert_called_with(github_api.GIST_LIST[0])

            # organizations flow
            mocked_window.reset_mock()
            mocked_api_request.reset_mock()
            mocked_api_request.side_effect = [[{'login': '******'}], github_api.GIST_LIST]
            gist_list_base.orgs = [0]  # off_orgs = 1

            on_gist_num(0)

            self.assertEqual(mocked_api_request.call_count, 2)
            self.assertEqual(mocked_api_request.call_args_list[0][0][0], TEST_ORG_MEMBERS_URL)
            self.assertEqual(mocked_api_request.call_args_list[1][0][0], TEST_ORG_GIST_URL)
            mocked_window.show_quick_panel.assert_called_with([['some shell gist'], ['some python gist']], on_gist_num)

            # users flow
            mocked_window.reset_mock()
            mocked_api_request.reset_mock()
            mocked_api_request.side_effect = [github_api.GIST_LIST]
            gist_list_base.users = [0]  # off_users = 1

            on_gist_num(0)

            self.assertEqual(mocked_api_request.call_count, 1)
            self.assertEqual(mocked_api_request.call_args_list[0][0][0], TEST_MEMBERS_URL)
            mocked_window.show_quick_panel.assert_called_with([['some shell gist'], ['some python gist']], on_gist_num)

        self.assertRaises(NotImplementedError, gist_list_base.handle_gist, None)
        self.assertRaises(NotImplementedError, gist_list_base.get_window)