Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > testing -- what to do for testing code with behaviour dependant uponwhich files exist?

Reply
Thread Tools

testing -- what to do for testing code with behaviour dependant uponwhich files exist?

 
 
Brian van den Broek
Guest
Posts: n/a
 
      04-02-2005
Hi all,

I'm just starting to employ unit testing (I'm using doctest), and I am
uncertain how to handle writing tests where the behaviour being tested
is dependant on whether certain file paths point to actual files.

I have a class which takes, in its __init__, a list of file paths to
process. The class has a method to validate that the paths passed in
are appropriate ones for the class. One portion of the validation code
ensures that the passed in file paths actually exist.

The relevant part of the validation method code looks like:

# self.universe_files is a list of file paths
non_existent_files = [ x for x in self.universe_files if
not os.path.isfile(x) ]
if non_existent_files:
raise Files_dont_existError, non_existent_files

where Files_dont_existError is a custom exception with an informative
error message nicely printing a listing of all the file paths which
didn't point to extant files.

I can test the custom error class just fine, but I don't see how to
test the validation method itself.

My problem is that I want to test how it behaves both when it is sent
only existing file paths, and when it is sent at least 1 non-existent
one. But it seems like that in order to test that, I have to know in
advance details of what files exist on the system running the tests.
And, it won't do to pick file paths with the right properties with
respect to my computer, as I am writing this code to share with
someone else, and so I'd have to know details of his file system, too.
(If it matters, I am using Python 2.4.1 on windows, and I am sending
the code to someone running Python 2.2 on Linux.)

So, how does one handle such cases with tests?

Thanks for any suggestions. Best,

Brian vdB


 
Reply With Quote
 
 
 
 
=?UTF-8?B?QW5kcsOp?= Malo
Guest
Posts: n/a
 
      04-02-2005
* Brian van den Broek wrote:

> The relevant part of the validation method code looks like:
>
> # self.universe_files is a list of file paths
> non_existent_files = [ x for x in self.universe_files if
> not os.path.isfile(x) ]
> if non_existent_files:
> raise Files_dont_existError, non_existent_files
>
> I can test the custom error class just fine, but I don't see how to
> test the validation method itself.


The logic is simple -- you don't want to test os.path.isfile, so mock it.
Just encapsulate the os.path.isfile call in an own method, which can be
overridden by your test.

nd
--
# André Malo, <http://pub.perlig.de/> #
 
Reply With Quote
 
 
 
 
Grig Gheorghiu
Guest
Posts: n/a
 
      04-02-2005
Can't you use the tempfile module to generate unique names for
non-existent files and directories? Take a look at
http://www.python.org/doc/lib/module-tempfile.html -- it works on all
supported platforms.

Grig

 
Reply With Quote
 
Jeremy Bowers
Guest
Posts: n/a
 
      04-03-2005
On Sat, 02 Apr 2005 15:30:13 -0500, Brian van den Broek wrote:
> So, how does one handle such cases with tests?


When I had a similar situation, I created a directory for testing that was
in a known state, and tested on that. If you can test based on a relative
directory, that should work OK.

Non-existant paths shouldn't be too hard to come up with; hardcoding a
constant relative dir of
"THISDIRECTORYCANTPOSSIBLYEXISTANDIFITDOESYOURENUT S" ought to do OK.



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Creating runnable .jar with dependant libraries? Bas Java 2 05-04-2006 07:23 PM
Re: testing -- what to do for testing code with behaviour dependantupon which files exist? Brian van den Broek Python 2 04-04-2005 11:37 PM
Dependant files query KiwiBrian HTML 2 10-16-2004 12:33 PM
Problems using freeze with platform dependant compiles Jeff Smith Python 1 07-29-2004 02:26 PM
image dependant on resolution Michael Tonelli HTML 11 07-23-2004 05:01 PM



Advertisments