Uppal, Deepali wrote:
> Hello,
Hello, and welcome to the world of Python. Don't take anything we say 
too personally, it is meant to help.

> I am facing a bit of a problem due to python implicitly 
> attaching a type to an object. 

Ooh. In general, don't say 'implicit'. For the most part, Python only 
does things explicitly. See the Zen of Python by opening a Python 
interpreter and typing "import this".


> I will briefly tell you the problem that
> I am facing. I am trying to print the docstring of a test case in 
> my pyUnit base test class. I accept the name of the test class as
> a command line option. So instead of printing the docstring of
> the test case, it prints the docString of a string object.

Which is expected, because all command line options are strings. I 
assume you are getting the command line option using the idiom:

import sys
options = sys.argv[1:]

> I would like to give an example here
> import test_script                                                          
> 
> gettatr( test_script.test_class.test_case, ‘__doc__’)

I think you meant:

print getattr(test_script.test_class.test_case, '__doc__')


> With this simple code, I am able to print the docstring
> of the test case.

Yep, Python is simple and expressive.


> However, since I accept the test case information as a command line
> option. So instead of printing the docstring of the test case it
> prints the docstring of a string object.

Right, because all command line options are strings, since that is all 
the shell can really hand off to Python.


> Is there someway, I can tell the script to change the type of
> the object from string to an instancetype of a test case?

In your first example, you import the test_script, and then do a 
getattr() on the test_class inside test_script.py. If you are trying to 
mimic that, and sending one or more test_script's, your code would look 
something like:

import sys

for test_module in sys.argv[1:]
        try:
                _module = __import__(test_module)
                _class = _module.test_class
                _case = _class.test_case
                print _case.__doc__
        except ImportError:
                print "Couldn't import module '%s'. Skipping..." % test_module  


> I am quite a newbie in python so I would appreciate any help on this.

The above should get you started, even though it won't satisfy your 
exact needs.

-- 
Paul McNett
http://paulmcnett.com

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to