# -*- coding: utf-8 -*-
import pytest
import requests
import json
import time
base = 'https://api.hipchat.com/v1/'
auth_token_url_fragment = 'auth_token=daae1f1c59e06463a89cc64e-example'
ROOM_CREATE = 'rooms/create?'
USERS_LIST = 'users/list?'
class TestCreateRoom( object ):
# Positive Happy Path Tests
def test_success( self ):
parameters = { 'name': str( time.time() ) }
response = requests.post( base + ROOM_CREATE + auth_token_url_fragment , params=parameters )
print response.status_code
print response.content
# Negative Error Tests
def test_invalid_http_method_url( self ):
""" {"error":{"code":400,"type":"Bad Request","message":"This method only accepts requests as GET, HEAD. You used POST."}} """
response = requests.get( base + ROOM_CREATE + auth_token_url_fragment )
error_body = json.loads( response.content )[ 'error' ]
assert response.status_code == 400
assert error_body[ 'code' ] == 400
assert error_body[ 'type' ] == 'Bad Request'
assert error_body[ 'message' ] == 'This method only accepts requests as POST, HEAD. You used GET.'
def test_missing_name_parameter( self ):
response = requests.post( base + ROOM_CREATE + auth_token_url_fragment )
assert response.status_code == 400
error_body = json.loads( response.content )[ 'error' ]
assert error_body[ 'code' ] == 400
assert error_body[ 'type' ] == 'Bad Request'
assert error_body[ 'message' ] == 'Missing required parameter: name'
def test_missing_owner_user_id_parameter( self ):
parameters = { 'name': str( time.time() ) }
response = requests.post( base + ROOM_CREATE + auth_token_url_fragment, params=parameters )
assert response.status_code == 400
error_body = json.loads( response.content )[ 'error' ]
assert error_body[ 'code' ] == 400
assert error_body[ 'type' ] == 'Bad Request'
assert error_body[ 'message' ] == 'Missing required parameter: owner_user_id'
def test_invalid_api_method_url( self ):
response = requests.post( base + ROOM_CREATE[:-1] + auth_token_url_fragment )
error_body = json.loads( response.content )[ 'error' ]
assert response.status_code == 404
assert error_body[ 'code' ] == 404
assert error_body[ 'type' ] == 'Not Found'
assert error_body[ 'message' ] == 'This Method was not found. Please see: https://www.hipchat.com/docs/api'
class TestListUsers( object ):
# Positive Happy Path Tests
def test_success( self ):
"""
"""
response = requests.get( base + USERS_LIST + auth_token_url_fragment )
assert response.status_code == 200
print response.content
# Negative Error Tests
def test_invalid_api_method_url( self ):
response = requests.get( base + USERS_LIST[:-1] + auth_token_url_fragment )
assert response.status_code == 404
error_body = json.loads( response.content )[ 'error' ]
assert error_body[ 'code' ] == 404
assert error_body[ 'type' ] == 'Not Found'
assert error_body[ 'message' ] == 'This Method was not found. Please see: https://www.hipchat.com/docs/api'