IRC log of #schooltool for Monday, 2011-02-28

*** aks_ has joined #schooltool05:19
*** aks_ has joined #schooltool05:20
*** aks_ is now known as aks05:20
*** menesis has quit IRC11:44
*** menesis has joined #schooltool11:49
*** menesis has quit IRC11:56
*** alga has joined #schooltool12:05
*** aks has quit IRC13:22
*** ignas_ has joined #schooltool13:35
*** jelkner has joined #schooltool15:10
*** th1a has joined #schooltool15:35
*** menesis has joined #schooltool15:39
*** menesis has quit IRC15:51
*** menesis has joined #schooltool15:56
th1amenesis, yvl:  I need copies of your airfare receipts and a completed expense form.16:11
th1aI sent an email to alga about it on Friday.16:12
*** menesis has quit IRC16:18
algath1a: our office admin is sick, I'll take care of that today16:19
th1aThanks alga.16:22
*** menesis has joined #schooltool16:23
algath1a: do you want a signed scan or an electronic copy?16:25
*** replaceafill has joined #schooltool16:25
th1aElectronic copy is fine.16:25
algaalso, who is the employee?  POV or Justas?16:25
th1aJust POV is fine.16:25
th1aHi menesis, yvl, aelkner, replaceafill.16:30
yvlhi guys!16:30
replaceafillgood morning/afternoon16:30
th1aLet's see... first off, sorry the post-trip invoices have taken too long to handle.16:32
th1aI should have taken into account the brevity of the month.16:32
th1aSo the good news is that if you get me your February invoices on Wednesday you can get paid twice in a week.16:32
th1aWhich I as well would appreciate.16:33
* replaceafill will send his today16:33
aelknerbtw, i just thought about it, but is it going to be ok that we included portugal expenses on jan invoice?16:33
th1aYes, that is fine.16:33
th1aThat was the whole idea.16:33
th1aI mean, I'm the one carrying most of it on my credit card, so I'm the most motivated to get it all taken care of.16:34
aelkneri'll get you my feb invoice later today, too16:35
th1aOK, menesis, any new packaging news?16:35
menesisth1a: since Thursday, none16:36
menesisschooltool packages are still waiting in the NEW queue.16:36
th1aOK.  Let me know when we should start pinging people about that.16:37
th1aWhat's next for you?16:38
menesisI still have branches to merge16:39
menesisreplaceafill's gradebook branch16:40
menesisand translations16:40
th1aSounds good.  Good work getting the packages in!16:41
th1ayvl:  I guess you and alga worked out a timeline for finishing timetables?16:42
yvlyes, th1a16:42
yvlalga sent you an email, IIRc16:42
th1aYes, but he didn't send me the plan itself, I don't think.16:42
yvlhmm, right16:43
yvlthe punchcards are hanging on my board16:43
yvlI can write them down if you want?16:43
yvlsilence means yes :)16:44
yvlfor now, all goes according to plan16:44
th1aGood.  Anything else?16:44
yvlI won't have much to report for few weeks :)16:45
yvljust the progress :)16:45
th1aThere is nothing wrong with that.16:46
th1aThanks yvl.16:46
replaceafilllast week i worked on the forms cambodia sent16:46
replaceafilli wrote down how i'd implement all those fields, but i got tired with the first form16:47
replaceafilli still have to review the second one16:47
replaceafill(there's two forms: 1 for primary school and 1 for secondary)16:47
replaceafillso, on tuesday i jumped to the gradebook, again changes i need for cambodia16:48
replaceafill1, the score refactoring and 2, the final annual grade calculation16:48
replaceafilland about the score refactoring i sent an email last night to the dev list16:48
replaceafilli'll wait for yvl's reply :)16:49
yvlon it, replaceafill16:49
yvloh, I can say it here16:49
yvlgo with "no evolution"16:49
yvlalso, if it makes sense16:49
yvlpostpone splitting the class16:50
yvlScore or Evaluation16:50
yvlI don't remember which one16:50
*** alga has quit IRC16:50
yvlif you don't need the split explicitly16:50
yvlmaybe it's less hassle not to refactor it in this run16:50
replaceafilli guess you split it for getting gradebook averages16:51
yvland I'm not sure if it was not persistent16:51
aelknerwhat was the use case that started you down this road, why did it crash?16:52
yvlmaybe reconstruct picks objects __new__ over Persistent's16:52
yvlmaybe it's enough to flip the order of inheritence in the child class16:52
aelknerwas there a new zope egg that caused the problem?16:52
replaceafillaelkner, an existing class inherits now from Persistent16:53
yvloh, and cheers on the format gradebook for tests thing!16:53
yvlpretty :)16:53
replaceafillyvl, it makes reading the ftests so easy :)16:53
replaceafilland writing them too!16:53
aelkneri'm not aware of why we are refactoring this, can someone clue me in?16:54
replaceafillso, i'll try merging the two classes again16:54
yvlif you really need them separate, I can look into it16:54
replaceafillaelkner, it will be easier to extend the gradebook with "weird" calculations16:54
yvljust if you chose this for the sake of code correctness, I'd prefer postponing this change16:55
replaceafillyvl, actually, i just re-took your old refactoring approach :)16:55
yvloh :)))16:55
replaceafillyvl, could i get away with just not subclassing Persistent?16:56
yvlnot sure about that16:56
replaceafillah ok16:56
yvlprobably yes16:56
yvlunpickle the objects and look if they have persistance info16:57
replaceafillyvl, thanks i'll try that this week16:57
replaceafillth1a, i also got my way in cambodia mixing docs + ftests16:58
replaceafilli just configured sphinx the right way16:58
replaceafilland as menesis suggested i hide the ftest code blocks, really nice :)16:58
th1aI figured it just took the right Sphinx magic.16:58
th1aWhere can I see that?16:59
replaceafilli'll push the changes to the cambodia branch16:59
replaceafilli was just evaluating the two recipes for producing sphinx docs16:59
menesisreplaceafill: I get one warning when mixing sphinx with ftest16:59
menesisUnknown directive type "toctree"17:00
menesishave you seen something like that?17:00
th1aFrom Sphinx or the test runner?17:01
replaceafilli thought toctree was "core" in sphinx17:01
replaceafillso you cannot blame a missing plugin, right?17:01
menesissphinx generates the page fine17:02
menesisit's the testrunner that spews warning17:02
replaceafillmenesis, do you know if it's possible to generate the docs in pdf using that recipe (the one used in schooltool trunk)?17:03
replaceafillit's possible with the collective... recipe17:03
replaceafilli just dont want to use many different packages than trunk17:03
replaceafillschooltool trunk uses: z3c.recipe.sphinxdoc17:04
replaceafilland cambodia is using: collective.recipe.sphinxbuilder/17:04
replaceafilli can produce pdf with the second one, couldnt find a way with the first17:04
replaceafill(me wants to be able to send the pdf to cambodia people)17:05
replaceafillmoving on with my report...17:05
replaceafillth1a, i also reorganized my papercuts notes17:05
replaceafillwhich ones i need for cambodia that i can work next17:05
replaceafillalso tested the approach suggested by menesis on using views in testing layers to enabled/disable components17:06
replaceafillworks great :)17:06
th1aAh, good.17:06
replaceafilland finally i chatted a little with aelkner about coverage reports, testing approaches, life, etc :D17:07
yvlI saw that ;)17:07
th1areplaceafill:  We need to set a bonus target for Cambodia tasks.17:07
replaceafillth1a, ah!17:07
th1aSo send me a list of tasks and a target date.17:07
replaceafillth1a, ok17:07
th1aA realistic target date.17:08
replaceafillyvl, any comment on the testing approach discussion (me and aelkner)17:08
yvlok :)17:08
yvlthe way I see it17:08
replaceafillam i a bad person for not caring about the mergers? :P17:09
yvlplugins can add, modify and remove links17:09
yvlalso, when you test a plugin (and in this case, you should consider all ST modules as separate plugins)17:09
yvlyou are actually testing if it works correctly with the configuration it depends on17:09
yvlthat is especially true for functional testing17:10
yvlso I vote for more brittle tests17:10
yvlimagine you have some links17:10
yvland you write a functional test to click it17:10
yvland *somebody* adds another link with similar text just above it17:11
yvlnow - your test is broken17:11
yvland it may not be obvious why17:11
yvlbut if you have a test that shows the "context" - other links17:11
yvlyou'll see that there's a new link there17:11
yvland that's why your test breaks later on17:11
yvlthen again!17:12
yvlAlan had a strong point there also17:12
replaceafillwhy i didnt like in aelkner's approach is that, that kind of test will still pass even if i add new links in the PLUGIN17:12
aelknerhey, i can get rid of the tests altogether17:12
yvldownside - tests are more brittle17:13
aelknerin a way, it tests something that core already tested wth the mock reportLinks in ftesting.zcml17:13
yvlbut in this case, you assume that the core works the way it works17:13
yvlwhat if somebody refactored it?17:13
yvlor changed the behaviour ever so slightly17:14
yvlif the test brakes early - you know that the gradebook version is not compatible with xx.xx version of the core17:14
replaceafillfail fast!17:14
yvlbut please, don't take this as written in stone!17:15
aelknerbut in the case of each time a new report is added to core of lyceum journal, having to change gradebook tests!17:15
* replaceafill writes it in stone!!!17:15
*** ignas_ has quit IRC17:15
yvlyes, aelkner17:15
yvlif it is really unimportant of what other reports are there17:15
*** ignas has joined #schooltool17:15
yvland you tested the order in one place at least17:16
yvlas in - in the beginning of some main test17:16
yvllike README.txt :)17:16
yvlthere is no need to repeat all the links in every other test17:16
yvland a small counter-argument :)17:17
yvllyceum.journal should be merged with gradebook anyway :)17:17
replaceafilland then gradebook to core :P17:17
replaceafill(kidding yvl)17:17
aelkneri always felt that way17:17
aelkneranyway, what is the conclusion?17:18
aelknermake tests brittle, and let the mergers fix them when they brake?17:18
replaceafilldont care about the mergers!!!17:18
yvlmake one test brittle17:18
aelkneri was asking yvl :)17:18
replaceafillaelkner, :'''(17:18
aelkneri have tests for each context17:19
aelknerso there isn'[t jsut on tests17:19
* th1a peeks back in.17:19
aelknerschoolyear, term, section, etc., reports17:19
aelknerthere isn't ust one17:19
th1aI'd just note that in the future all reports might want to be in separate packages.17:19
yvlI see17:19
yvl(I see, aelkner)17:20
yvlI vote to make them brittle for now17:20
aelknerok, as long as you invite the hassle, i won't object :)17:21
yvlyou can have one test to overview what reports schooltool.gradebook adds17:21
yvlgoing to terms, sections, etc.17:21
aelknerhow would that be done?17:21
aelknerthe views are defined in schooltool.report17:21
aelknerthey don't know where the reportLinks were registered17:22
yvlbut you do not test that in schooltool.report17:22
yvlyou test that in schooltool.gradebook17:22
aelkneri test the mock reportLinks in schooltool.report17:22
yvland that is good17:22
aelknerthat's why i suggested not testing the gradebook reportLinks at all17:22
yvlyou demonstrate, that people can add links17:23
yvlbut in gradebook17:23
yvlyou want to show what reports become available17:23
replaceafillaelkner, it's gradebook functionality, right?17:23
yvlwhen you use gradebook + all dependencies17:23
aelknerintegration testing, right?17:23
yvlin lyceum journal, for example:17:24
yvlif there are links to reports that are implemented and declared as reportLinks in schooltool.lyceum.journal17:24
yvlyou should show that if you use ST core + journal, you can see all these reports17:25
yvlthen in gradebook,17:25
yvlwhich adds more reports17:25
yvlyou should show (just in one test)17:25
yvlthe total of available reports17:25
aelknerok, i'll refactor them to be brittle and assume that you guys won't get confused17:25
yvl(because gradebook depends on journal)17:25
aelknerlet's move on17:25
yvlthanks :)17:25
replaceafillth1a, the last point of my notes17:26
replaceafillnext week i'm going to pycon :)17:26
replaceafillbut i'll just take one day off (friday)17:26
replaceafillamerican airlines airplanes have power outlets ;)17:26
replaceafillso i'll be able to work while i travel17:26
replaceafillth1a, that's it from me17:27
th1aThanks replaceafill.17:28
th1aSo yes, send me your Cambodia plan.17:28
replaceafillth1a, will do17:28
aelknerok, so besides the whole schooltool.gradebook reportLinks testing issue, i adressed the url adpaters problem17:28
aelkneryvl, sorry for the delay getting you the good news that your suggestion worked17:29
aelknerso the reference view works now17:29
aelknerthen i turned my attention to schooltool.intervention17:29
aelkneri moved the ftests to a new ftests directory in browser17:30
aelknerand added a new test for the single-digit user id bug that i fixed17:30
aelknerreplaceafill helped me get started with coverage tests, thanks for that17:30
aelkneri was wondering about what level of coverage i'm trying to acheive17:31
replaceafillaelkner, the closest to 100% as you can?17:31
th1aI'm looking for level "B" coverage.17:31
aelkneri had assumed that the gradebook had 100% test coverage at this point, but i couldn't find a branch that does so17:31
* th1a does not know.17:32
replaceafillaelkner, as i told you, you cannot ftest generations for example17:32
aelkneri was going to say...17:32
aelknerin schooltool.intervention i have a lot a fail-safe points that handle cases where data has been corrupted17:33
aelknerbut i can't make the data corrupt in ftests17:33
aelknerbecause the views are supposed to behave17:34
th1aWhat kind of corruption are you referring to?17:34
yvlusers clicking stuff in a way Alan did not expect mostly17:35
aelknerfor instance, a InterventionStudent object has a student property that returns the actual basicperson object17:35
* replaceafill personally doesnt like fail-safe points in code17:35
* yvl too, replaceafill ;)17:35
yvlno offence, aelkner !17:35
replaceafillagain, fail fast17:35
replaceafillthat doesnt mean, throwing exceptions at users either ;)17:36
aelknerthat's what the fail-safes are trying to avoid17:36
aelknerthrowing exceptions at users17:36
menesisincorrect data handling should be tested in unit tests, because there you can throw anything broken at your functions17:36
menesisbut that cannot be tested functionally because such breakages cannot occur17:37
replaceafilland sometimes you end with "impossible to get to" fail-safe points, according to your current implementation17:38
aelkneranyway, i thought there was a standard that i was being asked to acheive, but looking at the gradebook, i'm not so sure17:38
menesisso why write checks for impossible situations..17:38
aelknerwhat was the overall goal of the gradebook coverage refactoring, and how do you know you acheived it?17:38
replaceafillaelkner, i compare17:38
replaceafillthat's why i keep throwing screenshots at you17:39
aelkneryou compare what?17:39
replaceafillbefore the refactoring, after the refactoring17:39
aelkneri was asking about the coverage report17:39
replaceafillfrom ->
replaceafillis it the second BETTER than the first one?17:40
replaceafillit's not PERFECT ;)17:40
aelknerbetter is not a milestone, so th1a, what is the sign of being done?17:40
menesiscp coverage coverage.old ; make coverage ; bin/coveragediff coverage.old coverage17:40
aelkneri can decide it's better anytime i want17:40
aelknerthat's not a standard, nor anything th1a can sign off on17:41
replaceafillaelkner, you cant?17:41
replaceafilli thought you could ;)17:41
yvlhmm, th1a can assign replaceafill to decide that ;)))17:41
replaceafilli want that VP please :D17:41
yvlall important places should be covered17:41
aelknerwatever that means17:41
yvl(at least all places I consider important enough) :)))17:42
yvlif you calculate stuff - unit tests17:42
aelkneryou guys are having fun, but i prefer concrete suggestions17:42
th1aI'm in favor of getting the coverage scores as close to 100% as is possible.17:42
yvlif you just format data for presentation - unit tests preferred, functional ok17:42
aelknersay that again please17:43
th1aI am also in favor of everyone at this point obtaining a QA hat and writing tests TRYING TO BREAK the application.17:43
replaceafillaelkner, will you ask "is it close to 100% a milestone?"17:44
th1aThat is, what if I delete the relevant terms in the middle of this.17:44
th1aWhat if I try to do this with no years.17:44
yvlwhat if user's session expires ;)17:44
aelkner'close' is not a quantity17:44
th1aWhat if I try to do this and delete the year and recreate one with the same ID,17:44
replaceafillyvl, damn! sessions!!!17:44
yvlaelkner - you will not get detailed pointers, I'm afraid :(17:44
yvljust because there are no strict rules for this17:45
th1aIf you want I can make it 100% for you, aelkner.17:45
aelkneryeah, that helps, NOT17:45
yvlmy point - 100% is not enough in some cases17:45
replaceafillright, coverage is not enough17:45
th1aIn theory you should get the bonus a year later after no bugs have been reported.17:45
aelknertrue, the single-digit user id problem, for instance17:45
replaceafillth1a, :D17:46
aelknerth1a, whatever17:46
yvlaelkner, probably you will have to use your better judgement for this17:46
th1aaelkner, this attitude is not endearing.17:46
yvland test your position against some other developer17:46
yvlas in - "I think it's covered quite well"17:47
replaceafillthat's my approach with the gradebook17:47
yvl"What do you guys think?  Did I miss some cases?"17:47
replaceafillnot numbers17:47
yvland you know gradebook better than anyone, aelkner17:47
th1aI do.17:47
aelknerfine, i'll just wing it as everyone else seems to be17:48
aelkneri won't complain it again17:48
aelknerabout it17:48
yvlsorry, aelkner17:48
yvlI know you like clear decisions17:48
th1aYou need to do a better job QA-ing your code.17:48
aelknerfor instance, i'll leave the fail-safes uncovered17:48
aelknerbecause clearly there is no way to test them functionall17:49
yvlyou can unit test them at least17:49
yvlso you know that this code at least works17:49
yvl(you don't want a typo exploding when user encounters the fail-safe)17:49
aelkneri can certainly disable the email utility finctionally17:49
yvlumm, there you should just...17:49
aelkneryes, 100% unit test coverage is certainly acheivable17:50
yvlI think replaceafill did a stub email utility that just stores "sent" emails?17:50
th1aThe fact of the matter is that SchoolTool is in a different place now than two years ago.17:50
th1aWe're not in "We need to get functionality out soon or nobody will ever use SchoolTool." anymore.17:51
th1aNow we need to pay down some of that debt.17:51
th1aWrite some tests.17:51
th1aMake sure SchoolTool isn't going to blow up in people's faces.17:51
th1aThat's what you're being paid to do now.17:52
replaceafillschooltool/src/schooltool/email/browser/ftests/ has stubs for email functionality17:52
yvlbtw, aelkner - if some place is hard to test, please email me17:52
replaceafilland please cc me :)17:53
yvlit might be the case that we did not think about17:53
yvl(but we should!)17:53
aelknerfor instance, lots of code fails safe if the intervention student's id has no corresponding person object17:53
aelknerbut that code would not be reached as long as the subscriber for removing intervention students upon student removal is in place17:54
aelknerso i'll just leave those fail-safes as uncovered code17:54
replaceafill-1, but thats just me :)17:54
yvlI feel your pain, replaceafill17:55
th1atbh, if something like that can't be tested, it probably shouldn't be there.17:55
yvlin my opinion, we should have stuff that ensures such integrity in core17:55
aelkneror i can remove the fail-safes altogether then17:55
yvlnot in every single page in interventions17:55
replaceafillth1a, or at least be reviewed17:55
yvlth1a, you're right17:56
yvlbut it's a monument of FIXME :)17:56
th1aI don't know what kind of things all these fail-safes do.17:56
yvlas long as they're there we all know it needs to be fixed17:56
yvland that integrity code should be written17:56
yvlbut in a single place, not in multiple17:57
yvlanyway, I'm rambling17:57
th1aShouldn't the unit test be pretty trivial?17:57
aelkneryeah, no problem17:57
yvlcool :)17:58
* th1a doesn't have his sarcasm detector turned high enough.17:58
aelkneranother thing17:58
aelkneri can give the code the kind of love yvl yearns for17:58
aelknerreplacing provideBy calls with better adapter(context, None) logic17:58
aelknerusing tests for None instead of providedBy17:59
aelknerit's the same difference to me, but yvl would like it better17:59
yvlyes I would - it's not the same for me18:00
replaceafillgetting rid of providedBy checks is in my todo list for the gradebook18:00
th1aThe theme of this week's meeting is I need you guys to figure out what you're doing for the next month or so so I can give you a bonus.18:00
th1aSo basically, aelkner, I need you to make a proposal for how you're going to handle this.18:01
aelknercan you change the mm doc to not say 'full test cverage' in intervention since we have no such standard?18:01
*** alga has joined #schooltool18:01
yvlchange to "very decent test coverage"18:01
th1aWhatever floats your boat.18:02
replaceafillfull is the goal!18:02
yvlwell, ideally - it's the minimum requirement18:03
yvlfull coverage ;)18:03
th1aThe more important stuff is what lies beyond.18:03
replaceafillyvl, and i want them all to be unit, so they run fast as hell :D18:03
th1aOK. Wrapping up.18:03
th1aIn other news, my PandaBoard has shipped.18:04
th1aHave a great week, gentlemen!18:04
th1aI look forward to your March plans.18:04
* th1a drops the bag of gravel.18:04
replaceafillthanks everybody18:04
yvlgreat week to you all :)18:05
aelknergreat week everyone18:05
algath1a: is the expense sheet OK?19:03
*** ignas has quit IRC19:23
*** menesis has quit IRC19:49
algaSchooltool is in Natty Universe!  Hurraaaah!20:27
replaceafillnice! :)20:27
replaceafillth1a, zyt?20:35
replaceafilli still have to add all the tests, but you get the idea :)20:36
th1aI'm not sure I get the idea.20:37
th1aSo this if from the test readme's instead of a separate document?20:37
replaceafillah! those are functional tests20:37
th1aIs this user or developer documentation?20:38
th1aAre the screenshots automatically generated?20:38
replaceafilluser, the page footnotes were supposed for developers20:38
replaceafillbut i'm going to move all those tips to a dev section or something20:38
replaceafilllike the core book20:38
*** alga has quit IRC20:39
replaceafillth1a, no, the screenshots are not automatically... yet20:39
replaceafillbut i was able to do it with selenium on our way back20:39
th1aI'm not sure this doesn't just make my job more complicated.20:39
replaceafillwell it's not for you ;)20:39
replaceafilli write the ftests for cambodia :)20:39
replaceafillit's just an experiment i think20:40
replaceafillit's definitely more complicated to write all the sphinx stuff20:40
replaceafillhide blocks etc20:40
th1aI'd like to see an auto-generated book just made from the tests, but primarily as a developer reference.20:41
replaceafillme too20:42
*** menesis has joined #schooltool20:58
*** jelkner has quit IRC22:10
*** alga has joined #schooltool22:35

Generated by 2.15.1 by Marius Gedminas - find it at!