Как лучше написать валидацию / тестовые примеры в Python - PullRequest
0 голосов
/ 09 мая 2018

Есть объект, у которого мало свойств. Я написал функцию для тестовых случаев, которая проверяет, удовлетворены ли свойства или нет. Функция должна выдавать исключение, если свойство не выполняется.

Но я думаю, что есть лучшие способы написания этих тестов. Подмножество свойства объекта выглядит следующим образом:

x ['polygon'] - это список из> = 3 целых (x, y) пар, представляющих углы многоугольника по часовой стрелке или против часовой стрелки.

Текущая функция выглядит следующим образом:

def validate_object(x):
    """This function validates an object x that is supposed to represent an object
    inside an image, and throws an exception on failure.
    Specifically it is checking that:
      x['polygon'] is a list of >= 3 integer (x,y) pairs representing the corners
                    of the polygon in clockwise or anticlockwise order.
    """
    if type(x) != dict:
        raise ValueError('dict type input required.')

    if 'polygon' not in x:
        raise ValueError('polygon object required.')

    if not isinstance(x['polygon'], (list,)):
        raise ValueError('list type polygon object required.')

    points_list = x['polygon']
    if len(points_list) < 3:
        raise ValueError('More than two points required.')

    for x, y in points_list:
        if type(x) != int or type(y) != int:
            raise ValueError('integer (x,y) pairs required.')

    return

Было бы очень полезно, если бы кто-то мог предложить более эффективные способы написания этих тестовых случаев

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...