コード例 #1
0
 def test_failed_create_gist(self, mock_token, mock_post, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_post.return_value = request_mock('gist/id_gist_1', case=False,
                                           status_code=404)
     mock_get.return_value = request_mock('user')
     yeah = GitHubTools(GETGIST_USER, '.gist.sample')
     self.assertFalse(yeah.create('42', public=False))
コード例 #2
0
 def test_create_gist(self, mock_token, mock_post, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_post.return_value = request_mock('gist/id_gist_1',
                                           status_code=201)
     mock_get.return_value = request_mock('user')
     yeah = GitHubTools(GETGIST_USER, '.gist.sample')
     self.assertTrue(yeah.create('42', public=False))
コード例 #3
0
ファイル: __main__.py プロジェクト: hilam/getgist
    def __init__(self, **kwargs):
        """
        Instantiate GitHubTools & LocalTools, and set the variables required
        to get, create or update gists (filename and public/private flag)
        :param user: (str) GitHub username
        :param filename: (str) name of file from any Gist or local file system
        :param allow_none: (bool) flag to use GitHubTools.select_gist
        differently with `getgist` and `putgist` commands (if no gist/filename
        is found it raises an error for `getgist`, or sets `putgist` to create
        a new gist).
        :param create_private: (bool) create a new gist as private
        :param assume_yes: (bool) assume yes (or first option) for all prompts
        :return: (None)
        """

        # get arguments
        user = kwargs.get('user')
        allow_none = kwargs.get('allow_none', False)
        assume_yes = kwargs.get('assume_yes', False)
        filename = kwargs.get('filename')
        self.public = not kwargs.get('create_private', False)

        # instantiate local tools & check for user
        self.local = LocalTools(filename, assume_yes)
        if not user:
            message = """
                No default user set yet. To avoid this prompt set an
                environmental variable called  `GETGIST_USER`.'
            """
            self.local.oops(message)

        # instantiate filename, guthub tools and fetch gist
        self.github = GitHubTools(user, filename, assume_yes)
        self.gist = self.github.select_gist(allow_none)
コード例 #4
0
 def test_update_gist(self, mock_token, mock_patch, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_patch.return_value = request_mock('gist/id_gist_1')
     mock_get.return_value = request_mock('user')
     gist = parse_mock(id=1, user=GETGIST_USER, filename='.gist', url='')
     yeah = GitHubTools(GETGIST_USER, '.gist')
     self.assertTrue(yeah.update(gist, '42'))
コード例 #5
0
ファイル: test_github_tools.py プロジェクト: lichnak/getgist
def test_create_gist_with_no_file(mocker, response):
    get = mocker.patch("getgist.request.GetGistRequests.get")
    token = mocker.patch("getgist.github.GitHubTools._get_token")
    get.return_value = response("user")
    token.return_value = GETGIST_TOKEN
    github = GitHubTools(GETGIST_USER, ".gist")
    assert not github.create(False)
コード例 #6
0
 def test_update_gist(self, mock_token, mock_patch, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_patch.return_value = request_mock('gist/id_gist_1')
     mock_get.return_value = request_mock('user')
     gist = parse_mock(id=1, user=GETGIST_USER, filename='.gist', url='')
     yeah = GitHubTools(GETGIST_USER, '.gist')
     self.assertTrue(yeah.update(gist, '42'))
コード例 #7
0
    def __init__(self, **kwargs):
        """
        Instantiate GitHubTools & LocalTools (if needed), and set the variables required
        to get, create or update gists (filename and public/private flag)
        :param user: (str) GitHub username
        :param filename: (str) name of file from any Gist or local file system
        :param allow_none: (bool) flag to use GitHubTools.select_gist
        differently with `getgist` and `putgist` commands (if no gist/filename
        is found it raises an error for `getgist`, or sets `putgist` to create
        a new gist).
        :param create_private: (bool) create a new gist as private
        :param assume_yes: (bool) assume yes (or first option) for all prompts
        :return: (None)
        """
        user = kwargs.get("user")
        allow_none = kwargs.get("allow_none", False)
        assume_yes = kwargs.get("assume_yes", False)
        filename = kwargs.get("filename")
        self.public = not kwargs.get("create_private", False)

        if not user:
            message = """
            No default user set yet. To avoid this prompt set an
            environmental variable called  `GETGIST_USER`.'
            """
            GetGistCommons().oops(message)
            exit(1)

        self.github = GitHubTools(user, filename, assume_yes)
        self.local = LocalTools(filename, assume_yes) if filename else None
        self.gist = self.github.select_gist(allow_none) if filename else None
コード例 #8
0
 def test_authenticated_get_gists(self, mock_token, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_get.side_effect = [request_mock('user'), request_mock('gists')]
     yeah = GitHubTools(GETGIST_USER, '.gist')
     gists = list(yeah.get_gists())
     with self.subTest():
         self.assertIn(self.gist3, gists)
         self.assertIn(self.gist4, gists)
コード例 #9
0
ファイル: test_github_tools.py プロジェクト: lichnak/getgist
def test_update_gist_with_no_file(mocker, response, parse):
    get = mocker.patch("getgist.request.GetGistRequests.get")
    token = mocker.patch("getgist.github.GitHubTools._get_token")
    get.return_value = response("user")
    token.return_value = GETGIST_TOKEN
    gist = parse(id=1, user=GETGIST_USER, filename=".gist", url="")
    github = GitHubTools(GETGIST_USER, ".gist")
    assert not github.update(gist, False)
コード例 #10
0
 def test_authenticated_get_gists(self, mock_token, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_get.side_effect = [request_mock('user'), request_mock('gists')]
     yeah = GitHubTools(GETGIST_USER, '.gist')
     gists = list(yeah.get_gists())
     with self.subTest():
         self.assertIn(self.gist3, gists)
         self.assertIn(self.gist4, gists)
コード例 #11
0
ファイル: test_github_tools.py プロジェクト: lichnak/getgist
def test_failed_create_gist(mocker, response):
    get = mocker.patch("getgist.request.GetGistRequests.get")
    post = mocker.patch("getgist.request.GetGistRequests.post")
    token = mocker.patch("getgist.github.GitHubTools._get_token")
    get.return_value = response("user")
    post.return_value = response("gist/id_gist_1", case=False, status_code=404)
    token.return_value = GETGIST_TOKEN
    github = GitHubTools(GETGIST_USER, ".gist.sample")
    assert not github.create("42", public=False)
コード例 #12
0
ファイル: test_github_tools.py プロジェクト: lichnak/getgist
def test_authenticated_get_gists(mocker, response, gists):
    get = mocker.patch("getgist.request.GetGistRequests.get")
    token = mocker.patch("getgist.github.GitHubTools._get_token")
    token.return_value = GETGIST_TOKEN
    get.side_effect = (response("user"), response("gists"))

    github = GitHubTools(GETGIST_USER, ".gist")
    gists = tuple(github.get_gists())
    assert gists[2] in gists
    assert gists[3] in gists
コード例 #13
0
ファイル: test_github_tools.py プロジェクト: lichnak/getgist
def test_failed_update_gist(mocker, response, parse):
    get = mocker.patch("getgist.request.GetGistRequests.get")
    token = mocker.patch("getgist.github.GitHubTools._get_token")
    patch = mocker.patch("getgist.request.GetGistRequests.patch")
    get.return_value = response("user")
    token.return_value = GETGIST_TOKEN
    patch.return_value = response("gist/id_gist_1",
                                  case=False,
                                  status_code=404)
    gist = parse(id=1, user=GETGIST_USER, filename=".gist", url="")
    github = GitHubTools(GETGIST_USER, ".gist")
    assert not github.update(gist, "42")
コード例 #14
0
 def test_invalid_token(self, mock_token, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_get.return_value = request_mock('user', case=False)
     oops = GitHubTools(GETGIST_USER, '.gist')
     with self.subTest():
         self.assertNotIn('Authorization', oops.headers)
         self.assertFalse(oops.is_authenticated)
コード例 #15
0
ファイル: __main__.py プロジェクト: pombredanne/getgist
    def __init__(self, **kwargs):
        """
        Instantiate GitHubTools & LocalTools, and set the variables required
        to get, create or update gists (filename and public/private flag)
        :param user: (str) GitHub username
        :param filename: (str) name of file from any Gist or local file system
        :param allow_none: (bool) flag to use GitHubTools.select_gist
        differently with `getgist` and `putgist` commands (if no gist/filename
        is found it raises an error for `getgist`, or sets `putgist` to create
        a new gist).
        :param create_private: (bool) create a new gist as private
        :param assume_yes: (bool) assume yes (or first option) for all prompts
        :return: (None)
        """

        # get arguments
        user = kwargs.get('user')
        allow_none = kwargs.get('allow_none', False)
        assume_yes = kwargs.get('assume_yes', False)
        filename = kwargs.get('filename')
        self.public = not kwargs.get('create_private', False)

        # instantiate local tools & check for user
        self.local = LocalTools(filename, assume_yes)
        if not user:
            message = """
                No default user set yet. To avoid this prompt set an
                environmental variable called  `GETGIST_USER`.'
            """
            self.local.oops(message)

        # instantiate filename, guthub tools and fetch gist
        self.github = GitHubTools(user, filename, assume_yes)
        self.gist = self.github.select_gist(allow_none)
コード例 #16
0
ファイル: test_github_tools.py プロジェクト: lichnak/getgist
def test_no_token_results_in_no_authentication(mocker):
    token = mocker.patch("getgist.github.GitHubTools._get_token")
    token.return_value = False

    github = GitHubTools(GETGIST_USER, ".gist")
    assert "Authorization" not in github.headers
    assert not github.is_authenticated
コード例 #17
0
 def test_valid_token(self, mock_token, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_get.return_value = request_mock('user')
     yeah = GitHubTools(GETGIST_USER, '.gist')
     with self.subTest():
         self.assertIn('Authorization', yeah.headers)
         self.assertTrue(yeah.is_authenticated)
コード例 #18
0
class GetGist(object):
    """
    Main GetGist objects linking inputs from the CLI to the helpers from
    GitHubTools (to deal with the API) and LocalTools (to deal with the local
    file system.
    """
    def __init__(self, **kwargs):
        """
        Instantiate GitHubTools & LocalTools (if needed), and set the variables required
        to get, create or update gists (filename and public/private flag)
        :param user: (str) GitHub username
        :param filename: (str) name of file from any Gist or local file system
        :param allow_none: (bool) flag to use GitHubTools.select_gist
        differently with `getgist` and `putgist` commands (if no gist/filename
        is found it raises an error for `getgist`, or sets `putgist` to create
        a new gist).
        :param create_private: (bool) create a new gist as private
        :param assume_yes: (bool) assume yes (or first option) for all prompts
        :return: (None)
        """
        user = kwargs.get("user")
        allow_none = kwargs.get("allow_none", False)
        assume_yes = kwargs.get("assume_yes", False)
        filename = kwargs.get("filename")
        self.public = not kwargs.get("create_private", False)

        if not user:
            message = """
            No default user set yet. To avoid this prompt set an
            environmental variable called  `GETGIST_USER`.'
            """
            GetGistCommons().oops(message)
            exit(1)

        self.github = GitHubTools(user, filename, assume_yes)
        self.local = LocalTools(filename, assume_yes) if filename else None
        self.gist = self.github.select_gist(allow_none) if filename else None

    def get(self):
        """Reads the remote file from Gist and save it locally"""
        if self.gist:
            content = self.github.read_gist_file(self.gist)
            self.local.save(content)

    def put(self):
        """ Reads local file & update the remote gist (or create a new one)"""
        content = self.local.read()
        if self.gist:
            self.github.update(self.gist, content)
        else:
            self.github.create(content, public=self.public)

    def ls(self):
        """ Lists all gists from a github user """
        self.github.list_gists()
コード例 #19
0
ファイル: test_github_tools.py プロジェクト: lichnak/getgist
def test_valid_token(mocker, response):
    get = mocker.patch("getgist.request.GetGistRequests.get")
    token = mocker.patch("getgist.github.GitHubTools._get_token")
    get.return_value = response("user")
    token.return_value = GETGIST_TOKEN

    github = GitHubTools(GETGIST_USER, ".gist")
    assert "Authorization" in github.headers
    assert github.is_authenticated
コード例 #20
0
ファイル: __main__.py プロジェクト: pombredanne/getgist
class GetGist(object):
    """
    Main GetGist objects linking inputs from the CLI to the helpers from
    GitHubTools (to deal with the API) and LocalTools (to deal with the local
    file system.
    """

    def __init__(self, **kwargs):
        """
        Instantiate GitHubTools & LocalTools, and set the variables required
        to get, create or update gists (filename and public/private flag)
        :param user: (str) GitHub username
        :param filename: (str) name of file from any Gist or local file system
        :param allow_none: (bool) flag to use GitHubTools.select_gist
        differently with `getgist` and `putgist` commands (if no gist/filename
        is found it raises an error for `getgist`, or sets `putgist` to create
        a new gist).
        :param create_private: (bool) create a new gist as private
        :param assume_yes: (bool) assume yes (or first option) for all prompts
        :return: (None)
        """

        # get arguments
        user = kwargs.get('user')
        allow_none = kwargs.get('allow_none', False)
        assume_yes = kwargs.get('assume_yes', False)
        filename = kwargs.get('filename')
        self.public = not kwargs.get('create_private', False)

        # instantiate local tools & check for user
        self.local = LocalTools(filename, assume_yes)
        if not user:
            message = """
                No default user set yet. To avoid this prompt set an
                environmental variable called  `GETGIST_USER`.'
            """
            self.local.oops(message)

        # instantiate filename, guthub tools and fetch gist
        self.github = GitHubTools(user, filename, assume_yes)
        self.gist = self.github.select_gist(allow_none)

    def get(self):
        """Reads the remote file from Gist and save it locally"""
        if self.gist:
            content = self.github.read_gist_file(self.gist)
            self.local.save(content)

    def put(self):
        """ Reads local file & update the remote gist (or create a new one)"""
        content = self.local.read(self.github.filename)
        if self.gist:
            self.github.update(self.gist, content)
        else:
            self.github.create(content, public=self.public)
コード例 #21
0
 def setUp(self, mock_oauth):
     mock_oauth.return_value = None
     self.github = GitHubTools(GETGIST_USER, '.gist')
     self.gist1 = parse_mock(id=1,
                             user=GETGIST_USER,
                             filename='.gist',
                             url='https://gist.github.com/id_gist_1')
     self.gist2 = parse_mock(id=2,
                             user=GETGIST_USER,
                             filename='.gist',
                             description='Description of Gist 2',
                             url='https://gist.github.com/id_gist_2')
     self.gist3 = parse_mock(id=3,
                             user=GETGIST_USER,
                             filename=['.gist.sample', '.gist.dev'],
                             url='https://gist.github.com/id_gist_3')
     self.gist4 = parse_mock(id=4,
                             user=GETGIST_USER,
                             filename='.gist.prod',
                             url='https://gist.github.com/id_gist_4')
コード例 #22
0
ファイル: test_github_tools.py プロジェクト: lichnak/getgist
def test_get_token(mocker):
    getenv = mocker.patch("getgist.github.os.getenv")
    GitHubTools._get_token()
    getenv.assert_called_once_with("GETGIST_TOKEN")
コード例 #23
0
 def test_update_gist_without_authorization(self, mock_token):
     mock_token.return_value = None
     gist = parse_mock(id=1, user=GETGIST_USER, filename='.gist', url='')
     oops = GitHubTools(GETGIST_USER, '.gist.sample')
     self.assertFalse(oops.update(gist, '42'))
コード例 #24
0
ファイル: test_github_tools.py プロジェクト: lichnak/getgist
def test_create_gist_without_authorization(mocker):
    token = mocker.patch("getgist.github.GitHubTools._get_token")
    token.return_value = None
    github = GitHubTools(GETGIST_USER, ".gist.sample")
    assert not github.create("42")
コード例 #25
0
 def test_update_gist_without_authorization(self, mock_token):
     mock_token.return_value = None
     gist = parse_mock(id=1, user=GETGIST_USER, filename='.gist', url='')
     oops = GitHubTools(GETGIST_USER, '.gist.sample')
     self.assertFalse(oops.update(gist, '42'))
コード例 #26
0
 def test_create_gist_without_authorization(self, mock_token):
     mock_token.return_value = None
     oops = GitHubTools(GETGIST_USER, '.gist.sample')
     self.assertFalse(oops.create('42'))
コード例 #27
0
ファイル: test_github_tools.py プロジェクト: lichnak/getgist
def test_update_gist_without_authorization(mocker, parse):
    token = mocker.patch("getgist.github.GitHubTools._get_token")
    token.return_value = None
    gist = parse(id=1, user=GETGIST_USER, filename=".gist", url="")
    github = GitHubTools(GETGIST_USER, ".gist.sample")
    assert not github.update(gist, "42")
コード例 #28
0
 def test_create_gist_with_no_file(self, mock_token, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_get.return_value = request_mock('user')
     gist = parse_mock(id=1, user=GETGIST_USER, filename='.gist', url='')
     yeah = GitHubTools(GETGIST_USER, '.gist')
     self.assertFalse(yeah.update(gist, False))
コード例 #29
0
 def test_no_token_results_in_no_authentication(self, mock_token):
     mock_token.return_value = False
     oops = GitHubTools(GETGIST_USER, '.gist')
     with self.subTest():
         self.assertNotIn('Authorization', oops.headers)
         self.assertFalse(oops.is_authenticated)
コード例 #30
0
 def test_create_gist_with_no_file(self, mock_token, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_get.return_value = request_mock('user')
     gist = parse_mock(id=1, user=GETGIST_USER, filename='.gist', url='')
     yeah = GitHubTools(GETGIST_USER, '.gist')
     self.assertFalse(yeah.update(gist, False))
コード例 #31
0
ファイル: conftest.py プロジェクト: vmesel/getgist
def authenticated_github(mocker):
    oauth = mocker.patch("getgist.github.GitHubTools.add_oauth_header")
    oauth.return_value = None
    return GitHubTools("janedoe", ".gist")
コード例 #32
0
 def test_create_gist_without_authorization(self, mock_token):
     mock_token.return_value = None
     oops = GitHubTools(GETGIST_USER, '.gist.sample')
     self.assertFalse(oops.create('42'))
コード例 #33
0
 def test_create_gist_with_no_file(self, mock_token, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_get.return_value = request_mock('user')
     yeah = GitHubTools(GETGIST_USER, '.gist')
     self.assertFalse(yeah.create(False))
コード例 #34
0
 def test_create_gist_with_no_file(self, mock_token, mock_get):
     mock_token.return_value = GETGIST_TOKEN
     mock_get.return_value = request_mock('user')
     yeah = GitHubTools(GETGIST_USER, '.gist')
     self.assertFalse(yeah.create(False))