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', }, )
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)
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)
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)
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)
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)
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')
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')
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==', }, )
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==', }, )
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)
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)
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)
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