How to catch these kind of bugs in Python?

2006-08-19 Thread asincero
Is there anyway to catch the following type of bug in Python code:

message = 'This is a message'
# some code
# some more code
if some_obscure_condition:
   nessage = 'Some obscure condition occured.'
# yet more code
# still more code
print message


In the above example, message should be set to 'Some obscure condition
occured.' if some_obscure_condition is True.  But due to a lack of
sleep, and possibly even being drunk, the programmer has mistyped
message.  These types of bugs would easily be caught in languages that
have a specific keyword or syntax for declaring variables before use.
I'm still fairly new to using Python on a more than casual basis, so I
don't know if Python has anyway to help me out here.

-- Arcadio

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


Re: How to catch these kind of bugs in Python?

2006-08-19 Thread Jorge Godoy
asincero [EMAIL PROTECTED] writes:

 In the above example, message should be set to 'Some obscure condition
 occured.' if some_obscure_condition is True.  But due to a lack of
 sleep, and possibly even being drunk, the programmer has mistyped
 message.  These types of bugs would easily be caught in languages that
 have a specific keyword or syntax for declaring variables before use.
 I'm still fairly new to using Python on a more than casual basis, so I
 don't know if Python has anyway to help me out here.

Unit testing, running pylint, pychecker, etc.

-- 
Jorge Godoy  [EMAIL PROTECTED]
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How to catch these kind of bugs in Python?

2006-08-19 Thread dave . brueck
asincero wrote:
 Is there anyway to catch the following type of bug in Python code:

 message = 'This is a message'
 if some_obscure_condition:
nessage = 'Some obscure condition occured.'
 print message


 In the above example, message should be set to 'Some obscure condition
 occured.' if some_obscure_condition is True.  But due to a lack of
 sleep, and possibly even being drunk, the programmer has mistyped
 message.  These types of bugs would easily be caught in languages that
 have a specific keyword or syntax for declaring variables before use.

There are tools that help (e.g. pychecker), but there are a few things
to consider:

1) If the programmer is sleepy/drunk, you're going to have other bugs
too (logical errors, not handling all cases, etc.)

2) Other languages would catch *some* types of these bugs, but would
still miss some of them (I can see a sleepy programmer also using the
wrong variable instead of just mistyping the right one).

So while a tool might assist, it's worth your while to also consider
some strategies for tackling the above two problems and, in the
process, the sleepy-programmer-mistype bugs will get caught as well.
Some type of testing is probably the best answer - be it reusable unit
tests or, at the very least, some interactive testing of code snippets
(which Python makes really easy to do).

-Dave

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


Re: How to catch these kind of bugs in Python?

2006-08-19 Thread Ravi Teja
asincero wrote:
 Is there anyway to catch the following type of bug in Python code:

 message = 'This is a message'
 # some code
 # some more code
 if some_obscure_condition:
nessage = 'Some obscure condition occured.'
 # yet more code
 # still more code
 print message


 In the above example, message should be set to 'Some obscure condition
 occured.' if some_obscure_condition is True.  But due to a lack of
 sleep, and possibly even being drunk, the programmer has mistyped
 message.  These types of bugs would easily be caught in languages that
 have a specific keyword or syntax for declaring variables before use.
 I'm still fairly new to using Python on a more than casual basis, so I
 don't know if Python has anyway to help me out here.

The keyword is obscure condition. The solution is to use a coverage
tool and create unit tests that give you 100% code coverage.

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