*** tpb has joined #timvideos | 00:00 | |
CarlFK | sent.. | 00:23 |
---|---|---|
CarlFK | few = 30 i guess :) | 00:24 |
parx | the first line... haha | 00:25 |
parx | See the event link I pasted above? 18 rsvps | 00:29 |
parx | Account for inevitable no-shows, you'll have a dozen. | 00:29 |
CarlFK | yeah | 00:30 |
CarlFK | I 1/2 hope he calls it off | 00:30 |
parx | I think it won't be worth it for you and I think it will be bewildering for his attendees. It's Chicago Developers Happy Hour. | 00:31 |
parx | That one guys comments says it all. | 00:31 |
CarlFK | did you see the "wished we had" thing ? | 00:31 |
parx | yeah | 00:31 |
parx | This is the feedback he's referring to http://www.meetup.com/chicagodev/events/118039062/ | 00:32 |
tpb | <http://ln-s.net/-KFU> (at www.meetup.com) | 00:32 |
parx | "this was the best meetup I have ever been to in my life. " | 00:32 |
parx | But back to the upcoming event listing, one guys commented "was really only interested in the drinking of beer and hanging with like minded people. I'll wait for another one like that." | 00:34 |
parx | *guy | 00:34 |
CarlFK | yeah - I am leaving it up to Chad - I like the "do you want to use up your freebee on this?" | 00:36 |
parx | yeah, I like that you threw that in there | 00:37 |
parx | A freebie of value, not to be squandered ; ) | 00:38 |
CarlFK | yeah | 00:39 |
*** mithro has quit IRC | 00:40 | |
parx | I was surprised VentureShot was hosting and it was free. Most of the meetups at VentureShot are ticketed $30, $20, $10. | 00:43 |
parx | I'm still leaning toward the other meetup tomorrow. Video/discussion: http://www.pbs.org/independentlens/revisionaries/ | 01:05 |
tpb | <http://ln-s.net/-KFn> (at www.pbs.org) | 01:05 |
CarlFK | yeah - no prob - I can do the Dev thing alone - it's nice having a 2nd person and you might find stuff entertaining | 01:07 |
Sewar | lol, Google is getting lower in standards just to raise numbers of + victims | 01:13 |
Sewar | You can make Hangout video call, but need + account to receive one! | 01:14 |
parx | ugh... I hate being forced to make more accounts | 01:15 |
CarlFK | how would you receive without an account ? | 01:16 |
CarlFK | like who is the caller calling ? | 01:17 |
*** parx1 has joined #timvideos | 01:17 | |
parx1 | boo... browser crashed. Did I miss something? | 01:17 |
CarlFK | na | 01:17 |
CarlFK | oh, +.. as in g+. not just a google/gmail account ? | 01:17 |
parx1 | yeah google plus | 01:18 |
CarlFK | meh.. still low on my list of things I care about | 01:18 |
Sewar | yeah, you get invite, if you accept it you get redirected to g+ joining page | 01:18 |
parx1 | Sewar, I deleted my google + account some time ago (what was the point of it?), but then I swapped from Skype to Google for chats. | 01:18 |
parx1 | I was forced to make a new Google Plus account. | 01:18 |
Sewar | that sucks | 01:19 |
*** parx has quit IRC | 01:19 | |
Sewar | they just want to collect more data ... | 01:20 |
*** parx1 is now known as parx | 01:20 | |
CarlFK | I bet they want to do more than just that :) | 01:21 |
Sewar | yeah ;) | 01:21 |
Sewar | I was doing test with 2 accounts on chrome and firefox, not sure if that has anything to do ... | 01:21 |
Sewar | testing from chrome to tablet works fine | 01:22 |
Sewar | maybe they only force g+ in gmail right now | 01:22 |
parx | When video chat problems comes up as a subject, iiie alludes to simple webrtc as the solution. Fix all the things already, iiie! | 01:22 |
* iiie really wishes he had the time | 01:23 | |
parx | Sewar are you taking a summer course? | 01:32 |
parx | Has it started? | 01:32 |
Sewar | It will finish next week. | 01:33 |
parx | That's good. What subject? | 01:33 |
Sewar | Calculus I | 01:33 |
parx | Is there another course after that during the summer? | 01:34 |
Sewar | I won't register another classes to focus on the project. | 01:35 |
parx | Good. I've been wondering why you haven't been keeping up with your daily blog posts. | 01:37 |
Sewar | yeah | 01:38 |
Sewar | do you know who's Rachel? | 01:38 |
parx | yeah, but let's stay on track here | 01:39 |
parx | what's going on? | 01:39 |
Sewar | "what's going on?" about? | 01:39 |
parx | why haven't you been posting daily? | 01:40 |
Sewar | Class and homeworks, and to post finished tasks when they're done. | 01:40 |
mithro-work | morning | 01:41 |
Sewar | morning mithro-work | 01:41 |
parx | hiya mithro | 01:42 |
Sewar | I will try to improve in that regard parx | 01:42 |
parx | Sewar, Great! You shouldn't be waiting to finish a task before you post. Let us know that you are toiling away, and what you're working on. | 01:44 |
Sewar | ok :) | 01:44 |
CarlFK | Sewar: if you are stuck on something for more than a day, posting about it is a good way to get un-stuck | 01:46 |
parx | Otherwise I might make the mistake of thinking you're not working at all, and I very much want to give credit where credit is due. More importantly, your mentors need to see when you get stuck. | 01:46 |
CarlFK | often just working though the details of what to write will bring the problem into view | 01:46 |
CarlFK | and yeah, we need to know you are doing stuff | 01:47 |
Sewar | sure, good thoughts to keep in mind | 01:48 |
parx | oh great tip about writing, CarlFK | 01:48 |
parx | Sewar you've done a good job of being present on this channel and accessible : ) | 01:49 |
parx | you've been more visible than the other students, I think | 01:49 |
Sewar | timezone and znc helps :p | 01:50 |
parx | haha | 01:50 |
Sewar | thanks parx and CarlFK | 01:52 |
parx | Thanks to you too. | 01:52 |
Sewar | If you have time, take a look at https://github.com/sewar/edid_db_website and tell me if I'm doing something the wrong way. | 01:57 |
tpb | Title: sewar/edid_db_website ยท GitHub (at github.com) | 01:57 |
parx | Sewar, while you are at the top of the class in attendance, you should know that another student is currently beating you in the corny joke category. | 01:57 |
Sewar | yeah, I always blame my English for that! | 01:58 |
parx | no excuse! | 01:58 |
Sewar | Did I miss any earlier? | 01:58 |
parx | (the other student is not a native english speaker either, I don't think) | 01:59 |
parx | not today | 01:59 |
* Sewar looks for class on corny jokes | 02:00 | |
parx | :d | 02:00 |
parx | I suppose memes are acceptable too | 02:00 |
CarlFK | Sewar: can you add this to the bottom of your settings.py | 02:00 |
CarlFK | try: from local_settingsimport * | 02:00 |
CarlFK | except ImportError: pass | 02:00 |
CarlFK | https://github.com/CarlFK/veyepar/blob/master/dj/dj/settings.py#L135 like that | 02:01 |
tpb | <http://ln-s.net/-KGN> (at github.com) | 02:01 |
CarlFK | it will let me override your db = mysql, so I can use sqlite to do testing | 02:02 |
Sewar | CarlFK: done | 02:04 |
* Sewar is lost trying to understand parx hints | 02:05 | |
parx | Sorry, do you know what a meme is? | 02:06 |
Sewar | yeah | 02:07 |
parx | I was kidding about you using a quickmeme instead of a corny joke to entertain us admin & mentors. | 02:08 |
*** shenki has quit IRC | 02:08 | |
Sewar | oh, you refer to game of thrones's brace yourselfs meme? | 02:08 |
parx | lol | 02:08 |
parx | exactly | 02:08 |
Sewar | lol | 02:09 |
* parx shamefully admits it, "My name is parx and I like memes." | 02:10 | |
*** shenki has joined #timvideos | 02:10 | |
Sewar | no shame in that! | 02:10 |
Sewar | that reminds me, I still haven't seen last 2 of GoT, heard that episode 9 was epic | 02:10 |
parx | afraid to say anything and spoil it for you | 02:13 |
Sewar | yes please, no spoilers ;) | 02:15 |
*** hyades has joined #timvideos | 04:32 | |
*** iiie has quit IRC | 04:34 | |
hyades | mithro: what is the correct method you guys use for reverting back to a commit. | 04:58 |
hyades | i tried out something yesterday, but i ended up loosing some commits | 04:58 |
CarlFK | loosing some commits? | 05:01 |
CarlFK | from what I hear, it is hard to destroy history in git | 05:01 |
hyades | https://github.com/hyades/gst-switch/commits/python-api | 05:02 |
tpb | <http://ln-s.net/-KHt> (at github.com) | 05:02 |
hyades | see here | 05:02 |
hyades | i had some 6 commits made on 26th | 05:02 |
hyades | so I decided to go back to 25th | 05:02 |
hyades | to the "added comments" commit | 05:03 |
hyades | as you can see those 6 commits on 26th are missing | 05:03 |
hyades | i was following some answer on stackoverflow | 05:04 |
CarlFK | do you have those steps handy? | 05:06 |
hyades | one sec | 05:06 |
CarlFK | I am not at all a git expert.. but I may recongize what happened | 05:07 |
CarlFK | #git and #github are sometimes helpful | 05:07 |
hyades | oh | 05:07 |
parx | +1 for the good suggestion CarlFK | 05:07 |
CarlFK | #git often refers you to a section in the git book, but that sometimes wroks out :) | 05:07 |
hyades | btw i was using this answer | 05:07 |
hyades | http://stackoverflow.com/questions/1895059/revert-to-a-commit-by-sha-hash | 05:07 |
tpb | <http://ln-s.net/-KHz> (at stackoverflow.com) | 05:07 |
hyades | the first answer out here | 05:08 |
hyades | but I don't have a commit like "Revert to xyz" in my history | 05:09 |
CarlFK | "undoing all the intermediate commit" | 05:10 |
CarlFK | I think that's the same as "loosing some commits" | 05:10 |
CarlFK | isn't that what you wanted? | 05:10 |
hyades | I actually made some mistakes | 05:11 |
hyades | so I wanted to go back, but was not sure where exactly to go back | 05:11 |
hyades | but the result was that I lost everything I had done yesterday | 05:12 |
hyades | i remember there was some way to get a commit like "Revert to xyz" on top of all those commits I want to ignore | 05:12 |
hyades | sorry forgot to mention that I did a stupid git push -f after that | 05:16 |
CarlFK | there are GUI git repo explorer tools that might let you see what you still have | 05:18 |
parx | (hyades, just pointing out that mithro is on an alternate nick right now. When you start typing a nick, you can press tab and it will autocomplete with the active nick.) | 05:18 |
hyades | :) | 05:19 |
CarlFK | I suspect it may be better to just re-do what you lost.. instead of spending time trying to figure out if git has it, then re-doing it | 05:19 |
CarlFK | which really sucks.. but such is life | 05:19 |
hyades | i did that again.. i just want to know so that I follow the correct method from next time | 05:20 |
hyades | mithro-work, how to correctly revert commits? | 05:21 |
hyades | parx, thanks for that :) | 05:22 |
Sewar | hyades: you can just fix the problem and commit again | 05:22 |
*** mithro has joined #timvideos | 05:23 | |
parx | Glad you asked the question. I'd like to know the right answer, so let me know if you find help in one of the channels CarlFK recommended. | 05:23 |
*** mithro has quit IRC | 05:28 | |
CarlFK | hyades: I am not sure what you really wanted ... sounds like you wanted to revert some changes but not all. | 05:30 |
hyades | say i have commits 1,2,3,4,5 | 05:31 |
hyades | so i want to go to say 2, so my final commit history should have 1,2,3,4,5,"revert to 2" | 05:31 |
hyades | it should not loose the commits 3,4,5 from history | 05:32 |
CarlFK | what do you mean "go to 2" ? | 05:33 |
hyades | i should have contents as they were at 2 | 05:33 |
*** iiie2 is now known as iiie | 05:36 | |
CarlFK | yeah - I think at that point you wanted to make a branch, edit/commit and then merge that back into 5 | 05:36 |
CarlFK | but I have never done that.. so I should stop talkng ;/ | 05:36 |
iiie | "git checkout -b my-new-branch-from-2" ; "git checkout 2" [2 is standing in for the sha, first 8 characters should do] | 05:38 |
iiie | you could also do "git checkout -b my-old-branch-from-3-4-5; git checkout what-your-branch-is-named; git reset 2" | 05:39 |
iiie | but it has to do with what the history out in the world is | 05:39 |
iiie | don't break other people's branches (or their clones of your repo) | 05:40 |
hyades | yeah that would work | 05:40 |
iiie | what branches do you have so far? | 05:40 |
iiie | master? | 05:40 |
hyades | i just have one | 05:41 |
iiie | "git branch -avv" shows all branches | 05:41 |
hyades | ok three in total, im working on one | 05:41 |
iiie | so the problem with reset for branches that have already been pushed to a remote repo (github, wherever) is that if you force it to overwrite branch history, other people's clones now break | 05:44 |
iiie | why do you want to revert to 2? | 05:45 |
iiie | what are you saving 3,4, and 5 for? | 05:45 |
hyades | some errors i made in 3,4,5 | 05:45 |
hyades | was not sure what was causing the errors | 05:45 |
iiie | I'd make a new branch from 2 and run from there | 05:46 |
hyades | ok...and later you use merge? | 05:46 |
iiie | git checkout 2; git checkout -b my-new-start | 05:47 |
iiie | merge or rebase yes | 05:47 |
hyades | okay :) | 05:47 |
iiie | branches are very cheap, you can have local working branches that you never push, that are solely to verify that branches merge cleanly | 05:48 |
iiie | for throwaway branches I often include the date (or month and year) so that I know quickly which branches to delete | 05:49 |
CarlFK | today is Thursday? (just turned ) | 05:51 |
hyades | its surely Thursday here | 05:52 |
iiie | Friday here | 05:53 |
iiie | no still Wednesday | 05:53 |
CarlFK | lol | 05:53 |
*** tpb` has joined #timvideos | 07:27 | |
*** iiie has quit IRC | 07:35 | |
*** shenki has quit IRC | 07:35 | |
*** mithro-work has quit IRC | 07:35 | |
*** tpb has quit IRC | 07:35 | |
*** Sewar has quit IRC | 07:36 | |
*** CarlFK has quit IRC | 07:36 | |
*** tpb` is now known as tpb | 07:36 | |
*** shenki has joined #timvideos | 07:37 | |
*** Sewar has joined #timvideos | 07:37 | |
*** iiie has joined #timvideos | 07:37 | |
*** CarlFK has joined #timvideos | 07:37 | |
*** mithro-work has joined #timvideos | 07:37 | |
mithro-work | hyades, did iiie help you with your bit question? | 07:52 |
hyades | mithro-work, yes | 07:53 |
mithro-work | It's really hard to "loose" commits | 07:55 |
mithro-work | I also recommend the graphical tool gitk | 07:55 |
mithro-work | git won't throw them away until a git gc runs | 07:56 |
mithro-work | so it just about figuring out what the commit sha1's where to resurrect them | 07:56 |
mithro-work | There is a thing called the reflog which is really useful for finding commits you accidently lost references too | 07:57 |
hyades | trying out gitk :) | 07:58 |
mithro-work | It is always good to create temp branches too | 08:07 |
*** mithro has joined #timvideos | 08:23 | |
*** hyades_ has joined #timvideos | 09:41 | |
*** hyades has quit IRC | 09:41 | |
*** hyades_ is now known as hyades | 09:42 | |
*** shenki has quit IRC | 10:04 | |
*** shenki has joined #timvideos | 10:06 | |
*** shenki has quit IRC | 10:41 | |
*** shenki has joined #timvideos | 10:43 | |
*** shenki has quit IRC | 11:17 | |
*** shenki has joined #timvideos | 11:18 | |
*** bananadine has joined #timvideos | 12:39 | |
bananadine | hey @mithro, so i'll have to find a way to get the code for hostname called? | 12:42 |
mithro | bananadine, yes | 12:45 |
bananadine | arrgh, i can't figure it out | 13:24 |
mithro-work | bananadine, why not? | 13:25 |
bananadine | i just can't | 13:34 |
bananadine | don't know how to get it called before the test | 13:34 |
mithro-work | call it in the constructor? | 13:48 |
bananadine | can't seem to find any constructor | 13:53 |
bananadine | should i write one? | 13:53 |
mithro-work | yes | 13:54 |
mithro-work | make sure you call the parent constructor too | 13:54 |
bananadine | i just wrote this simple constructor | 14:07 |
bananadine | def __init__(self, banana): | 14:07 |
bananadine | StreamerTestCase.__init__(self) | 14:07 |
bananadine | and the test passed | 14:07 |
bananadine | but i don't think it's right | 14:12 |
bananadine | http://pastebin.com/fqeCz8hr | 14:15 |
tpb | Title: [Python] # -*- test-case-name: flumotion.test.test_component_httpstreamer -*- # vi:si:et - Pastebin.com (at pastebin.com) | 14:15 |
hyades | bananadine, you can try out something like super also | 14:18 |
hyades | super(StreamerTestCase, self).__init__() | 14:19 |
bananadine | it does the same job | 14:20 |
bananadine | the test passes | 14:20 |
bananadine | but | 14:20 |
bananadine | for something called runTest | 14:21 |
bananadine | wait i'll show you | 14:21 |
bananadine | http://pastebin.com/KLLLVwyt | 14:23 |
tpb | Title: track@track-HP-ProBook-4520s:~/Downloads/flumotion$ python -m unittest flumotion - Pastebin.com (at pastebin.com) | 14:23 |
hyades | mithro-work, those strange patterns i was getting was due to a typo :\ | 14:35 |
hyades | "heigth" for "height" | 14:36 |
mithro-work | okay | 14:40 |
mithro-work | can't do DCC | 14:43 |
hyades | ok | 14:44 |
hyades | i mailed you | 14:44 |
mithro-work | A .data file? | 14:46 |
hyades | u can try out vlc | 14:46 |
hyades | it "pretty" now :P | 14:46 |
mithro-work | mplayer works | 14:46 |
mithro-work | just looks like an AVI file | 14:46 |
mithro-work | $ file ~/Downloads/record\ 2013-06-27\ 201241.data | 14:47 |
mithro-work | /usr/local/google/home/tansell/Downloads/record 2013-06-27 201241.data: RIFF (little-endian) data, AVI, 300 x 200, 30.00 fps, video:, audio: (stereo, 48000 Hz) | 14:47 |
mithro-work | bananadine, need help before I go to bed? | 14:48 |
mithro-work | I got about 12-15 minutes | 14:48 |
bananadine | i wrote | 14:48 |
bananadine | look up in the chat | 14:48 |
mithro-work | what is your change? | 14:49 |
bananadine | def __init__ | 14:50 |
mithro-work | bananadine, if you wrote "def __init__" it would syntax error | 14:50 |
mithro-work | please give me the full context | 14:50 |
mithro-work | also doesn't tell me which file you modified | 14:51 |
mithro-work | or what you put in the __init__ | 14:51 |
mithro-work | please be *descriptive* | 14:51 |
bananadine | def __init__(self, banana): | 14:51 |
mithro-work | I can't read your mind, see your computer or know what state things are in | 14:51 |
bananadine | StreamerTestCase.__init__(self) | 14:51 |
mithro-work | diffContext? | 14:52 |
bananadine | i'll paste diff now | 14:52 |
bananadine | http://pastebin.com/YzYADmeS | 14:53 |
tpb | Title: [Diff] diff --git a/flumotion/test/test_component_httpstreamer.py b/flumotion/test/test - Pastebin.com (at pastebin.com) | 14:53 |
mithro-work | and if you apply the reverse of that patch it goes back to failing? | 14:53 |
mithro-work | hyades, looks good | 14:54 |
mithro-work | hyades, what is your goal to achieve by the end of this week? | 14:55 |
hyades | it was to make all classes which will be later populated and give some structure to the API | 14:56 |
bananadine | mithro-work yea, it gives me the AttributeError for hostname | 14:57 |
hyades | i am doing some parts which were ahead in timeline so that i understand the structure better | 14:57 |
mithro-work | okay - my guess is that you are getting an exception when you try and construct the TestStreamDataNoPlug/TestStreamDataPlug testcases are created and trial is ignoring that for some reason | 14:58 |
mithro-work | hyades, by now your timeline is probably about 90% wrong - that is pretty normal | 14:58 |
mithro-work | hyades, so I'd recommend doing a blog post about update/changes to it and what you plan to do next week | 14:59 |
hyades | yeah.. | 14:59 |
bananadine | don't know if you saw this earlier, but when i run the test i get this http://pastebin.com/KLLLVwyt | 15:00 |
tpb | Title: track@track-HP-ProBook-4520s:~/Downloads/flumotion$ python -m unittest flumotion - Pastebin.com (at pastebin.com) | 15:00 |
mithro-work | before or after? | 15:00 |
bananadine | after i wrote the constructor | 15:01 |
mithro-work | and before? | 15:01 |
bananadine | it failed giving me the AttributeError | 15:01 |
bananadine | for hostname | 15:01 |
mithro-work | again - full output please | 15:01 |
mithro-work | it is unlikely you'll ever give me *too much* information | 15:03 |
bananadine | before i got this when i ran the test: http://pastebin.com/xXUy5yqs | 15:04 |
tpb | Title: track@track-HP-ProBook-4520s:~/Downloads/flumotion$ trial flumotion.test.test_co - Pastebin.com (at pastebin.com) | 15:04 |
bananadine | after i apply this: http://pastebin.com/YzYADmeS | 15:04 |
tpb | Title: [Diff] diff --git a/flumotion/test/test_component_httpstreamer.py b/flumotion/test/test - Pastebin.com (at pastebin.com) | 15:04 |
bananadine | i get this: http://pastebin.com/KLLLVwyt | 15:04 |
tpb | Title: track@track-HP-ProBook-4520s:~/Downloads/flumotion$ python -m unittest flumotion - Pastebin.com (at pastebin.com) | 15:04 |
mithro-work | and that is the *only* thing you are changing? | 15:05 |
bananadine | yes | 15:06 |
mithro-work | what is your commit sha? | 15:12 |
mithro-work | bananadine, umm | 15:13 |
mithro-work | in the before case | 15:13 |
mithro-work | you are using tral | 15:13 |
mithro-work | and the in the after case you are using unittest.... | 15:13 |
bananadine | it's both in the same paste | 15:14 |
bananadine | the unittest got copied by accident | 15:14 |
bananadine | but anyway | 15:14 |
bananadine | they both pass | 15:14 |
mithro-work | without your patch I get different output | 15:15 |
bananadine | can you show it to me? | 15:15 |
mithro-work | but after your patch I get the same output as you | 15:16 |
bananadine | wow, some patch i made :P | 15:17 |
mithro-work | Okay I know what is going on now | 15:19 |
mithro-work | so why did you add a "banana" argument to __init__ ? | 15:19 |
bananadine | if i only have one argument i'll get | 15:20 |
bananadine | TypeError: __init__() takes exactly 1 argument (2 given) | 15:20 |
mithro-work | yes | 15:21 |
mithro-work | and then what do you do with that 1 argument? | 15:21 |
bananadine | with banana? | 15:21 |
bananadine | i don't do anything | 15:21 |
mithro-work | exactly... | 15:22 |
mithro-work | what use to happen? | 15:22 |
mithro-work | without your __init__ method? | 15:22 |
bananadine | i get the attribute error | 15:22 |
bananadine | exceptions.AttributeError: 'MultifdSinkStreamer' object has no attribute 'hostname' | 15:23 |
mithro-work | Your thinking at the wrong level | 15:23 |
mithro-work | when you remove your __init__ function how does the code change? | 15:24 |
mithro-work | Walk through it in your mind | 15:24 |
bananadine | well, i guess i don't have a constructor | 15:25 |
mithro-work | what would the *default* constructor do? | 15:25 |
bananadine | it should create an object | 15:26 |
mithro-work | that is what __new__ actually does under python | 15:30 |
mithro-work | but your still missing something | 15:30 |
Sewar | I use vps to run tests, it was down around 9 hours yesterday, and now it gives me werid errors | 15:31 |
* Sewar wastes his time fixing his vps :( | 15:31 | |
mithro-work | Sewar, you can't run them locally? | 15:31 |
Sewar | I can, but I thought it would be better to a website on linux server | 15:32 |
*** hyades_ has joined #timvideos | 15:32 | |
Sewar | installing mysql and all other stuff | 15:32 |
Sewar | and as you know I will have Windows-only bugs to fix too | 15:32 |
mithro-work | django works perfectly fine with sqlite? | 15:32 |
Sewar | yeah, but I like mysql mature tools to play with structure/data | 15:33 |
Sewar | online | 15:33 |
mithro-work | your mentor is likely to test your code on this local computer | 15:34 |
*** CarlFK has left #timvideos | 15:34 | |
mithro-work | so might want to make sure it's supported :) | 15:34 |
Sewar | sqlite will make me kill runserver before touching .sqlite file | 15:34 |
*** hyades has quit IRC | 15:34 | |
Sewar | it should be, that's Django job ;) | 15:35 |
*** CarlFK has joined #timvideos | 15:35 | |
Sewar | Will try to fix it for some time, otherwise will move to another server or local | 15:36 |
bananadine | mithro-work the constructor should do something when the class is instantiated , in this case i'm calling the __init__ method of the ancestor class StreamerTestCase | 15:36 |
bananadine | and StreamerTestCase doesn't seem to have such method | 15:36 |
mithro-work | your still missing it | 15:37 |
mithro-work | what would happen to the banana argument in the default case? | 15:37 |
* iiie is up for sqlite, mysql, or postgresql "locally" | 15:37 | |
mithro-work | shhhhh | 15:37 |
mithro-work | otherwise I'll have to install them too | 15:37 |
iiie | fine fine | 15:38 |
bananadine | what is the default case? | 15:38 |
iiie | also I saw a commit that enabled local_settings in settings | 15:38 |
iiie | bananadine: what's the value of banana if no argument is given? | 15:39 |
Sewar | as per CarlFK request | 15:39 |
bananadine | oh | 15:39 |
iiie | Sewar: right, which solves the database settings, so long as it's tested in the other mode | 15:39 |
hyades_ | bananadine, i got a similar error sometime back "TypeError: __init__() takes exactly 1 argument (2 given)" | 15:40 |
bananadine | i have no idea what's the value of banana if no argument is given | 15:40 |
bananadine | :/ | 15:40 |
iiie | in python arguments can have default values | 15:41 |
hyades_ | its related to the constructor of the class from which it was inherited | 15:41 |
iiie | def my_method(arg1, arg2, arg_with_default="blah") | 15:41 |
Sewar | yeah iiie | 15:41 |
mithro-work | that is all red herrings though | 15:41 |
mithro-work | if a class doesn't have a constructor, the parent constructor is called right? | 15:42 |
* Sewar is leaving, back in 30-ish | 15:42 | |
mithro-work | the part you are missing is that *with the arguments given* | 15:42 |
iiie | sure, and you usually want to call that constructor too (super(ParentClass,self).__init__(*args, **kwargs) | 15:43 |
mithro-work | + def __init__(self, banana): | 15:43 |
mithro-work | + super(StreamerTestCase, self).__init__() | 15:43 |
mithro-work | is not equivalent to not having a constructor | 15:43 |
mithro-work | because you are not passing banana through to the parent class | 15:43 |
iiie | ouch | 15:43 |
bananadine | what should i do with banana? | 15:44 |
CarlFK | morning folks | 15:44 |
mithro-work | what happens *by default*? | 15:44 |
iiie | morning CarlFK | 15:44 |
CarlFK | is this code somewhere I can browse it? | 15:44 |
bananadine | by default? | 15:45 |
*** hyades_ is now known as hyades | 15:45 | |
iiie | what I would do is grab the arguments, and pass them on, if there is manipulation to be done, do, but the parrent init needs arguments to generally be passed though to it | 15:45 |
iiie | *parent *through | 15:46 |
bananadine | the parent to TestStreamDataNoPlug and TestStreamDataPlug is StreamerTestCase | 15:46 |
bananadine | so | 15:46 |
bananadine | as i can see | 15:47 |
CarlFK | we need more cooks... where is the code that uses this class? | 15:47 |
bananadine | the parent doesn't have an __init__ | 15:47 |
hyades | CarlFK, lol | 15:47 |
mithro-work | bananadine, so keep going up the stack | 15:47 |
bananadine | StreamerTestCase inherits from testsuite.TestCase | 15:47 |
bananadine | TestCase has an __init__ | 15:48 |
bananadine | and it does some stuff | 15:48 |
iiie | what does that take as arguments? | 15:48 |
bananadine | def __init__(self, methodName=' impossible-name ') | 15:49 |
bananadine | methodName | 15:49 |
iiie | thatare what TestStreamDataNoPlug and TestStreamDataPlug need then | 15:49 |
bananadine | and the default is impossible-name | 15:49 |
iiie | right, which means when called that methodName is replaced | 15:50 |
bananadine | methodname is replaced with banana | 15:50 |
bananadine | right? | 15:50 |
iiie | yes, but you need to pass it to super().__init__ | 15:50 |
CarlFK | bananadine: where is the call.. I think if you knew what was passing a value to banana it would click | 15:50 |
mithro-work | you could print them out for banana for example | 15:51 |
CarlFK | you added banana because some code was trying to pass a parameter... lets see that code | 15:51 |
bananadine | def __init__(self, banana): | 15:52 |
bananadine | super(StreamerTestCase, self).__init__(banana) | 15:52 |
mithro-work | bananadine, yes that is what the default __init__ method would do | 15:52 |
iiie | great, retest with that | 15:52 |
CarlFK | what class is that from? | 15:52 |
bananadine | i retested with that | 15:53 |
bananadine | and i'm back to square one | 15:53 |
CarlFK | ah.. not talking to me ;) | 15:53 |
bananadine | sorry CarlFK | 15:53 |
bananadine | :) | 15:53 |
bananadine | i'm back to where i was before i wrote the __init__ method | 15:53 |
CarlFK | pull banana, run, pastebin the stack dump | 15:54 |
bananadine | and that's here http://pastebin.com/xXUy5yqs | 15:54 |
tpb | Title: track@track-HP-ProBook-4520s:~/Downloads/flumotion$ trial flumotion.test.test_co - Pastebin.com (at pastebin.com) | 15:54 |
iiie | hm, well then sometimes it's called without arguments, so you need either positional arguments (*args) or keyword arguments (**kwargs) | 15:54 |
mithro-work | bananadine, so basically stopping the argument being given to the base class is what was/is causing your tests to pass | 15:54 |
mithro-work | so you should be able to go onwards from there | 15:55 |
bananadine | ok great | 15:55 |
bananadine | now i need to make the method that generates hostnames to run | 15:55 |
CarlFK | I think you should really know what the thing is that is causing all this ruckkus - if you knew, it wouldn't be called banana | 15:55 |
bananadine | Yea :D | 15:56 |
* iiie finally notices that the class under discussion is testing code.... | 15:56 | |
bananadine | ok, now i'll have to import the Streamer class from streamer.py in the test since there's the method parseProperties in which a hostname is generated | 16:08 |
bananadine | can i make it with adding Streamer.parseProperties() in the __init__? | 16:14 |
CarlFK | can you give me the URL to the code repo? | 16:15 |
bananadine | https://github.com/bananadine/flumotion | 16:16 |
tpb | Title: bananadine/flumotion ยท GitHub (at github.com) | 16:16 |
* iiie is off to work, will be on in 25 minutes | 16:21 | |
*** iiie is now known as iiie2 | 16:22 | |
bananadine | anyone? | 16:44 |
CarlFK | oh, I got lost trying to find where banana came from :) | 16:45 |
bananadine | nah banana is not important | 16:45 |
bananadine | i mean the name | 16:45 |
bananadine | i just put it | 16:46 |
CarlFK | What is the class foo(bar) line fro (10:52:33 AM) bananadine: def __init__(self, banana): | 16:46 |
bananadine | that's in the test_component_httpstreamer.py | 16:46 |
bananadine | but it's not on git yet | 16:47 |
CarlFK | I know where the line is... | 16:47 |
CarlFK | now tell me the line :) | 16:47 |
bananadine | since i haven't done anything with it i didn't think it's worth a commit | 16:47 |
CarlFK | and now I know why the line isn't in git... | 16:47 |
bananadine | well | 16:48 |
CarlFK | how about just giving me the line ? :) | 16:48 |
bananadine | should i commit it? | 16:48 |
*** parx1 has joined #timvideos | 16:48 | |
CarlFK | it's one line.. paste it here | 16:48 |
mithro-work | CarlFK, ssshhhhh | 16:48 |
mithro-work | he is trying to actually get something done | 16:48 |
CarlFK | mithro-work: um.. he is stuck I think | 16:49 |
bananadine | yea i'm stuck | 16:49 |
bananadine | :D | 16:49 |
mithro-work | bananadine, what are you stuck with now? | 16:49 |
bananadine | i imported the Streamer class from streamer.py in the test | 16:49 |
*** parx has quit IRC | 16:50 | |
bananadine | since the method which generates the hostname is in there | 16:50 |
*** parx1 is now known as parx | 16:50 | |
bananadine | the methods name is parseProperties | 16:50 |
bananadine | so i was trying to figure out how to call that method | 16:50 |
CarlFK | can I get the class line? mainly I want to know what you are subclassing | 16:51 |
bananadine | in the __init__ method in the test class | 16:51 |
bananadine | class TestStreamDataNoPlug(StreamerTestCase): | 16:51 |
mithro-work | why are you calling it in the __init_- method of the test class? | 16:51 |
mithro-work | The problem is hostname not appearing on the object you are testing | 16:51 |
mithro-work | not on the test itself | 16:51 |
bananadine | i though that's how i can call the code before the test runs | 16:52 |
*** iiie has joined #timvideos | 16:53 | |
mithro-work | you want to actually fix the code so it works when someone uses the code outside the test | 16:53 |
mithro-work | the test is showing you it is broken | 16:53 |
bananadine | right | 16:53 |
mithro-work | so nothing you should be doing is specific to the test | 16:53 |
bananadine | so actually i dont need the __init__ method i wrote in the test | 16:54 |
mithro-work | you probably need an __init__ method somewhere - but the test case doesn | 16:54 |
mithro-work | t need it | 16:54 |
bananadine | i should try the module the test is testing? | 16:54 |
bananadine | httpstreamer | 16:54 |
mithro-work | yes | 16:55 |
CarlFK | oh.. are you writing a test, or using a test to test new code? | 16:55 |
mithro-work | he has a test which fails | 16:55 |
mithro-work | so he is trying to fix the code the test is testing | 16:55 |
CarlFK | ah.. I got mixed up | 16:55 |
bananadine | httpstreamer.py is only a few lines | 16:56 |
bananadine | with one class | 16:56 |
bananadine | which only has "pass" | 16:56 |
bananadine | so nothing happens in that class.. | 16:56 |
mithro-work | bananadine, why does it exist then? | 16:56 |
bananadine | yes i'm wondering now... | 16:57 |
bananadine | import \ | 16:57 |
bananadine | MultifdSinkStreamer | 16:57 |
bananadine | what does the slash mean? | 16:57 |
CarlFK | bananadine: splits long lines | 16:58 |
bananadine | thanks | 16:58 |
mithro-work | You know about inheritance right? | 16:58 |
bananadine | yes | 16:59 |
mithro-work | HTTPStreamer is getting all its functionality from MultifdSinkStreamer | 16:59 |
bananadine | i get that but | 16:59 |
bananadine | httpstreamer is just that | 16:59 |
bananadine | i don't get it why it exists | 16:59 |
mithro-work | What would you rather talk about? | 16:59 |
mithro-work | HTTPStreamer or "MultifdSinkStreamer" | 17:00 |
bananadine | well the error i get on the test | 17:00 |
bananadine | is related to "MultifdSinkStreamer" | 17:00 |
bananadine | because it says that the class "MultifdSinkStreamer" has no attribute 'hostname' | 17:00 |
bananadine | hmm | 17:00 |
mithro-work | yes | 17:01 |
mithro-work | and HTTPStreamer is a MultifdSinkStreamer | 17:01 |
mithro-work | so you need to modify MultifdSinkStreamer to have a hostname | 17:01 |
bananadine | MultifdSinkStreamer inherits from Streamer | 17:01 |
bananadine | which generates a hostname | 17:02 |
bananadine | but MultifdSinkStreamer doesn't have it | 17:02 |
mithro-work | yes, there appears to be code in Streamer which generates a host name | 17:02 |
mithro-work | but if there is no hostname being generated, then it's obviously not getting called | 17:02 |
mithro-work | I don't understand why this is taking you so long? I gave you all that information above in the email | 17:03 |
bananadine | well i didn't quite get the e-mail as i got i tnow | 17:03 |
bananadine | it now* | 17:03 |
bananadine | it seems i'm slow in understanding thinks :) | 17:04 |
bananadine | things* | 17:04 |
mithro-work | this is /really/ basic stuff here | 17:04 |
mithro-work | it's not like the __init__.py import problem | 17:04 |
*** hyades has quit IRC | 17:12 | |
bananadine | this modification in MultifdSinkStreamer should be a method which calls parseProperties? | 17:13 |
mithro-work | probably | 17:13 |
bananadine | i'm writing something like this | 17:14 |
bananadine | def parseProperties(self, properties): | 17:14 |
bananadine | streamer.Streamer.parseProperties(self,properties) | 17:14 |
bananadine | correct me if i'm wrong | 17:14 |
mithro-work | why are you writing that | 17:14 |
mithro-work | why do you think that would work? | 17:14 |
bananadine | does not that call parseProperties? | 17:15 |
mithro-work | yes it does | 17:15 |
mithro-work | but what calls it? | 17:15 |
bananadine | a method with the same name i'm writing in MultifdSinkStreamer | 17:15 |
parx | hi mithro-work | 17:16 |
parx | hi banandine | 17:16 |
bananadine | hi parx | 17:16 |
parx | *banandine | 17:16 |
Sewar | record for future: I was getting MemoryError during Django import, solution: delete all *.pyc | 17:16 |
parx | crap typing already in the day, sorry | 17:17 |
bananadine | de nada | 17:17 |
parx | mithro-work: weren't you going to bed hours ago? must be tired! | 17:19 |
bananadine | i'm keeping him awake because of my ignorance :) | 17:20 |
mithro-work | yes | 17:20 |
mithro-work | I should be in bed | 17:20 |
parx | get to sleep | 17:20 |
parx | bananadine, I want you to do a better job of asking your questions with full detail *from the beginning* | 17:21 |
mithro-work | we've already been through that bit | 17:22 |
mithro-work | btw | 17:22 |
mithro-work | parx, poke me to put the logs up somewhere | 17:22 |
mithro-work | they are being recorded just not published | 17:22 |
parx | I saw... more than once | 17:22 |
parx | yessir | 17:22 |
bananadine | i'm going to take a shower and when i return i'm going to annoy parx about things i don't understand yet | 17:27 |
mithro-work | well, I'm heading home now | 17:41 |
CarlFK | home?!! | 17:41 |
mithro-work | looked at digital video signals for long enough to do my head in... | 17:41 |
CarlFK | as in, you aren't home? | 17:41 |
mithro-work | see ya! | 17:41 |
parx | insane... | 17:41 |
mithro-work | nope, I'm at work | 17:41 |
CarlFK | yeah, get going | 17:41 |
parx | ~3am | 17:42 |
parx | there | 17:42 |
CarlFK | no sleeping until you get there | 17:42 |
Sewar | :o | 17:47 |
bananadine | so parx did you read the log or should i give a long form question with full detail? | 17:50 |
iiie | bananadine, the current problem is the hostname attribute not being on the tested object in the test case right? | 17:52 |
bananadine | right | 17:52 |
iiie | but the object has a method to make the hostname attribute; which means that code isn't being called before the attribute is needed | 17:53 |
bananadine | right | 17:53 |
iiie | can you link to the testcase, and the class mentioned in the testcase failure? | 17:53 |
bananadine | so i wanted to make a method in MultifdSinkStreamer to call the code | 17:54 |
bananadine | i'll do it | 17:54 |
bananadine | just a minute | 17:54 |
iiie | So one of two problems, either the testcase doesn't setup the object correctly or the object's methods aren't quite what they should be | 17:55 |
bananadine | the test: https://github.com/bananadine/flumotion/blob/master/flumotion/test/test_component_httpstreamer.py | 17:55 |
tpb | <http://ln-s.net/-KRY> (at github.com) | 17:55 |
bananadine | the class mentioned in the failure | 17:56 |
bananadine | https://github.com/bananadine/flumotion/blob/master/flumotion/component/common/streamer/multifdsinkstreamer.py#L59 | 17:56 |
tpb | <http://ln-s.net/-KRZ> (at github.com) | 17:56 |
bananadine | the code for a hostname: https://github.com/bananadine/flumotion/blob/master/flumotion/component/common/streamer/streamer.py#L342 | 17:57 |
tpb | <http://ln-s.net/-KRa> (at github.com) | 17:57 |
bananadine | i think it's that the object's methods aren't quite what they should be | 18:01 |
iiie | So looking at those, Stats has __init__; parseProperties is called in configure_pipeline, but nothing callse either parseProperties or configure_pipeline | 18:02 |
iiie | *calls | 18:02 |
iiie | Which testcase is failing? | 18:04 |
bananadine | there are only two | 18:04 |
bananadine | the first fails | 18:04 |
bananadine | the second skipps | 18:04 |
bananadine | and the skip is due to the indent | 18:04 |
bananadine | you can see that | 18:04 |
bananadine | i think it's left there with intention | 18:05 |
bananadine | as it points to see something | 18:05 |
bananadine | TestStreamDataNoPlug fails to be more precise | 18:05 |
bananadine | and the other one | 18:05 |
bananadine | TestStreamDataPlug gets | 18:05 |
bananadine | testGetStreamData.skip = 'See #1137' | 18:05 |
bananadine | so it skipps | 18:06 |
iiie | And the failure in TestStreamDataNoPlug has line 51 self.component = httpstreamer.MultifdSinkStreamer(config) in the trace right? | 18:06 |
iiie | Or line 64 component.getStreamData() ? | 18:07 |
bananadine | line 64 | 18:11 |
bananadine | http://pastebin.com/gtEvz3i8 | 18:12 |
tpb | Title: track@track-HP-ProBook-4520s:~/Downloads/flumotion$ trial flumotion.test.test_co - Pastebin.com (at pastebin.com) | 18:12 |
bananadine | here's the full output | 18:12 |
bananadine | btw | 18:13 |
bananadine | the skipped test got skipped even before i started porting | 18:13 |
bananadine | the one that fails (gives error) is after i ported | 18:14 |
bananadine | before it was fine | 18:14 |
bananadine | it passed | 18:14 |
iiie | Right, looking at https://github.com/bananadine/flumotion/blob/master/flumotion/component/common/streamer/streamer.py#L454 | 18:15 |
tpb | <http://ln-s.net/-KRy> (at github.com) | 18:15 |
iiie | it doesn't use self.hostname, it has "localhost" | 18:15 |
bananadine | right | 18:15 |
bananadine | that's wrong | 18:15 |
bananadine | the test passes | 18:15 |
bananadine | but it's wrong | 18:15 |
bananadine | that's why i'm trying to fix it now | 18:16 |
*** shenki has quit IRC | 18:16 | |
bananadine | so i can return it to self.hostname and that it works | 18:16 |
iiie | right, so what we need is self.component.hostname set before self.component.getStreamData() is called | 18:17 |
bananadine | right | 18:17 |
bananadine | because if self.component.getStreamData() is called first no hostname is set | 18:18 |
iiie | my recommendation is either parseProperties or configure_pipeline called in the test case for testGetStreamData | 18:18 |
*** shenki has joined #timvideos | 18:18 | |
iiie | Do we have the arguments needed for either of those? | 18:18 |
bananadine | properties? | 18:19 |
iiie | or should it have a value without being configured? (a default) | 18:19 |
iiie | https://github.com/bananadine/flumotion/blob/master/flumotion/component/common/streamer/streamer.py#L421 calls https://github.com/bananadine/flumotion/blob/master/flumotion/component/common/streamer/streamer.py#L336 but even then only grabs hostname out of properties passed to it | 18:21 |
tpb | <http://ln-s.net/-KS6> (at github.com) | 18:21 |
bananadine | but if it worked before | 18:23 |
iiie | So there is code for guessing at hostname, could just call self.component.parseProperties({}) in test setup https://github.com/bananadine/flumotion/blob/master/flumotion/test/test_component_httpstreamer.py#L48 | 18:23 |
tpb | <http://ln-s.net/-KS$> (at github.com) | 18:23 |
bananadine | how did i disturb it with the porting :/ | 18:23 |
iiie | it worked before because it getUrl https://github.com/bananadine/flumotion/blob/master/flumotion/component/common/streamer/streamer.py#L441 didn't depend on self.hostname | 18:24 |
tpb | <http://ln-s.net/-KS+> (at github.com) | 18:24 |
CarlFK | bananadine: I am sure it is above, but lots of stuff is.. can I see the patch that broke the test? | 18:24 |
iiie | How about add a check in getUrl for self.hostname (if not getAttr(self, 'hostname'): self.hostname = .... ) | 18:26 |
bananadine | it worked before i started porting and it used self.hostname | 18:27 |
bananadine | what i meant is | 18:27 |
iiie | really? hm, I'll look at the commit log then | 18:27 |
bananadine | how did i disturb the workings of this code with the porting | 18:27 |
bananadine | ok :) | 18:27 |
bananadine | i'm getting somewhere | 18:28 |
bananadine | i pasted the line self.component.parseProperties({}) you gave me | 18:29 |
bananadine | and i got a different error | 18:29 |
bananadine | i'll pastebin it | 18:29 |
bananadine | http://pastebin.com/Nsm4QxzA | 18:30 |
tpb | Title: track@track-HP-ProBook-4520s:~/Downloads/flumotion$ trial flumotion.test.test_co - Pastebin.com (at pastebin.com) | 18:30 |
bananadine | and now | 18:30 |
bananadine | i commented the lines 400 and 401 in streamer.py | 18:31 |
bananadine | and the test passed | 18:31 |
bananadine | ok so now i got to make those lines work with the test | 18:31 |
iiie | https://code.flumotion.com/trac/attachment/ticket/1137/streamdata.patch | 18:32 |
* parx wonders if bananadine missed Carlfk's request | 18:32 | |
tpb | <http://ln-s.net/-KSM> (at code.flumotion.com) | 18:32 |
bananadine | sorry again CarlFK | 18:32 |
bananadine | it's not just a patch i guess | 18:32 |
bananadine | it's the whole porting process | 18:32 |
iiie | http://lists.fluendo.com/pipermail/flumotion-issues/2008-September/006096.html mithro posted this in the comments to your commit, I'm pretty sure this is the exact same issue | 18:33 |
tpb | <http://ln-s.net/-KSP> (at lists.fluendo.com) | 18:33 |
bananadine | i saw it | 18:33 |
iiie | I find it odd that the test references the tracker issue, but not the patch | 18:33 |
bananadine | https://code.flumotion.com/trac/attachment/ticket/1137/streamdata.patch | 18:35 |
tpb | <http://ln-s.net/-KSM> (at code.flumotion.com) | 18:35 |
bananadine | this the patch? | 18:35 |
CarlFK | sec... | 18:36 |
CarlFK | er few min really | 18:36 |
CarlFK | pfft - I looked - so the test runs/passes before that patch, fails/breaks after? | 18:37 |
bananadine | after the porting, yes | 18:37 |
CarlFK | "the porting" ? | 18:37 |
bananadine | well | 18:38 |
bananadine | i'm porting flumotion to use gstreamer 1.0 | 18:38 |
CarlFK | what version does flumotion use currently ? | 18:41 |
bananadine | 0.10 | 18:41 |
CarlFK | so tests pass with 0.10, swich to 1.0, tests break, right ? | 18:43 |
bananadine | yes | 18:44 |
CarlFK | ahh. so it's not like you broke the test.. I'm slowly catching on | 18:44 |
bananadine | yea | 18:44 |
bananadine | i made a call to self.component.parseProperties({}) in test setup https://github.com/bananadine/flumotion/blob/master/flumotion/test/test_component_httpstreamer.py#L48 | 18:45 |
tpb | <http://ln-s.net/-KS$> (at github.com) | 18:45 |
bananadine | as iiie suggested | 18:45 |
bananadine | and now i lost the error related to hostname | 18:45 |
bananadine | but i got another one instead | 18:45 |
bananadine | http://pastebin.com/Nsm4QxzA | 18:45 |
tpb | Title: track@track-HP-ProBook-4520s:~/Downloads/flumotion$ trial flumotion.test.test_co - Pastebin.com (at pastebin.com) | 18:45 |
iiie | Right, I'm not sure that getDataStream() make sense without starting the / configuring the component | 18:46 |
CarlFK | iiie - what are your thoughts on changing the tests ? | 18:46 |
iiie | changing the test was a test to see if the component just needed more setup | 18:47 |
CarlFK | <philological academic discussion> | 18:47 |
CarlFK | why not do that in the component's init? | 18:48 |
iiie | I don't know how it could have worked before unless something somewhere called one of those too functions to configure the component | 18:48 |
CarlFK | knowing how it worked before seems like a good thing to know :) | 18:48 |
iiie | looking through the history of commits I don't see how component.hostname was set before getDataStream was called | 18:48 |
iiie | agreed on knowing how it worked before being helpful | 18:49 |
bananadine | well | 18:49 |
bananadine | same as now | 18:50 |
bananadine | the only change is that | 18:50 |
bananadine | instead of import gst | 18:50 |
bananadine | i'm using | 18:50 |
bananadine | import gi | 18:50 |
bananadine | gi.require_version('Gst', '1.0') | 18:50 |
bananadine | from gi.repository import Gst | 18:50 |
bananadine | and replaced every occurrence of gst.* to Gst.* | 18:51 |
bananadine | at least in the modules associated with this test | 18:51 |
bananadine | could it be somehow | 18:52 |
bananadine | that i commented a line in feedcomponent.py | 18:52 |
bananadine | #import gst.interfaces | 18:52 |
CarlFK | bananadine: go back to the test passing, and try to figure out how component.hostname was set | 18:52 |
*** rihnapstor has joined #timvideos | 18:58 | |
bananadine | CarlFK: the hostname is set with self.hostname = properties.get('hostname', None) | 18:59 |
CarlFK | put a raise before that, run the test, lets see the stack dump at that point | 18:59 |
CarlFK | that might show us what we are missing | 19:00 |
bananadine | sorry but | 19:02 |
bananadine | what's a raise? | 19:02 |
iiie | raise Exception('Look a banana!') | 19:02 |
bananadine | oh | 19:02 |
CarlFK | it's a poor mans break point | 19:04 |
CarlFK | you could just do "foo" and let it error, but raise makes it clear what the point is | 19:04 |
iiie | well, it does tend to give a stack trace, which is nice | 19:04 |
bananadine | when i put it right before self.hostname = properties.get('hostname', None) | 19:06 |
bananadine | it just get's passed | 19:06 |
bananadine | or it doesn't even go there | 19:06 |
CarlFK | URL of the original self.hostname = code? | 19:07 |
iiie | there you go, print self.hostname just before the if | 19:07 |
iiie | er | 19:07 |
iiie | really? | 19:07 |
iiie | hm | 19:07 |
bananadine | i added the exception right above this https://github.com/bananadine/flumotion/blob/master/flumotion/component/common/streamer/streamer.py#L345 | 19:09 |
tpb | <http://ln-s.net/-KSo> (at github.com) | 19:09 |
bananadine | and i get the same thing i got in the begining | 19:09 |
bananadine | beginning * | 19:10 |
iiie | Try putting it in getUrl | 19:10 |
iiie | I'm quite sure that parseProperties isn't called | 19:10 |
bananadine | well yea | 19:11 |
bananadine | i'm sure too | 19:11 |
bananadine | since the exception didn't show up | 19:11 |
bananadine | when i put it in getUrl | 19:11 |
bananadine | i get it | 19:11 |
bananadine | http://pastebin.com/GU03P66i | 19:12 |
tpb | Title: Ran 2 tests in 0.013s FAILED (skips=1, errors=1) track@track-HP-ProBook-4520 - Pastebin.com (at pastebin.com) | 19:12 |
bananadine | but | 19:15 |
bananadine | if i add self.component.parseProperties({}) after this line https://github.com/bananadine/flumotion/blob/master/flumotion/test/test_component_httpstreamer.py#L51 | 19:15 |
tpb | <http://ln-s.net/-KT4> (at github.com) | 19:15 |
bananadine | i call parseProperties | 19:15 |
bananadine | and when i raise before self.hostname = properties.get('hostname', None) in streamer.py | 19:16 |
bananadine | i get this | 19:16 |
bananadine | http://pastebin.com/Tk1vmasz | 19:16 |
tpb | Title: track@track-HP-ProBook-4520s:~/Downloads/flumotion$ trial flumotion.test.test_co - Pastebin.com (at pastebin.com) | 19:16 |
bananadine | well | 19:20 |
bananadine | now it works but without the avatarId | 19:21 |
bananadine | in other words | 19:21 |
bananadine | if i comment lines 400 and 401 https://github.com/bananadine/flumotion/blob/master/flumotion/component/common/streamer/streamer.py#L400 | 19:21 |
tpb | <http://ln-s.net/-KT:> (at github.com) | 19:21 |
iiie | hang on, the only reason 400 and 401 is because the test setup now has parseProperties | 19:23 |
bananadine | yes | 19:23 |
bananadine | i know that | 19:23 |
iiie | we want to test the pre-ported code and see how component.hostname is set | 19:24 |
bananadine | should i raise in the pre-ported code? | 19:25 |
iiie | yes, we want to findout where in the code component.hostname is set, so that we can do the same (or equivalent) thing | 19:27 |
bananadine | when i put the raise after this line https://code.flumotion.com/cgit/flumotion/tree/flumotion/component/common/streamer/streamer.py#n342 | 19:32 |
tpb | <http://ln-s.net/-KTF> (at code.flumotion.com) | 19:32 |
bananadine | and run the test | 19:33 |
bananadine | (i'm talking about the pre-ported code) | 19:33 |
bananadine | i get | 19:33 |
bananadine | http://pastebin.com/Ufnpja0K | 19:33 |
tpb | Title: track@track-HP-ProBook-4520s:~/flumotion$ trial flumotion.test.test_component_ht - Pastebin.com (at pastebin.com) | 19:33 |
bananadine | which looks exactly like what i get on the ported code | 19:33 |
bananadine | and it doesn't show the exception :( | 19:34 |
iiie | takeout the raise, re-run the test, it'll fail the same because it doesn't run parseProperties, which means hostname isn't set | 19:35 |
bananadine | it didn't fail | 19:36 |
iiie | the pre-ported code without a raise in parseProperties passes that test? | 19:37 |
bananadine | yes | 19:37 |
iiie | but with the raise doesn't actually show the exception? | 19:37 |
bananadine | yap | 19:37 |
iiie | instead of the raise put "print 'yes this function runs'" see what that gets | 19:38 |
* iiie hopes nothing is gobbling standard out | 19:38 | |
bananadine | flumotion.test.test_component_httpstreamer | 19:41 |
bananadine | TestStreamDataNoPlug | 19:41 |
bananadine | testGetStreamData ... yes this function runs | 19:41 |
bananadine | [OK] | 19:41 |
bananadine | :) | 19:41 |
*** rihnapstor has quit IRC | 19:41 | |
iiie | I'd lean toward just fixing it for the unconfigured state which is what the test runs then. Something in the older gst must be running parseProperties (or configure_pipeline) | 19:46 |
bananadine | what you mean by "unconfigured state"? | 19:49 |
iiie | the test setup makes an instance of the stream class, but doesn't configure it. (calling parseProperties or configure_pipeline on the component -- component under test....) | 19:51 |
bananadine | it doesn't have to be the test setup | 19:52 |
bananadine | i can place it in testGetStreamData and get same results | 19:52 |
iiie | What's the basic usage? What's the expected behavior? Should getDataStream work without the stream being started? | 19:54 |
iiie | hm | 19:55 |
iiie | so somehow before config was passed to parseProperites... | 19:55 |
bananadine | but how | 19:56 |
iiie | maybe streamer.Stats.__init__ | 19:57 |
iiie | nope | 19:57 |
bananadine | how about through this https://code.flumotion.com/cgit/flumotion/tree/flumotion/test/test_component_httpstreamer.py#n51 | 19:59 |
tpb | <http://ln-s.net/-KTh> (at code.flumotion.com) | 19:59 |
* iiie smacks self in head | 20:05 | |
iiie | let's review what we've learned | 20:05 |
iiie | The pre-port works | 20:06 |
iiie | The post-port has an issue with hostname | 20:06 |
iiie | adding an exception to the pre-port code makes it react the same as the post-port code, but does NOT raise the exception | 20:07 |
iiie | So there is (or was) magic somewhere that did run the parseProperties with the initial argument to the class | 20:08 |
iiie | let's go back to the post-port code and add the line to the setup of "self.component.parseProperties(config)" config having been set 3 or so lines before and updated 2 lines before | 20:10 |
iiie | and re-run the test | 20:10 |
iiie | sorry to pick and run, but I have to get to lunch | 20:10 |
bananadine | yea | 20:11 |
bananadine | no problem | 20:11 |
bananadine | if i understood you correctly i should add self.component.parseProperties(config) | 20:12 |
bananadine | at the bottom of this | 20:12 |
bananadine | def setUp(self): | 20:12 |
bananadine | config = self.getConfig() | 20:12 |
bananadine | config['properties'] = self.properties.copy() | 20:12 |
bananadine | self.component = httpstreamer.MultifdSinkStreamer(config) | 20:12 |
CarlFK | bananadine: I think so. does the test run now? | 20:26 |
CarlFK | I am off for some food too.. bb in 10 | 20:26 |
bananadine | I get this | 20:27 |
bananadine | http://pastebin.com/EhepmrdA | 20:27 |
tpb | Title: track@track-HP-ProBook-4520s:~/Downloads/flumotion$ trial flumotion.test.test_co - Pastebin.com (at pastebin.com) | 20:27 |
CarlFK | swell. | 20:29 |
bananadine | yea, but what do i do with avatarId | 20:30 |
bananadine | :/ | 20:30 |
CarlFK | I think you should back up and figure out how the old code works | 20:30 |
bananadine | that's what i'm doing the whole time | 20:32 |
CarlFK | i would figure out what sets hostname.. and how the code gets there .. | 20:36 |
CarlFK | we know this runs home/track/Downloads/flumotion/flumotion/test/test_component_httpstreamer.py | 20:36 |
CarlFK | and show how hostname gets set | 20:36 |
CarlFK | seems we don't know how.. | 20:37 |
CarlFK | I am guessing there is someting tricky going on | 20:37 |
*** shenki has quit IRC | 20:39 | |
*** shenki has joined #timvideos | 20:41 | |
bananadine | CarlFK as far as i can understand for now | 20:42 |
bananadine | in the module streamer.py there's a method parseProperties which has a piece of code that "generates" a hostname | 20:43 |
bananadine | which is later used in another method called getUrl | 20:43 |
CarlFK | test_component_httpstreamer.py calls something that calls something .... that calls parseProperties ? | 20:44 |
CarlFK | find that path.. assuming that is the path | 20:44 |
bananadine | https://code.flumotion.com/cgit/flumotion/tree/flumotion/component/common/streamer/streamer.py#n439 | 20:44 |
tpb | <http://ln-s.net/-KUO> (at code.flumotion.com) | 20:44 |
bananadine | i've spent the whole day trying to figure out this issue | 20:45 |
bananadine | i don't think i can think much more | 20:45 |
bananadine | test_component_httpstreamer.py https://code.flumotion.com/cgit/flumotion/tree/flumotion/test/test_component_httpstreamer.py#n51 | 20:51 |
tpb | <http://ln-s.net/-KTh> (at code.flumotion.com) | 20:51 |
bananadine | calls | 20:51 |
bananadine | https://code.flumotion.com/cgit/flumotion/tree/flumotion/component/consumers/httpstreamer/httpstreamer.py | 20:51 |
tpb | <http://ln-s.net/-KUb> (at code.flumotion.com) | 20:51 |
bananadine | which inherits | 20:52 |
bananadine | multifdsinkstreamer.py | 20:52 |
bananadine | https://code.flumotion.com/cgit/flumotion/tree/flumotion/component/common/streamer/multifdsinkstreamer.py#n40 | 20:52 |
tpb | <http://ln-s.net/-KUc> (at code.flumotion.com) | 20:52 |
CarlFK | the test framework may be making this hard | 20:52 |
bananadine | multifdsinkstreamer.py inherits streamer.py | 20:53 |
CarlFK | how about running it "by hand" - know what I mean? | 20:53 |
bananadine | which has this https://code.flumotion.com/cgit/flumotion/tree/flumotion/component/common/streamer/streamer.py#n340 | 20:53 |
tpb | <http://ln-s.net/-KUd> (at code.flumotion.com) | 20:53 |
bananadine | no | 20:53 |
bananadine | what? | 20:53 |
CarlFK | track@track-HP-ProBook-4520s:~/Downloads/flumotion$ trial flumotion.test.test_component_httpstreamer | 20:54 |
CarlFK | that tests something | 20:54 |
CarlFK | figure out what it is testing, and just do that yourself | 20:55 |
CarlFK | maybe run it from the python >>> prompt | 20:55 |
CarlFK | trial .. test.. all try to manage the errors so it can give you a nice summary | 20:56 |
CarlFK | that may be making it hard to understand how things work | 20:56 |
CarlFK | like I think the print "im here" got lost | 20:56 |
CarlFK | lunch really now... | 20:56 |
iiie | back | 21:01 |
CarlFK | iiie - my current plan - pull the test out of the test framework so we can see what is going on | 21:02 |
CarlFK | and eat | 21:02 |
CarlFK | im going to die | 21:02 |
iiie | sounds good, go eat! | 21:03 |
bananadine | i'm kaput | 21:05 |
bananadine | iiie if you want you can check out the chat above | 21:05 |
bananadine | and see where the situation is at | 21:06 |
iiie | Yeah, just finished reading. Take a break. (when is the last time you took a break?) | 21:06 |
bananadine | i doing this the whole day (8 hours at least) | 21:07 |
bananadine | with lunch breaks | 21:07 |
bananadine | and a shower | 21:07 |
bananadine | going to be away | 21:18 |
bananadine | and i'll leave myself on-line | 21:19 |
bananadine | if anyone finds something out, so i can read later | 21:19 |
CarlFK | I found food.. still hungry but at least I won't die | 21:23 |
bananadine | btw: https://code.flumotion.com/cgit/flumotion/tree/flumotion/component/common/streamer/multifdsinkstreamer.py#n177 | 21:44 |
tpb | <http://ln-s.net/-KVV> (at code.flumotion.com) | 21:45 |
bananadine | i think here multifdsinkstreamer.py gets hostname from Streamer | 21:45 |
bananadine | since parseProperties is called in configure_pipeline in streamer.py | 21:45 |
bananadine | https://code.flumotion.com/cgit/flumotion/tree/flumotion/component/common/streamer/streamer.py#n419 | 21:45 |
tpb | <http://ln-s.net/-KVW> (at code.flumotion.com) | 21:45 |
bananadine | so i think that's the path | 21:46 |
parx | 6pm | 22:04 |
parx | sorry, Carlfk that was for you | 22:04 |
*** CarlFK has quit IRC | 22:34 | |
*** parx has quit IRC | 22:55 | |
*** parx has joined #timvideos | 23:03 |
Generated by irclog2html.py 2.5 by Marius Gedminas - find it at mg.pov.lt!