HMS Surprise wrote:
>
In the file snippet below the value for the global hostName is
determined at runtime. Functions imported from the parent baseClass
file such as logon also need access to this variable but cannot see it
the with the implementation I have attempted here.
Use a class variable:
class baseClass:
hostName = None # undefined yet
def someFunc(self):
assert self.hostName is not None, "hostname not set yet"
... # use hostName here
class temp(baseClass):
def runTest(self):
baseClass.hostName = getHostName()
...
or a global variable:
baseClass.py:
hostName = None
class baseClass:
def someFunc(self):
assert hostName is not None
....
testme.py:
import baseClass
class temp(baseClass.baseClass):
....
baseClass.hostName = getHostName()
although neither solution strikes me as very elegant. I would normally pass
the hostname to the constructor of baseClass or use a separate 'settings'
module.
Global variables are per-module. Use the "global" keyword when assigning a
global variable in the 'current' module. Global variables of other modules
are properties of the module, use <module>.<name>.
>
Also, functions in this file and in the imported parent class need
PyHttpTestCase. Does there need to be an import statement in both
files?
Yes. Don't worry, the work is done only once.
Regards,
Tijs