diff options
author | Valerii Ponomarov <vponomar@redhat.com> | 2019-11-22 01:24:13 +0530 |
---|---|---|
committer | Valerii Ponomarov <vponomar@redhat.com> | 2019-11-22 13:12:13 +0530 |
commit | 037994f9835cafe248e8a78e4cb875f01116f1ef (patch) | |
tree | 70c7c6669f426b0fd81ea9c4fdf2e2b71859434a /docs/conf.py | |
parent | 082f516a33d14c836cd47293cb29c83ae80e294d (diff) |
[py2to3] Add method to the base class for proper calling of it's methods
Lots of test classes are wrapped by the 'runs_on' decorator.
This decorator replaces original test class with it's copy where
parent class is original test class if we use py3.
Such situation leads to the impossibility to use following approach in
py3:
super(SomeClass, some_class_instance).some_method()
And, the above approach is py2/3 compatible approach for calling
parent class's methods.
The problem we face is that we fall into the unexpected recursion here.
So, add 'get_super_method' to the base class, which detects such
situation and returns proper method of a proper parent class.
Also, fix test class located at 'glusterd/test_peer_status.py' module
to have proof of concept.
With this change 'test_peer_probe_status' test case becomes completely
py2/3 compatible.
Example of new method usage:
@runs_on([['distributed'], ['glusterfs']])
class TestDecoratedClass(GlusterBaseClass):
...
def setUp(self):
self.get_super_method(self, 'setUp')()
...
This approach must be used instead of existing calls of 'im_func'
function if we want to support both at once - python2 and python3.
Signed-off-by: Valerii Ponomarov <kiparis.kh@gmail.com>
Change-Id: I23f4462b64f9d4dd90812273f08fb756d073ab76
Diffstat (limited to 'docs/conf.py')
0 files changed, 0 insertions, 0 deletions