#python-3.x
#python-3.x
Вопрос:
Я новичок в python и пытаюсь напечатать значение с помощью функции assert в python.
Ниже приведен пример кода:
HEADERS_VALID = {'Content-Type': 'application/json', 'fiware-Service': 'test', 'fiware-ServicePath': '/t1'}
HEADERS_INVALID = {'Content-Type': 'application/json', 'fiwareService': 'test', 'fiwareServicePath': '/t1'}
def test_for_valid_headers(notification):
notification['data'][0] = {
'id': 'Room0',
'type': 'Room',
'temperature': {'type': 'Number', 'value': '100', 'metadata': {'dateModified': {'type': 'DateTime','value': '1980-01-30T00:00:00.000 00:00'}}},
'pressure': {'type': 'Number', 'value': '10', 'metadata': {'dateModified': {'type': 'DateTime','value': '1980-01-30T00:00:00.000 00:00'}}},
}
res_post = requests.post(data=json.dumps(notification),
headers=HEADERS_VALID)
time.sleep(1)
assert res_post.status_code == 200
assert res_post.json() == 'Notification successfully processed'
get_url = "{}/entities/Room0".format(QL_URL)
res_get = requests.get(get_url, headers=HEADERS_VALID)
assert res_get.status_code == 200
exp_values = {
"attributes": [{'attrName': 'pressure', 'values': [10.0]}, {'attrName':
'temperature', 'values': [100.0]}],
"entityId": 'Room0',
"index": [
'1980-01-30T00:00:00.000 00:00'
]
}
assert res_get.json() == exp_values
Здесь в res_post.json()
фактическом ответе есть "Notification successfully processed for : 'tenant' test, 'fiwareServicePath' /t1, 'entity_id' ['Room0']"
, который не равен 'Notification successfully processed'
в assert
функции. Итак, хочу добавить часть rest в функцию assert.
После этого ответа я добавил ,
assert res_post.json() == "Notification successfully processed for: : 'tenant' %s, 'fiwareServicePath' %s" %(fiware_s, fiware_sp)
что выдает ошибку как : NameError: name 'fiware' is not defined
Я не могу понять, что я делаю неправильно в этом утверждении.Любая помощь по этому вопросу будет отличной. Заранее спасибо.
Комментарии:
1. Похоже, что эта ошибка не соответствует показанному утверждению … есть ли еще код, которого нам не хватает?
2.
fiware
(иfiware_s
/fiware_sp
), похоже, не определены в инструкции assertion.3.@EdWard, я добавил код, но при отладке кода он выдает ошибку в «assert res_post.json()», как показано ниже:
assert "Notification...fiware-ServicePath" == 'Notification ...lly processed'
E - Notification successfully processed for : 'tenant' test, 'fiwareServicePath' /t1
E Notification successfully processed
`4. кажется, вы пропустили
fiware
переменную. одна из альтернатив вашему assertassert "Notification successfully processed for" in res_post.json()
или использоватьassertIn