예제 #1
0
파일: classes.py 프로젝트: roch1990/peon
 def constructor(self) -> Optional[FunctionLint]:
     """
     Check func definition for 'constructor' by name
     :return: bool
     """
     # iterate over all definitions from ast node body
     for func in self.functions:
         # check, that the aren't constants or assignment
         if isinstance(func, _ast.FunctionDef):
             # TODO: change None value to some other
             # return  that function if it's constructor else None
             return FunctionLint(func) if func.name == '__init__' else None
     return None
예제 #2
0
파일: classes.py 프로젝트: roch1990/peon
 def converted_methods(self) -> Tuple[FunctionLint]:
     """
     Return all class methods as Function objects
     :return: tuple of class methods
     """
     converted_methods = []
     # iterate over all definitions from ast node body
     for func in self.functions:
         # check, that the aren't constants or assignment
         if isinstance(func, _ast.FunctionDef):
             # convert function from ast function object to local Function object
             converted_methods.append(FunctionLint(func))
     # dont forget to convert list to immutable object
     return tuple(converted_methods)
예제 #3
0
def test_function_definition_is_pass():
    assert FunctionLint(
        definition=SetEncapsulatedAttribsLineNumbersFixture.definition_is_pass,
    ).set_encapsulated_attribs_line_numbers() == ()
예제 #4
0
def test_definitions_consist_of_assign_without_attribute():
    assert FunctionLint(
        definition=ConstructorNonAttribsValueLineNumberFixture.definitions_consist_of_assign_without_attribute,
    ).constructor_non_attribs_value_line_number() == (2,)
def test_definitions_is_not_a_test_function():
    assert FunctionLint(definition=NonAssertMethodAtTestFunctionFixture.
                        definitions_is_not_a_test_function,
                        ).non_assert_methods_at_test_function() == ()
예제 #6
0
def test_method_name_is_none():
    assert FunctionLint(
        definition=SetterOrGetterDefNamesLineNumbersFixture.name_is_none,
    ).setter_or_getters_def_names_line_numbers() == ()
예제 #7
0
def test_method_is_static():
    assert FunctionLint(definition=StaticOrPrivateFixture.is_static,
                        ).static_or_private() is True
예제 #8
0
def test_empty_decorator_list():
    assert FunctionLint(definition=StaticOrPrivateFixture.empty_decorator_list,
                        ).static_or_private() is False
예제 #9
0
def test_function_definition_is_expr():
    assert FunctionLint(definition=StaticOrPrivateFixture.definition_is_expr,
                        ).static_or_private() is False
예제 #10
0
def test_node_is_none():
    assert FunctionLint(
        definition=ReturnedValueFixture.node_is_none,
    ).returned_value().__dict__ == ResultReturnValueFixture.none
def test_constructor_with_mutable():
    assert FunctionLint(definition=ConstructorMutableAttribsLineNumberFixture.
                        constructor_with_mutable,
                        ).constructor_mutable_attribs_line_number() == (1, 2,
                                                                        3)
def test_definition_is_not_a_function():
    assert FunctionLint(definition=ConstructorMutableAttribsLineNumberFixture.
                        definition_is_not_a_function,
                        ).constructor_mutable_attribs_line_number() == ()
예제 #13
0
def test_definitions_consist_of_any_but_not_a_assign():
    assert FunctionLint(
        definition=ConstructorNonAttribsValueLineNumberFixture.definitions_consist_of_any_but_not_a_assign,
    ).constructor_non_attribs_value_line_number() == (3,)
예제 #14
0
def test_function_is_constructor():
    assert FunctionLint(
        definition=SetEncapsulatedAttribsLineNumbersFixture.is_constructor,
    ).set_encapsulated_attribs_line_numbers() == ()
예제 #15
0
def test_plain_expression_as_input():
    assert FunctionLint(
        definition=ReturnedValueFixture.plain_expression_as_input,
    ).returned_value().__dict__ == ResultReturnValueFixture.wrong
예제 #16
0
def test_function_with_assign_with_self():
    assert FunctionLint(
        definition=SetEncapsulatedAttribsLineNumbersFixture.with_assign_with_self,
    ).set_encapsulated_attribs_line_numbers() == (1,)
예제 #17
0
def test_function_body_is_empty():
    assert FunctionLint(
        definition=ReturnedValueFixture.function_body_is_empty,
    ).returned_value().__dict__ == ResultReturnValueFixture.wrong
예제 #18
0
def test_empty_decorator_list_and_name():
    with pytest.raises(AttributeError):
        assert FunctionLint(
            definition=StaticOrPrivateFixture.empty_decorator_list_and_name,
        ).static_or_private()
예제 #19
0
def test_function_body_with_return_expression():
    assert FunctionLint(
        definition=ReturnedValueFixture.function_body_with_return_expression,
    ).returned_value().__dict__ == ResultReturnValueFixture.success
예제 #20
0
def test_method_decorated():
    assert FunctionLint(definition=StaticOrPrivateFixture.decorated,
                        ).static_or_private() is False
예제 #21
0
def test_empty_node():
    assert FunctionLint(definition=ReflectionAtLineFixture.empty_node,
                        ).reflection_at_line() == tuple()
예제 #22
0
def test_function_definition_is_pass():
    assert FunctionLint(
        definition=SetterOrGetterDefNamesLineNumbersFixture.definition_is_pass,
    ).setter_or_getters_def_names_line_numbers() == ()
예제 #23
0
def test_is_instance_at_first_lvl():
    assert FunctionLint(
        definition=ReflectionAtLineFixture.is_instance_at_first_lvl,
    ).reflection_at_line() == (1, )
예제 #24
0
def test_method_with_get_keywords():
    assert FunctionLint(
        definition=SetterOrGetterDefNamesLineNumbersFixture.with_get_keywords,
    ).setter_or_getters_def_names_line_numbers() == (2,)
예제 #25
0
def test_type_at_second_lvl():
    assert FunctionLint(definition=ReflectionAtLineFixture.type_at_second_lvl,
                        ).reflection_at_line() == (2, )
def test_definitions_with_code():
    assert FunctionLint(
        definition=NonAssertMethodAtTestFunctionFixture.definitions_with_code,
    ).non_assert_methods_at_test_function() == (1, )
예제 #27
0
def test_definitions_is_not_a_constructor():
    assert FunctionLint(
        definition=ConstructorNonAttribsValueLineNumberFixture.definitions_is_not_a_constructor,
    ).constructor_non_attribs_value_line_number() == ()