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')
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,))
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, ))
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']])
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)
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'))
def setUp(self): gist.plugin_loaded()
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)
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)