On Thu, Jun 4, 2009 at 4:40 AM, Terry Reedy <tjre...@udel.edu> wrote:
> Mike wrote: > >> Hello, >> >> I'm writing an application that needs to fetch a json file from a >> webserver. I'm writing the tests and have a question: >> >> if I have the following methods: >> >> def test_headers(self): >> headers = libary.get_data(data) >> check header status >> > > With no json experience specifically.... > > Checking I/O is nasty since the test running correctly depends on external > resources running correctly and not just your program. I would separate I/O > tests from 'process the data' checks and do the latter with canned data. If > the canned data built into the test is the same as that on the test server, > then testing the fetch is an equality test. > > Thanks, I think I need to separate the tests. The way JSON works is: Open a url with a request <- this returns a file like object, the JSON libary reads the file like object and returns a list of dictionary objects. So first I want to make sure when I do the request I get a 200 OK response, second I want to make sure the JSON object matches my predefined object for it (to ensure no API changes). I think I'll have an external test, which will do two calls (unless I can use the result of the response check test). And if this test passes I will then run my mock test which tests for functionality (and can be run offline). If the first fails then its an indication that the api may have changed and I need to change my mocks. Is this a good testing method/ approach?
-- http://mail.python.org/mailman/listinfo/python-list