私は非常に混乱する問題があります。Djangoはunittest中にcouchbaseの単一の値をnullにランダムに設定します
私は他の人の間で2つのテストケースが含まれ、私のオブジェクトのいずれかのユニットテスト、書いた:testD
とtestE
間で
# coding=utf-8
import unittest
from unittests.helper_functions import *
fix = {}
... Test Data is initialized here
check_if_test_bucket_is_used()
check_if_cb_credentials_are_set()
print "Flushing Bucket"
flush_test_bucket(CB_HOST, CB_USER, CB_PASS)
print "Starting Tests"
create_admin_user()
def testD_post_vehicle_by_driver(self):
res_vehicle = post_data('/drivers/vehicles', valid_vehicle_0, auth_obj=None,
headers={'Authorization': 'WebAuth %s' % fix['token'],
'Content-Type': 'application/json',
'Accept': 'application/json'})
driver = cb_find_by_key(valid_driver_0_key)
self.assertIn(valid_obj_0_key, driver[MISSING_KEY])
print driver
def testE_get_vehicle_by_driver(self):
res_single_vehicle = get_data('/vehicles/12345', auth_obj=None,
headers={'Authorization': 'WebAuth %s' % fix['token'],
'Content-Type': 'application/json',
'Accept': 'application/json'})
を、キーMISSING_KEY
は私のデータベース・オブジェクトから消えます。
ドライバオブジェクトをtestD
に印刷すると、まだ値があります。そしてtestE
では、前にこの車両を手に入れようとする要求の前に、値はすでにnull
のCouchbaseになっています。
Djangoのビューは次のとおりです。
def post(self, request):
data = request.data
driver = request.user.details
vehicle = self.vehicle_bo.create_vehicle_by_driver(data, driver[m.ID])
return content_response(vehicle, VehicleModel, request, status_code=status.HTTP_201_CREATED)
私はこの時点で、値はデシベルで、まだ正確である、リターンでそこにブレークポイントを設定します。
機能content_response
:また
def content_response(response_obj, parser_class, request, status_code=status.HTTP_200_OK,
obj_modification_function=None, default='{}'):
if response_obj is None:
return default
# some json manipulation
response = Response(prepared_obj, status=status_code, headers=get_headers(request))
return response
ここで、この時の戻り値は同じまま。
この時点から、私が理解する限りrest_frameworkのレスポンスによってすべてが処理されますが、これはDB操作をまったく行うべきではありません。
これはどこから来たのですか?
いくつかの詳細情報:
- ユニットテストフレームワークなしですべての要求を送信するには、A-Eが実行されているすべてのテストの前にNULL値
- 私は全体のCouchbaseバケットをフラッシュしていますにはなりません。
- 私はそれはちょっと不明だが、あなたはバケツにフラッシュ操作を開始し、その後すぐにそれを使用しようとしているように聞こえるPyCharm