OpenStack中給wsgi程式寫單元測試的方法

2021-09-08 03:49:59 字數 2580 閱讀 1287

在 openstack 中, 針對web應用, 有三種方法來寫單元測試

1) 使用webob生成模擬的request

from __future__ import print_function

import webob

import testtools

def hello_world(env, start_response):

if env['path_info'] != '/':

start_response('404 not found', [('content-type', 'text/plain')])

return ['not found\r\n']

start_response('200 ok', [('content-type', 'text/plain')])

return ['hello world!']

def test_hello_world_with_webob(self):

resp = webob.request.blank('/').get_response(hello_world)

print("resp=%s" % (resp))

self.assertequal(resp.status_code, 200)

self.assertequal(resp.body, "hello world!")

2) 使用webtest生成模擬的request

from __future__ import print_function

import webtest

import testtools

def hello_world(env, start_response):

if env['path_info'] != '/':

start_response('404 not found', [('content-type', 'text/plain')])

return ['not found\r\n']

start_response('200 ok', [('content-type', 'text/plain')])

return ['hello world!']

def test_hello_world_with_webtest(self):

print("resp=%s" % (resp))

self.assertequal(resp.status_code, 200)

self.assertequal(resp.body, "hello world!")

3) 啟動乙個wsgi server, 並傳送真實的 http請求

這樣的辦法最複雜, 須要下面步驟

openstack 掛載usb裝置給虛機

在虛機所在的節點檢驗是否安裝必要的包 rpm qa grep usbutils 如沒有,則yum install usbutils進行安裝 檢視節點現有usb裝置 lsusb 插入usb裝置,確認新增的usb裝置資訊 主要確認verdor id和product id lsusb v 準備usb de...

Django中Nginx和WSGI部署系列之十七

當專案開發完成後,需要將專案 放到伺服器上,這個伺服器擁有固定的ip,再通過網域名稱繫結,就可以供其它人瀏覽,對於python web開發,可以使用wsgi apache伺服器。伺服器首先是物理上的一台效能高 線路全 執行穩定的機器,分為私有伺服器 公有伺服器。私有伺服器 公司自己購買 自己維護,只...

linux中wsgi的詳解(企業級)

利用python指令碼架構,該指令碼是用來記錄系統時間 介紹wsgi server wsgi規定符合wsgi規範的wsgi伺服器需要完成以下事情 接收來自http客戶端的request請求 按照wsgi規範呼叫wsgi應用程式 把處理好的結果返回給客戶端 wsgi規定wsgi應用程式是乙個calla...