On Jan 23, 6:42 pm, Karen Tracey <kmtra...@gmail.com> wrote: > On Fri, Jan 23, 2009 at 12:38 AM, Julien Phalip <jpha...@gmail.com> wrote: > > > Hi, > > > I just wanted to draw your attention to what appears to be a bug in > > Django: the 'tell()' proxy is missing from the Windows-specific > > implementation of TemporaryFile. This causes Django to crash when > > manipulating the uploaded file with PIL, for example. Ticket #9344 > > contains a patch to fix that. > > I probably looked at that ticket initially, at least briefly. Here's a peek > into what likely went on in my head: > > - I should look at that...though I don't know the code involved...nor much > about PIL...still, it's Windows-specific, I've got Windows boxes to test on, > many (most...all?) other committers don't. > - Hmm....crash when manipulating uploaded file with PIL...do I know offhand > how to recreate that...no....do I want to learn enough about PIL to dream up > how to recreate it...not really. > - Maybe the patch has a test? Oh, there are 2 patches...I wonder why? > They're identical...wha? Oh, the first had a spacing error. But regardless, > no test. > - Should there be a test? Is this something that can't be tested? Is that > why no test was provided? Is it blindingly obvious to anyone who knows the > first thing about PIL how to recreate this problem and that's why no > specifics on how to recreate were included? Dunno...this is too hard, let's > find something easier to look at. > > At this point I really should have noted in the ticket what stopped me from > doing anything with it, but I didn't. I'm bad that way, particularly when I > get to a point of thinking that maybe it's my own lack of knowledge that's > the problem. > > So, what that ticket was lacking for me to look at it more closely was > specific instructions as to how to recreate the problem so I could verify > the fix. Even better, a test integrated into the test suite, then it's > clear to anyone looking later on what exact problem was fixed, and there is > built-in protection against it breaking again. If it's not feasible for > some reason to add a test to the test suite then a note indicating why no > test is possible would help. > > Now, the fix may be trivial (and I'll agree it looks trivial), but I'm not > going to check in anything without testing it. Been there, done that, broke > things, try real hard not to do it any more. So I want to be able to see > the problem myself before the fix and verify the problem is gone after the > fix. > > > Now, I know that this is sort of an edge case, and I also know that > > there are more important and more urgent matters at this moment. But > > I'd be keen to hear what is the official (or tacit) policy for that > > kind of small bug reports. There probably are a few other tickets in > > that situation (#9404 is another example). So, what is the best way to > > go for people interested in having them checked in? Is it simply by > > bringing them up on this mailing list from time to time? If so, then I > > can try again after 1.1 lands. > > Best way to make sure "small" tickets do not get hung up on the way to > checkin is to make them dead easy, even for someone who may not be > intimately familiar with that area of the code, to understand the problem > and verify the fix. Include tests integrated into the Django test suite that > fail before the fix and pass afterward. If integrated tests aren't > possible, explain why the fix should be checked in even without tests, and > include manual recreation instructions so the person who is considering the > fix knows how to test it manually. > > Karen
Thank you Karen for this detailed answer. Your reasoning regarding this ticket does make a lot of sense. I totally agree with you that tests are highly important and that this ticket is lacking useful information for whoever is not familiar with that area of the code. If I recall, the reason I hadn't written tests for the patch was because of the way #7769 had been checked in shortly before 1.0's release. I had thought that, like #7769, the patch was "trivial" enough for not including tests. But again, as you said, the ticket was lacking information and I should have at least put a link to #7769 in the description. I've just done that. I'll think about writing tests but it seems a bit overkill in this case for something which looks like a small oversight. Thank you, Julien http://code.djangoproject.com/ticket/7769 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-developers?hl=en -~----------~----~----~----~------~----~------~--~---