Spec-Zone.ru › TensorFlow 2.4

tf.compat.v1.test.StubOutForTesting

Класс для подстановки методов при тестировании.

tf.compat.v1.test.StubOutForTesting()

Пример использования:

Вы хотите, чтобы os.path.exists() всегда возвращал true во время тестирования.

stubs = StubOutForTesting() stubs.Set(os.path, 'exists', lambda x: 1) ... stubs.CleanUp()

Вышеприведенный код заменяет os.path.exists на лямбда-функцию, которая возвращает 1. После выполнения части кода ... функция CleanUp() ищет старое значение os.path.exists и восстанавливает его.

Методы

CleanUp

Посмотреть исходный код

CleanUp()

Отменяет все вызовы SmartSet() и Set(), восстанавливая исходные определения.

Set

Посмотреть исходный код

Set(
    parent, child_name, new_child
)

В родительском объекте заменяет старое определение child_name на new_child.

Родительским объектом может быть модуль, а дочерним — функция на уровне модуля. Или родительским может быть класс, а дочерним — метод класса. Имя дочернего объекта устанавливается в new_child, а предыдущее определение сохраняется для последующего использования при вызове UnsetAll().

Этот метод поддерживает случаи, когда child_name является статическим или классовым методом родителя.

Аргументы
parent Контекст, в котором нужно изменить атрибут child_name.
child_name Имя атрибута для изменения.
new_child Новое значение атрибута.

SmartSet

Посмотреть исходный код

SmartSet(
    obj, attr_name, new_attr
)

Заменяет obj.attr_name на new_attr.

Этот метод умный и работает на уровне модулей, классов и экземпляров, сохраняя правильное наследование. Он не будет подменять C-типы, однако, если это не было явно разрешено типом.

Этот метод поддерживает случаи, когда attr_name является статическим или классовым методом obj.

Примечания:

  • Если obj — экземпляр, то подменяется его класс. Обратите внимание, что метод Set() этого не делает: если obj — экземпляр, подменяется он сам (а не его класс).
  • Подмена использует встроенные функции getattr и setattr. Таким образом, при подмене вызываются get и set (вероятно, для манипулирования obj.dict вместо getattr() и setattr()).
Аргументы
obj Объект, атрибуты которого нужно изменить.
attr_name Имя атрибута для изменения.
new_attr Новое значение атрибута.
Исключения
AttributeError Если атрибут не найден.

SmartUnsetAll

Посмотреть исходный код

SmartUnsetAll()

Отменяет вызовы SmartSet(), восстанавливая исходные определения.

Этот метод автоматически вызывается при удалении объекта StubOutForTesting(); нет необходимости вызывать его явно.

Можно вызывать SmartUnsetAll() многократно; последующие вызовы не имеют эффекта, если вызовы SmartSet() не производились.

UnsetAll

Посмотреть исходный код

UnsetAll()

Отменяет вызовы Set(), восстанавливая исходные определения.

Этот метод автоматически вызывается при удалении объекта StubOutForTesting(); нет необходимости вызывать его явно.

Можно вызывать UnsetAll() многократно; последующие вызовы не имеют эффекта, если вызовы Set() не производились.

__enter__

Посмотреть исходный код

__enter__()

__exit__

Посмотреть исходный код

__exit__(
    unused_exc_type, unused_exc_value, unused_tb
)

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/compat/v1/test/StubOutForTesting

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API