docker-py/tests/fake_api.py

171 lines
5.3 KiB
Python

import json
CURRENT_VERSION = 'v1.4'
FAKE_CONTAINER_ID = '3cc2351ab11b'
FAKE_IMAGE_ID = 'e9aa60c60128'
### Each method is prefixed with HTTP method (get, post...)
### for clarity and readability
def get_fake_version():
status_code = 200
response = json.dumps({'GoVersion': '1', 'Version': '1.1.1'})
return status_code, response
def get_fake_info():
status_code = 200
response = json.dumps({'Containers': 1, 'Images': 1, 'Debug': ''})
return status_code, response
def get_fake_search():
status_code = 200
response = json.dumps([{'Name': 'busybox', 'Description': 'Fake Description'}])
return status_code, response
def get_fake_images():
status_code = 200
response = json.dumps([
{'Id': FAKE_IMAGE_ID, 'Created': '2 days ago', 'Repository': 'busybox', 'Tag': 'latest'}
])
return status_code, response
def get_fake_containers():
status_code = 200
response = json.dumps([
{'Id': FAKE_CONTAINER_ID,
'Image': 'busybox:latest',
'Created': '2 days ago',
'Command': 'true',
'Status': 'fake status'}
])
return status_code, response
def post_fake_start_container():
status_code = 200
response = json.dumps({'Id': FAKE_CONTAINER_ID})
return status_code, response
def post_fake_create_container():
status_code = 200
response = json.dumps({'Id': FAKE_CONTAINER_ID})
return status_code, response
def get_fake_inspect_container():
status_code = 200
response = json.dumps({
'Id': FAKE_CONTAINER_ID,
'Config': {'Privileged': True},
'ID': FAKE_CONTAINER_ID,
'Image': 'busybox:latest',
"State": {
"Running": True,
"Pid": 0,
"ExitCode": 0,
"StartedAt": "2013-09-25T14:01:18.869545111+02:00",
"Ghost": False
},
})
return status_code, response
def get_fake_wait():
status_code = 200
response = json.dumps({'StatusCode': 0})
return status_code, response
def get_fake_logs():
status_code = 200
response = 'Flowering Nights (Sakuya Iyazoi)'
return status_code, response
def get_fake_diff():
status_code = 200
response = json.dumps([{'Path': '/test', 'Kind': 1}])
return status_code, response
def post_fake_stop_container():
status_code = 200
response = json.dumps({'Id': FAKE_CONTAINER_ID})
return status_code, response
def post_fake_kill_container():
status_code = 200
response = json.dumps({'Id': FAKE_CONTAINER_ID})
return status_code, response
def post_fake_restart_container():
status_code = 200
response = json.dumps({'Id': FAKE_CONTAINER_ID})
return status_code, response
def delete_fake_remove_container():
status_code = 200
response = json.dumps({'Id': FAKE_CONTAINER_ID})
return status_code, response
def post_fake_image_create():
status_code = 200
response = json.dumps({'Id': FAKE_IMAGE_ID})
return status_code, response
def delete_fake_remove_image():
status_code = 200
response = json.dumps({'Id': FAKE_IMAGE_ID})
return status_code, response
def post_fake_commit():
status_code = 200
response = json.dumps({'Id': FAKE_CONTAINER_ID})
return status_code, response
def post_fake_build_container():
status_code = 200
response = json.dumps({'Id': FAKE_CONTAINER_ID})
return status_code, response
## maps real api url to fake response callback
fake_responses = {
'unix://var/run/docker.sock/{0}/version'.format(CURRENT_VERSION): get_fake_version,
'unix://var/run/docker.sock/{0}/info'.format(CURRENT_VERSION): get_fake_info,
'unix://var/run/docker.sock/{0}/images/search'.format(CURRENT_VERSION): get_fake_search,
'unix://var/run/docker.sock/{0}/images/json'.format(CURRENT_VERSION): get_fake_images,
'unix://var/run/docker.sock/{0}/containers/ps'.format(CURRENT_VERSION): get_fake_containers,
'unix://var/run/docker.sock/{0}/containers/3cc2351ab11b/start'.format(CURRENT_VERSION): post_fake_start_container,
'unix://var/run/docker.sock/{0}/containers/3cc2351ab11b/json'.format(CURRENT_VERSION): get_fake_inspect_container,
'unix://var/run/docker.sock/{0}/containers/3cc2351ab11b/wait'.format(CURRENT_VERSION): get_fake_wait,
'unix://var/run/docker.sock/{0}/containers/3cc2351ab11b/attach'.format(CURRENT_VERSION): get_fake_logs,
'unix://var/run/docker.sock/{0}/containers/3cc2351ab11b/changes'.format(CURRENT_VERSION): get_fake_diff,
'unix://var/run/docker.sock/{0}/containers/3cc2351ab11b/stop'.format(CURRENT_VERSION): post_fake_stop_container,
'unix://var/run/docker.sock/{0}/containers/3cc2351ab11b/kill'.format(CURRENT_VERSION): post_fake_kill_container,
'unix://var/run/docker.sock/{0}/containers/3cc2351ab11b/restart'.format(CURRENT_VERSION): post_fake_restart_container,
'unix://var/run/docker.sock/{0}/containers/3cc2351ab11b'.format(CURRENT_VERSION): delete_fake_remove_container,
'unix://var/run/docker.sock/{0}/images/create'.format(CURRENT_VERSION): post_fake_image_create,
'unix://var/run/docker.sock/{0}/images/e9aa60c60128'.format(CURRENT_VERSION): delete_fake_remove_image,
'unix://var/run/docker.sock/{0}/commit'.format(CURRENT_VERSION): post_fake_commit,
'unix://var/run/docker.sock/{0}/containers/create'.format(CURRENT_VERSION): post_fake_create_container,
'unix://var/run/docker.sock/{0}/build'.format(CURRENT_VERSION): post_fake_build_container
}