Now that Tabpy has a unit test framework
(thanks Bora!) I decided to add a few
unit tests to check for error handling in the event of malformed URLs and
such. This was a relatively straightforward
task and, like many test tasks, uncovered a defect in the code.
In this case, we
allow for a timeout setting - a set number of seconds to wait before
"giving up" (I'm simplifying here).
The documentation for that command said that the number of seconds you
tell it to wait cannot be None. When I
was looking at the unit tests here, I saw there was no check for None so I
added it. Then I thought about it a
little more and realized that I could pass in a negative amount of seconds to
wait. That makes no sense at all, so I
also added a check for that condition.
So at about line 90 (in current versions) of \tabpy-client\client.py,
you can see the code I added:
if query_timeout is not None and
query_timeout > 0:
self.query_timeout = query_timeout
else:
self.query_timeout = 0.0
The unit test for
that change is also pretty simple:
client = Client(
endpoint="endpoint",
query_timeout=-10.0,
verify_certificate=False)
self.assertEqual(client.query_timeout,0.0)
If you haven't
installed Tabpy feel free to hop over there and give it a shot. It's also now available on Pipy so you can
pip install tabpy if you want.
And please add some
more testing if you like!
Questions, comments,
concerns and criticisms always welcome,
John