LINUX.ORG.RU

История изменений

Исправление qaqa, (текущая версия) :

Это что ж получается по твоей логике: строчки кода — зло?

Ептить, коллега, не путайте одно с другим. Если код выглядит так

class Class:
   def func(...):
       ...


class DecoratedClass:
    def __init__(obj):
        self._obj = obj

    def func(arg, ...):
        ...
        result = self._obj.func(arg, ...)
        ...
        return result

obj = Class()
decorated_obj = DecoratedClass(obj)

decorated_obj.func(kwargs)

или вот так

def func(...):
   ...


def decorated_func(a_func, a_func_kwargs):
    ...
    result = a_func(**a_func_kwargs)
    ...
    return result

result = decorated_func(func, kwargs)

то можно независимо протестировать все куски. Интеграционный тест тоже нужен, но 1 достаточно.

Когда сделано вот так

@a_func_decorator
def func(...):
   ...

то это гвоздями прибили декоратор к функции, и тестировать функцию теперь сложнее. Надо учитывать, что часть реализации в декораторе.

Исправление qaqa, :

Это что ж получается по твоей логике: строчки кода — зло?

Ептить, коллега, не путайте одно с другим. Если код выглядит так

class Class:
   def func(...):
       ...


class DecoratedClass:
    def __init__(obj):
        self._obj = obj]

    def func(arg, ...):
        ...
        result = self._obj.func(arg, ...)
        ...
        return result

obj = Class()
decorated_obj = DecoratedClass(obj)

decorated_obj.func(kwargs)

или вот так

def func(...):
   ...


def decorated_func(a_func, a_func_kwargs):
    ...
    result = a_func(**a_func_kwargs)
    ...
    return result

result = decorated_func(func, kwargs)

то можно независимо протестировать все куски. Интеграционный тест тоже нужен, но 1 достаточно.

Когда сделано вот так

@a_func_decorator
def func(...):
   ...

то это гвоздями прибили декоратор к функции, и тестировать функцию теперь сложнее. Надо учитывать, что часть реализации в декораторе.

Исправление qaqa, :

Это что ж получается по твоей логике: строчки кода — зло?

Ептить, коллега, не путайте одно с другим. Если код выглядит так

class Class:
   def func(...):
       ...


class DecoratedClass:
    def __init__(obj):
        self._obj = obj]

    def func(arg, ...):
        ...
        result = self._obj.func(args, ...)
        ...
        return result

obj = Class()
decorated_obj = DecoratedClass(obj)

decorated_obj.func(kwargs)

или вот так

def func(...):
   ...


def decorated_func(a_func, a_func_kwargs):
    ...
    result = a_func(**a_func_kwargs)
    ...
    return result

result = decorated_func(func, kwargs)

то можно независимо протестировать все куски. Интеграционный тест тоже нужен, но 1 достаточно.

Когда сделано вот так

@a_func_decorator
def func(...):
   ...

то это гвоздями прибили декоратор к функции, и тестировать функцию теперь сложнее. Надо учитывать, что часть реализации в декораторе.

Исходная версия qaqa, :

Это что ж получается по твоей логике: строчки кода — зло?

Ептить, коллега, не путайте одно с другим. Если код выглядит так

class Class:
   ...

class DecoratedClass:
   ...

obj = Class()
decorated_obj = DecoratedClass(obj)

или вот так

def func(...):
   ...


def decorated_func(a_func, a_func_kwargs):
    ...
    result = a_func(**a_func_kwargs)
    ...
    return result

то можно независимо протестировать все куски. Интеграционный тест тоже нужен, но 1 достаточно.

Когда сделано вот так

@a_func_decorator
def func(...):
   ...

то это гвоздями прибили декоратор к функции, и тестировать функцию теперь сложнее. Надо учитывать, что часть реализации в декораторе.