Unittest - testing for filenames and filesize

Roy Smith roy at panix.com
Thu Aug 23 08:28:55 EDT 2012


In article <6b0299df-bc24-406b-8d69-489e990d8e4f at googlegroups.com>,
 Tigerstyle <laddosingh at gmail.com> wrote:

> Hi.
> 
> I need help with an assignment and I hope you guys can guide me in the right 
> direction.
> [code elided]
> 1. The test_1() method includes code to verify that the test directory 
> contains only the files created by the for loop. Hint: You might create a set 
> containing the list of three filenames, and then create a set from the 
> os.listdir() method.

I'm not sure what your question is.  The hint you give above pretty much 
tells you what to do.  The basic issue here is that you started out with 
a list (well, tuple) of filenames.  You can use os.listdir() to get a 
list of filenames that exist in the current directory.  The problem is 
that you can't compare these two lists directly, because lists are 
ordered.  Converting both lists to sets eliminates the ordering and lets 
you compare them.
 
> I'm new to Python programming so I don't know where to put the set in point 
> 1. Before the test or under test1.

I think you want to end up with something like:

    def test_1(self):
        "Verify creation of files is possible"
        filenames = ("this.txt", "that.txt", "the_other.txt")
        for filename in filenames:
            f = open(filename, "w")
            f.write("Some text\n")
            f.close()
            self.assertTrue(f.closed)
        dir_names = os.listdir()
        self.assertEqual(set(dir_names), set(filenames))

The above code isn't tested, but it should give you the gist of what you 
need to do.



More information about the Python-list mailing list