Как напечатать значение с помощью assert в python

#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 переменную. одна из альтернатив вашему assert assert "Notification successfully processed for" in res_post.json() или использовать assertIn