Bonjour à tous,

Je tente la surcharge d'un attribut d'une classe mère par une classe fille sur une classe de testcase selenium.
Et bien sûr, je cale.
Voici les codes :

Classe mère :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import unittest, time, sys
import xml.etree.ElementTree as ET
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
 
class testmere (unittest.TestCase):
 
    def setUp(self, v="mere"):
        self.var = v
        print("setUp mere : var = " + self.var)
        if sys.version[0] == '2':
            # On force le système à utiliser l'encodage utf8 si on est sur du python 2...
            # En python 3, le system est en utf-8 par défaut
            reload(sys)
            sys.setdefaultencoding("utf-8")
 
    def test_mere(self):
        print("test_presence mere : var = " + self.var)
 
    def tearDown(self):
        print("tearDown mere : var = " + self.var)
 
if __name__ == '__main__':
    print("execution main")
    unittest.main()
Maintenant la fille :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import unittest, time, sys
from testmere import *
 
class testfille (testmere):
 
    def setUp(self):
        if sys.version[0] == '2':
            # On force le système à utiliser l'encodage utf8 si on est sur du python 2...
            # En python 3, le system est en utf-8 par défaut
            reload(sys)
            sys.setdefaultencoding("utf-8")
        self.var = "fille"
        print("setUp fille : var = " + self.var)
 
    def test_presence(self):
        testmere.test_mere(self)
 
    def tearDown(self):
        testmere.tearDown(self)
 
if __name__ == '__main__':
    t =  testfille()
Et le résultat affiché :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
setUp fille : var = fille
test_presence mere : var = fille
tearDown mere : var = fille
setUp fille : var = fille
test_presence mere : var = fille
tearDown mere : var = fille
setUp mere : var = mere
test_presence mere : var = mere
tearDown mere : var = mere
Tous les résultats "var = fille" ==> OK, c'est ce que je veux.
Mais pourquoi le code "var = mere" s'affiche ?
Et comment l'inhiber ?

Merci pour vos retours !