aelkner | hm | 00:00 |
---|---|---|
aelkner | can you send me your diff? | 00:00 |
fsufitch | im still writing it, but it's something that occurred to me | 00:00 |
fsufitch | couldn't we use a traversal adapter? | 00:01 |
aelkner | i'm not sure what the problem is your trying to solve | 00:01 |
aelkner | why don't you write the code that creates the problem and send me the diff | 00:02 |
aelkner | then we'll have something concrete to look at together | 00:02 |
fsufitch | the problem is that when path/to/schoolyear/'current' is accessed, 'current' won't exist unless the adapter was called | 00:03 |
fsufitch | and since the traversal does not call the adapter, but instead just tries to access, that will fail | 00:03 |
fsufitch | hang on | 00:03 |
fsufitch | im still registering adapters | 00:03 |
aelkner | i think you are thinking ahead a bit | 00:04 |
aelkner | let | 00:04 |
aelkner | let's keep to the small task for now | 00:04 |
fsufitch | a *current* test is broken | 00:06 |
fsufitch | sending to you | 00:06 |
fsufitch | sent | 00:06 |
aelkner | i see where you are having a problem | 00:09 |
aelkner | you didn't want to move the creation logic our of getCourseInfoSchoolYear | 00:10 |
fsufitch | hmm okay | 00:10 |
fsufitch | though it would be nice if the creation logic could be abstracted out of there too | 00:10 |
aelkner | since you are guaranteeing that the containers get created, you don't need the tests in your oter adapters | 00:11 |
aelkner | don't worry about abstracting that out for now because it's a separate discussion | 00:11 |
aelkner | i don't want to get into that just now as i don't have the ideal answer | 00:12 |
aelkner | but using what we already have, you can just assume that the containers are there | 00:12 |
aelkner | another thing | 00:12 |
aelkner | sorry i didn't realize before | 00:12 |
fsufitch | no prob | 00:12 |
aelkner | it's better that the containers of ICurrentCourseInfo and IProposedCourseInfo | 00:13 |
aelkner | be ICurrentCourseInfoContainer and IProposedCourseInfoContainer | 00:13 |
aelkner | the use of schooyear in the name there would be an overuse | 00:14 |
aelkner | sorry for leading you down that path | 00:14 |
aelkner | but it's just a test replace at this point | 00:14 |
fsufitch | right | 00:14 |
fsufitch | okay | 00:14 |
fsufitch | woo, i figured out the regex to do it automatically :D | 00:19 |
fsufitch | was a nice exercise in regex | 00:19 |
fsufitch | aelkner: jelkner would like your opinion on the email he just sent out | 00:25 |
fsufitch | he's right her | 00:25 |
fsufitch | *here | 00:25 |
aelkner | checking | 00:29 |
aelkner | tell him he's an awesome email writer :) | 00:30 |
aelkner | th1a, ayt? | 00:30 |
fsufitch | aelkner: code done and test implemented | 00:35 |
fsufitch | ill send you the diff | 00:35 |
fsufitch | sent | 00:36 |
aelkner | checking | 00:45 |
aelkner | fsufitch, could you replace the current_courses = and proposed_courses= to use the adapters | 00:47 |
aelkner | and change the test verbage to go with the change? | 00:47 |
fsufitch | okay | 00:47 |
aelkner | we should be loyal to our adapters since they serve us so well | 00:48 |
fsufitch | :) | 00:50 |
aelkner | btw, you don't need the pass statement when you have a dic string, so you can get rid of that in interface.py | 00:50 |
aelkner | doc string | 00:50 |
fsufitch | ok | 00:51 |
aelkner | i see you got sick of adding imports for the adapters :) | 00:54 |
fsufitch | yes :-P | 00:54 |
aelkner | that was a very reasonable dicision on your part | 00:54 |
fsufitch | line efficiency! | 00:54 |
aelkner | it's not an exact science | 00:54 |
aelkner | sometimes explicitly importing method or classes works best | 00:54 |
aelkner | it's more desciptive at the top that way | 00:55 |
aelkner | but other times, i like your approach | 00:55 |
aelkner | you may have seen the same being done in the intervention package | 00:55 |
aelkner | not always, but in some files | 00:55 |
fsufitch | mhm | 00:55 |
aelkner | it's like when the number of imports coming from one file gets SO large | 00:56 |
aelkner | it's just enough already | 00:56 |
aelkner | so it's a jusgement call | 00:56 |
fsufitch | alright, done | 00:56 |
fsufitch | ill send you diff | 00:56 |
fsufitch | sent | 00:57 |
aelkner | you didn't get rid of the pass statements | 01:03 |
aelkner | also, make sure the contains and containers directives are set up right | 01:04 |
aelkner | you can also add unit tests that show that you can't add a CurrentCourseInfo object | 01:05 |
fsufitch | oh those, woops | 01:05 |
aelkner | to a ProposedCourseInfoContainer | 01:05 |
aelkner | you should get a program exception in that case, and you can test thtat | 01:05 |
aelkner | that | 01:05 |
fsufitch | ah, those objects don't exist yet | 01:05 |
fsufitch | gotta make them | 01:06 |
aelkner | right, more to add to tests than anything else | 01:06 |
aelkner | but you can create CurrentCourseInfo object with the minimum filled in to do the containment test | 01:06 |
fsufitch | yup | 01:08 |
fsufitch | hmm, aelkner, i'm having trouble making the test fail if i'm just adding a regular CourseInfo | 01:28 |
aelkner | don't worry about normal CourseInfo | 01:29 |
fsufitch | okay | 01:29 |
aelkner | i was going to say you could also remove the verifyObject tests for the base interface | 01:29 |
aelkner | only the more specific current vrs. proposed matter for now | 01:30 |
aelkner | when we need functionality that applies to the base, we can add the handling/tests for it then | 01:31 |
fsufitch | ok | 01:33 |
fsufitch | um, point of note: "credits" is a python keyword | 01:33 |
fsufitch | we are using it as a variable | 01:33 |
aelkner | that won't be a problem | 01:34 |
aelkner | id is a keyword, too, but people use that all the time | 01:34 |
fsufitch | ok | 01:34 |
aelkner | it's not a collision in the namespace because one puts obj before attr in obj.attr | 01:35 |
fsufitch | this test isn't failing, and it should be | 01:38 |
fsufitch | i can add CurrentCourseInfo to ProposedCourseInfoContainer, and I can't figure out why | 01:39 |
aelkner | send the diff so that i can be a second pair of eyes | 01:39 |
fsufitch | ok | 01:39 |
fsufitch | aelkner: it's been sent | 01:44 |
aelkner | yeah, i see you're making the containment test, so the question is: | 01:45 |
aelkner | what happens in the btree container when something is added | 01:45 |
aelkner | so zope/container/btree.py has BtreeContainer in it | 01:46 |
fsufitch | i'm looking, but the code is a bit esoteric | 01:47 |
aelkner | __setitem__ is what gets called by the dictionary access your test does | 01:47 |
fsufitch | it doesn't appear the BTree actually does testing for this | 01:48 |
fsufitch | *checking | 01:48 |
aelkner | i'm going to grep for Exception in the whole of eggs, and filter for container or btree | 01:49 |
fsufitch | ok | 01:49 |
fsufitch | aelkner: any luck? | 02:00 |
aelkner | fsufitch, ok, i'm thinking that we need to get your commit done with a note about what the test SHOULD do | 02:00 |
aelkner | even though the test will not do it | 02:00 |
aelkner | make sense? | 02:00 |
fsufitch | yup | 02:01 |
fsufitch | im sort of out of time here anyway... | 02:01 |
aelkner | it's not the best, but yes, time constraints | 02:01 |
aelkner | just as long as you pick up there immediately next time | 02:01 |
fsufitch | yup | 02:01 |
aelkner | i'll look into it and send you an email | 02:01 |
fsufitch | okay :) | 02:02 |
aelkner | otherwise, everything looks good for doing your commit | 02:04 |
fsufitch | committed and pushed | 02:05 |
aelkner | cool | 02:05 |
aelkner | another good day | 02:06 |
aelkner | so, next time, next wed? | 02:06 |
fsufitch | yup! | 02:06 |
fsufitch | yay productivity! | 02:07 |
aelkner | ok, good working with ya | 02:07 |
aelkner | yes, indeed | 02:07 |
fsufitch | see ya | 02:07 |
aelkner | cya | 02:07 |
*** fsufitch has left #schooltool | 02:12 | |
*** alga has quit IRC | 02:44 | |
*** fsufitch has joined #schooltool | 07:22 | |
*** th1a has quit IRC | 08:16 | |
*** yvl has joined #schooltool | 09:00 | |
*** alga has joined #schooltool | 09:37 | |
*** menesis has joined #schooltool | 12:13 | |
*** menesis has quit IRC | 13:37 | |
*** menesis has joined #schooltool | 15:15 | |
*** menesis has quit IRC | 15:25 | |
*** fsufitch has quit IRC | 16:03 | |
*** th1a has joined #schooltool | 16:08 | |
*** fsufitch has joined #schooltool | 16:57 | |
*** replaceafill has joined #schooltool | 17:22 | |
*** alga has quit IRC | 18:47 | |
*** fsufitch has quit IRC | 19:31 | |
replaceafill | th1a, can i have your opinion on this: http://www.useit.com/alertbox/mega-dropdown-menus.html | 20:13 |
replaceafill | i'd like to get rid of the manage menu in cambodia | 20:13 |
*** alga has joined #schooltool | 20:29 | |
*** replaceafill has quit IRC | 20:34 | |
* th1a returns from lunch. | 20:52 | |
*** menesis has joined #schooltool | 21:41 | |
*** fsufitch has joined #schooltool | 22:02 | |
*** fsufitch has quit IRC | 23:12 | |
*** menesis has quit IRC | 23:27 | |
*** menesis has joined #schooltool | 23:56 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!