Development of an internal social media platform with personalised dashboards for students
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

useless_super_delegation.py 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. # pylint: disable=missing-docstring, no-member, no-self-use, bad-super-call
  2. # pylint: disable=too-few-public-methods, unused-argument, invalid-name, too-many-public-methods
  3. # pylint: disable=line-too-long
  4. def not_a_method(param, param2):
  5. return super(None, None).not_a_method(param, param2)
  6. class SuperBase(object):
  7. def with_default_arg(self, first, default_arg="only_in_super_base"):
  8. pass
  9. def with_default_arg_bis(self, first, default_arg="only_in_super_base"):
  10. pass
  11. def with_default_arg_ter(self, first, default_arg="will_be_changed"):
  12. pass
  13. def with_default_arg_quad(self, first, default_arg="will_be_changed"):
  14. pass
  15. class Base(SuperBase):
  16. fake_method = not_a_method
  17. def something(self):
  18. pass
  19. def with_default_argument(self, first, default_arg="default"):
  20. pass
  21. def with_default_argument_bis(self, first, default_arg="default"):
  22. pass
  23. def without_default_argument(self, first, second):
  24. pass
  25. def with_default_argument_none(self, first, default_arg=None):
  26. pass
  27. def without_default_argument2(self, first, second):
  28. pass
  29. def with_default_argument_int(self, first, default_arg=42):
  30. pass
  31. def with_default_argument_tuple(self, first, default_arg=()):
  32. pass
  33. def with_default_arg_ter(self, first, default_arg="has_been_changed"):
  34. super(Base, self).with_default_arg_ter(first, default_arg)
  35. def with_default_arg_quad(self, first, default_arg="has_been_changed"):
  36. super(Base, self).with_default_arg_quad(first, default_arg)
  37. class NotUselessSuper(Base):
  38. def multiple_statements(self):
  39. first = 42 * 24
  40. return super(NotUselessSuper, self).multiple_statements() + first
  41. def not_a_call(self):
  42. return 1 + 2
  43. def not_super_call(self):
  44. return type(self).__class__
  45. def not_super_attribute_access(self):
  46. return super(NotUselessSuper, self)
  47. def invalid_super_call(self):
  48. return super(NotUselessSuper, 1).invalid_super_call()
  49. def other_invalid_super_call(self):
  50. return super(2, 3, 4, 5).other_invalid_super_call()
  51. def different_name(self):
  52. return super(NotUselessSuper, self).something()
  53. def different_super_mro_pointer(self):
  54. return super(Base, self).different_super_mro_pointer()
  55. def different_super_type(self):
  56. return super(NotUselessSuper, NotUselessSuper).different_super_type()
  57. def other_different_super_type(self):
  58. return super(NotUselessSuper, 1).other_different_super_type()
  59. def not_passing_param(self, first):
  60. return super(NotUselessSuper, self).not_passing_param()
  61. def modifying_param(self, first):
  62. return super(NotUselessSuper, self).modifying_param(first + 1)
  63. def transforming_param(self, first):
  64. return super(NotUselessSuper, self).transforming_param(type(first))
  65. def modifying_variadic(self, *args):
  66. return super(NotUselessSuper, self).modifying_variadic(tuple(args))
  67. def not_passing_keyword_variadics(self, *args, **kwargs):
  68. return super(NotUselessSuper, self).not_passing_keyword_variadics(*args)
  69. def not_passing_default(self, first, second=None):
  70. return super(NotUselessSuper, self).not_passing_default(first)
  71. def passing_only_a_handful(self, first, second, third, fourth):
  72. return super(NotUselessSuper, self).passing_only_a_handful(
  73. first, second)
  74. def not_the_same_order(self, first, second, third):
  75. return super(NotUselessSuper, self).not_the_same_order(third, first, second)
  76. def no_kwargs_in_signature(self, key=None):
  77. values = {'key': 'something'}
  78. return super(NotUselessSuper, self).no_kwargs_in_signature(**values)
  79. def no_args_in_signature(self, first, second):
  80. values = (first + 1, second + 2)
  81. return super(NotUselessSuper, self).no_args_in_signature(*values)
  82. def variadics_with_multiple_keyword_arguments(self, **kwargs):
  83. return super(NotUselessSuper, self).variadics_with_multiple_keyword_arguments(
  84. first=None,
  85. second=None,
  86. **kwargs)
  87. def extraneous_keyword_params(self, none_ok=False):
  88. super(NotUselessSuper, self).extraneous_keyword_params(
  89. none_ok,
  90. valid_values=[23, 42])
  91. def extraneous_positional_args(self, **args):
  92. super(NotUselessSuper, self).extraneous_positional_args(
  93. 1, 2, **args)
  94. def with_default_argument(self, first, default_arg="other"):
  95. # Not useless because the default_arg is different from the one in the base class
  96. super(NotUselessSuper, self).with_default_argument(first, default_arg)
  97. def without_default_argument(self, first, second=True):
  98. # Not useless because in the base class there is not default value for second argument
  99. super(NotUselessSuper, self).without_default_argument(first, second)
  100. def with_default_argument_none(self, first, default_arg='NotNone'):
  101. # Not useless because the default_arg is different from the one in the base class
  102. super(NotUselessSuper, self).with_default_argument_none(first, default_arg)
  103. def without_default_argument2(self, first, second=None):
  104. # Not useless because in the base class there is not default value for second argument
  105. super(NotUselessSuper, self).without_default_argument2(first, second)
  106. def with_default_argument_int(self, first, default_arg="42"):
  107. # Not useless because the default_arg is a string whereas in the base class it's an int
  108. super(NotUselessSuper, self).with_default_argument_int(first, default_arg)
  109. def with_default_argument_tuple(self, first, default_arg=("42", "a")):
  110. # Not useless because the default_arg is different from the one in the base class
  111. super(NotUselessSuper, self).with_default_argument_tuple(first, default_arg)
  112. def with_default_argument_bis(self, first, default_arg="default"):
  113. # Although the default_arg is the same as in the base class, the call signature
  114. # differs. Thus it is not useless.
  115. super(NotUselessSuper, self).with_default_argument_bis(default_arg + "_argument")
  116. def fake_method(self, param2="other"):
  117. super(NotUselessSuper, self).fake_method(param2)
  118. def with_default_arg(self, first, default_arg="only_in_super_base"):
  119. # Not useless because the call of this method is different from the function signature
  120. super(NotUselessSuper, self).with_default_arg(first, default_arg + "_and_here")
  121. def with_default_arg_bis(self, first, default_arg="default_changed"):
  122. # Not useless because the default value is different from the SuperBase one
  123. super(NotUselessSuper, self).with_default_arg_bis(first, default_arg)
  124. def with_default_arg_ter(self, first, default_arg="has_been_changed_again"):
  125. # Not useless because the default value is different from the Base one
  126. super(NotUselessSuper, self).with_default_arg_ter(first, default_arg)
  127. def with_default_arg_quad(self, first, default_arg="has_been_changed"):
  128. # Not useless because the default value is the same as in the base but the
  129. # call is different from the signature
  130. super(NotUselessSuper, self).with_default_arg_quad(first, default_arg + "_and_modified")
  131. class UselessSuper(Base):
  132. def equivalent_params(self): # [useless-super-delegation]
  133. return super(UselessSuper, self).equivalent_params()
  134. def equivalent_params_1(self, first): # [useless-super-delegation]
  135. return super(UselessSuper, self).equivalent_params_1(first)
  136. def equivalent_params_2(self, *args): # [useless-super-delegation]
  137. return super(UselessSuper, self).equivalent_params_2(*args)
  138. def equivalent_params_3(self, *args, **kwargs): # [useless-super-delegation]
  139. return super(UselessSuper, self).equivalent_params_3(*args, **kwargs)
  140. def equivalent_params_4(self, first): # [useless-super-delegation]
  141. super(UselessSuper, self).equivalent_params_4(first)
  142. def equivalent_params_5(self, first, *args): # [useless-super-delegation]
  143. super(UselessSuper, self).equivalent_params_5(first, *args)
  144. def equivalent_params_6(self, first, *args, **kwargs): # [useless-super-delegation]
  145. return super(UselessSuper, self).equivalent_params_6(first, *args, **kwargs)
  146. def with_default_argument(self, first, default_arg="default"): # [useless-super-delegation]
  147. # useless because the default value here is the same as in the base class
  148. return super(UselessSuper, self).with_default_argument(first, default_arg)
  149. def without_default_argument(self, first, second): # [useless-super-delegation]
  150. return super(UselessSuper, self).without_default_argument(first, second)
  151. def with_default_argument_none(self, first, default_arg=None): # [useless-super-delegation]
  152. # useless because the default value here is the same as in the base class
  153. super(UselessSuper, self).with_default_argument_none(first, default_arg)
  154. def with_default_argument_int(self, first, default_arg=42): # [useless-super-delegation]
  155. super(UselessSuper, self).with_default_argument_int(first, default_arg)
  156. def with_default_argument_tuple(self, first, default_arg=()): # [useless-super-delegation]
  157. super(UselessSuper, self).with_default_argument_tuple(first, default_arg)
  158. def __init__(self): # [useless-super-delegation]
  159. super(UselessSuper, self).__init__()
  160. def with_default_arg(self, first, default_arg="only_in_super_base"): # [useless-super-delegation]
  161. super(UselessSuper, self).with_default_arg(first, default_arg)
  162. def with_default_arg_bis(self, first, default_arg="only_in_super_base"): # [useless-super-delegation]
  163. super(UselessSuper, self).with_default_arg_bis(first, default_arg)
  164. def with_default_arg_ter(self, first, default_arg="has_been_changed"): # [useless-super-delegation]
  165. super(UselessSuper, self).with_default_arg_ter(first, default_arg)
  166. def with_default_arg_quad(self, first, default_arg="has_been_changed"): # [useless-super-delegation]
  167. super(UselessSuper, self).with_default_arg_quad(first, default_arg)
  168. def trigger_something(value_to_trigger):
  169. pass
  170. class NotUselessSuperDecorators(Base):
  171. @trigger_something('value1')
  172. def method_decorated(self):
  173. super(NotUselessSuperDecorators, self).method_decorated()