Example #1
0
    def test_users_returns_map_of_assigned_users(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/projects',
            body=fixtures.project_response,
            content_type='application/json',
        )

        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/foo/assignments',
            body=fixtures.project_user_response,
            content_type='application/json',
        )

        obj = codebase.Client(('example/alice', 'secret'))
        foo_proj = obj.projects['foo']
        assigned_users = foo_proj.users.values()

        self.assertEqual(len(assigned_users), 1)
        self.assertIsInstance(assigned_users[0], codebase.User)
        self.assertEqual(
            vars(assigned_users[0]),
            {
                '_client': None,
                'company': u'Example',
                'email_address': u'*****@*****.**',
                'email_addresses': [u'*****@*****.**'],
                'first_name': u'Alice',
                'id': 12345,
                'last_name': u'A',
                'username': u'alice',
            },
        )
Example #2
0
    def test_deployments_returns_a_map_of_deployments(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/projects',
            body=fixtures.project_response,
            content_type='application/json',
        )

        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/foo/repositories',
            body=fixtures.repository_response,
            content_type='application/json',
        )

        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/foo/foo-code-repo/deployments',
            responses=[
                httpretty.Response(body=fixtures.deployment_response, content_type='application/json'),
                httpretty.Response(body=json.dumps([]), content_type='application/json'),
            ],
        )

        obj = codebase.Client(('example/alice', 'secret'))
        foo_proj = obj.projects['foo']
        foo_repo = foo_proj.repositories['foo-code-repo']
        foo_deployments = foo_repo.deployments

        self.assertEqual(len(foo_deployments), 1)
Example #3
0
    def test_ticket_notes_returns_map_of_notes(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/projects',
            body=fixtures.project_response,
            content_type='application/json',
        )

        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/foo/tickets',
            responses=[
                httpretty.Response(body=fixtures.ticket_response, status=200, content_type='application/json'),
                httpretty.Response(body=json.dumps([]), status=404, content_type='application/json'),
            ],
        )

        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/foo/tickets/123/notes',
            body=fixtures.ticket_note_response,
            content_type='application/json',
        )

        obj = codebase.Client(('example/alice', 'secret'))
        foo_proj = obj.projects['foo']
        ticket = foo_proj.tickets[123]
        notes = list(ticket.notes)

        self.assertEqual(len(notes), 1)
Example #4
0
    def test_get_projects_returns_generator_of_projects(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/projects',
            body=fixtures.project_response,
            content_type='application/json',
        )

        obj = codebase.Client(('example/alice', 'secret'))
        result = obj.get_projects()

        self.assertIsInstance(result, types.GeneratorType)
Example #5
0
    def test_projects_can_be_indexed_by_permalink(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/projects',
            body=fixtures.project_response,
            content_type='application/json',
        )

        obj = codebase.Client(('example/alice', 'secret'))
        result = obj.projects['foo']

        self.assertIsInstance(result, codebase.Project)
Example #6
0
    def test_projects_returns_map_of_projects(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/projects',
            body=fixtures.project_response,
            content_type='application/json',
        )

        obj = codebase.Client(('example/alice', 'secret'))
        result = len(obj.projects)

        self.assertEqual(result, 1)
Example #7
0
    def test_get_account_activity_returns_generator_of_activity(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/activity',
            responses=[
                httpretty.Response(body=fixtures.activity_response, content_type='application/json'),
                httpretty.Response(body=json.dumps([]), content_type='application/json'),
            ],
        )

        obj = codebase.Client(('example/alice', 'secret'))
        result = obj.get_activity()

        self.assertIsInstance(result, types.GeneratorType)

        activities = list(result)

        self.assertEqual(len(activities), 1)
        self.assertEqual(activities[0]['actor_name'], u'Alice A')
Example #8
0
    def test_get_commits(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/foo/bar/commits/master',
            responses=[
                httpretty.Response(body=fixtures.commit_response, content_type='application/json'),
                httpretty.Response(body=json.dumps([]), content_type='application/json'),
            ],
        )

        obj = codebase.Client(('example/alice', 'secret'))
        result = obj.get_commits(project='foo', repo='bar', ref='master')

        self.assertIsInstance(result, types.GeneratorType)

        commits = list(result)

        self.assertEqual(len(commits), 1)
        self.assertEqual(commits[0]['committer_name'], u'Alice A')
Example #9
0
    def test_get_user_keys(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/users/bob/public_keys',
            body=fixtures.public_keys_response,
            content_type='application/json',
        )

        obj = codebase.Client(('example/alice', 'secret'))
        result = list(obj.get_user_keys('bob'))

        self.assertEqual(len(result), 1)
        self.assertEqual(
            result[0],
            {
                u'description': u'Regular key',
                u'key': u'ssh-rsa abc==',
            },
        )
Example #10
0
    def test_get_my_keys(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/users/carol/public_keys',
            body=fixtures.public_keys_response,
            content_type='application/json',
        )

        # The username is derived from the auth username.
        obj = codebase.Client(('example/carol', 'secret'))
        result = list(obj.get_my_keys())

        self.assertEqual(len(result), 1)
        self.assertEqual(
            result[0],
            {
                u'description': u'Regular key',
                u'key': u'ssh-rsa abc==',
            },
        )
Example #11
0
    def test_project_categories_returns_map_of_categories(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/projects',
            body=fixtures.project_response,
            content_type='application/json',
        )

        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/foo/tickets/categories',
            body=fixtures.ticket_category_response,
            content_type='application/json',
        )

        obj= codebase.Client(('example/alice', 'secret'))
        foo_proj = obj.projects['foo']
        categories = list(foo_proj.categories)

        self.assertEqual(len(categories), 1)
Example #12
0
    def test_repositories_returns_map_of_repos(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/projects',
            body=fixtures.project_response,
            content_type='application/json',
        )

        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/foo/repositories',
            body=fixtures.repository_response,
            content_type='application/json',
        )

        obj = codebase.Client(('example/alice', 'secret'))
        foo_proj = obj.projects['foo']
        result = len(foo_proj.repositories)

        self.assertEqual(result, 1)
Example #13
0
    def test_tickets_can_be_indexed_by_id(self):
        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/projects',
            body=fixtures.project_response,
            content_type='application/json',
        )

        httpretty.register_uri(
            httpretty.GET,
            'https://api3.codebasehq.com/foo/tickets',
            responses=[
                httpretty.Response(body=fixtures.ticket_response, status=200, content_type='application/json'),
                httpretty.Response(body=json.dumps([]), status=404, content_type='application/json'),
            ],
        )

        obj = codebase.Client(('example/alice', 'secret'))
        foo_proj = obj.projects['foo']
        result = foo_proj.tickets[123]

        self.assertIsInstance(result, codebase.Ticket)
Example #14
0
    def test_client_properties(self):
        obj = codebase.Client(('example/alice', 'secret'))

        obj.projects
        obj.create_deployment
        obj.create_ticket
        obj.create_ticket_note
        obj.get_activity
        obj.get_commits
        obj.get_deployments
        obj.get_project_activity
        obj.get_projects
        obj.get_repositories
        obj.get_ticket_categories
        obj.get_ticket_notes
        obj.get_ticket_priorities
        obj.get_ticket_statuses
        obj.get_ticket_types
        obj.get_tickets
        obj.get_user_keys
        obj.get_my_keys
        obj.add_user_key
        obj.add_my_key