=== almaisan-away is now known as al-maisan [00:04] StevenK: any luck? === al-maisan is now known as almaisan-away [00:05] Fighting with Chromium [00:06] Because Firebug hates our test pages [00:06] :-( [00:10] wallyworld: form_node.one('#tag-input:focus'); [00:11] Sigh [00:11] wallyworld: form_node.one('#tag-input:focus'); == null [00:11] StevenK: so perhaps something else is being assigned focus [00:11] Or the test is braindead [00:11] StevenK: you could attach an onblur event handler to the tag-input node and log something so that you can see if focus is being lost [00:12] or the test ia dead, yes [00:12] at least activeElement and :focus are behaving consistently [00:13] StevenK: i haven't the code handy, but perhaps autocomplete render is messing with the focus [00:13] It could have focus rather than the text box [00:13] I guess [00:14] If :focus works, I just have to Y.Assert.isNotNull(); -- I hope that, or something like it exists [00:15] yes, it exists, can't recall the exact syntax [00:15] my brain is rotten [00:21] Y.one('.bug-tag-complete:focus') is also null [00:22] Y.one(':focus'); is also null === slank is now known as slank_away [00:29] wallyworld: So I'm not sure if :focus works either [00:30] hmmm [00:31] can you fire up an instance, and click on an input field and then in firebug type a css expression to see if it selects the field you just clicked? [00:32] ah won't work [00:32] since clicking out of the input takes away focus [00:43] Hmmm, I think the
is activeElement now [00:43] With a id of 'tag-input' [00:43] That might even be success [00:44] Expected: [object HTMLInputElement] (object) [00:44] Actual: INPUT#tag-input yui_3_5_1_1_1359506644965_424 (object) [00:45] But from my reading in the debugger, the _yuid's are the same [00:45] Actual aboce is correct [00:46] wallyworld: Expected is document.activeElement, tag_input is the actual [00:46] i think the assert is comparing the DOM node wityh a YUI node perhaps [00:46] Right [00:46] so you need to "convert" the document,activeElement to the YUI node [00:46] there's a YUI.DOM method for that [00:47] from memory [00:48] % bzr grep YUI.DOM | wc -l [00:48] 0 [00:49] -i helps not [00:49] let me check [00:49] Don't you just give it to the YUI.Node constructor? [00:49] IIRC [00:50] StevenK: Y.one() accepts a DOM element from memory [00:50] and returns the YUI node [00:50] Let's see [00:51] No failures! [00:52] \o/ [00:52] NoCanonicalUrl: No url for u'http://blueprints.launchpad.dev/product-name-100004' because u'http://blueprints.launchpad.dev/product-name-100004' broke the chain. [00:53] canonical_url, I hate you [00:53] That's a string [00:53] You can't take the URL of a string [00:53] url = canonical_url(product, rootsite='blueprints') [00:53] product is the URL [00:53] Not a product [00:53] product = self.factory.makeProduct() [00:53] I suspect [00:53] You sure it's failing on that line? [00:54] Oh, god damn it, getViewBrowser [00:54] I hate you, please die in a fire [01:19] StevenK: Looking [01:20] StevenK: Why'd you remove the first assert? [01:20] And why do you get form_node, rather than going straight to #tag-input? [01:21] wgrant: Compare line 19 and 22 [01:21] Ah, true [01:21] I can go straight to #tag-input, but I wanted to be sure it was the unhidden form's node [01:22] If there's a duplicate ID that has focus then there are probably bigger problems [01:22] 'cause both of those requirements are problems [01:23] wgrant: http://pastebin.ubuntu.com/1587567/ [01:23] StevenK: You can probably inline that now [01:25] wgrant: http://pastebin.ubuntu.com/1587573/ [01:25] Much better. [01:25] The line is too long with Y.one(document.activeElement), so that can stay outside as the var [01:29] wgrant: The MP has updated [01:30] StevenK: r=me, thanks [01:35] * StevenK stabs himsefl [01:36] *himself [01:36] What did you do? [01:36] No wonder my query count is tiny, I'm not invalidating the cache [01:39] Hmmm, that doesn't help [03:14] And I switch to c_i_v() and the query count drops to 17. WTF. [03:15] StevenK: Did you actually render the view? [03:25] view() should do that, no? [03:25] Yes [03:31] Oh, HAH [03:31] official_blueprints [03:31] STAB [03:31] Heh [03:34] sudo dpkg -P hayfever [03:37] Hm, blueprints.l.d/product is only showing 5 [03:37] Right, batch size on launchpad.dev is 5 by default [03:41] I think my test is slighly broken [03:42] The query list shows an INSERT INTO specification [03:43] * StevenK peers at the oops attached to 1108261 [03:44] The sreg_info we got back was None? [03:44] Or not present at all, more likely [03:44] Which possibly means that the user tried to authenticate with an SSO account that had no LP account, or somehow convince SSO not to send the info [03:46] wgrant: http://pastebin.ubuntu.com/1587769/ the rest of the changes (ISpecification.linked_branches cachedproperty and preloading are shelved) [06:26] StevenK: You need to check that the query count is constant, because a query count of 35 for 5 specs could easily include 3 queries for each spec. [06:27] so eg. create one, check query count, create another 4, check query count is still the same [06:29] * StevenK peers at this test [06:29] I think getViewBrowser screws with the interaction [06:34] wgrant: http://pastebin.ubuntu.com/1588354/ [06:37] StevenK: That looks more test-like, though I'm not sure about having that query count hardcoded in a generically-named method :) [07:13] wgrant: http://pastebin.ubuntu.com/1588558/ [07:19] StevenK: Have you considered BrowsesWithQueryLimit? [07:19] That might even handle invalidation for you [07:23] Doesn't look like it handles invalidation === almaisan-away is now known as al-maisan [08:55] good morning === yofel_ is now known as yofel === matsubara-afk is now known as matsubara === al-maisan is now known as almaisan-away === almaisan-away is now known as al-maisan === dpm is now known as dpm-laptop === slank_away is now known as slank === slank is now known as slank_away [15:35] mgz: may want to add your details to https://wiki.ubuntu.com/Fosdem/2013 and poke Jelmer :) [15:36] ah, hadn't realised there was a wiki.ubuntu.com page, I put 'em on the canonical one [15:36] nods [15:36] community one is public :) [15:36] now to poke the canonical folks to add their details there [15:38] global poke'd [15:39] cheers [15:39] mgz: http://www.drugopera.be/ [15:39] very close to delierium then for friday night beers [15:41] that is the stupidest name... [15:41] indeed [15:41] but is within the perdiem also [15:41] easily [15:45] mgz: oh this also means I finally get to meet jelmer [15:45] wait, you've never met 'im? [15:45] NO! [15:45] I joined the month after the sprint [15:45] :( [15:48] he's coming to london immediately after and settling in :) [15:49] aye [15:49] has he found a place to live? [15:49] has a place arranged for the first month or so and will start looking for something longer term [15:50] cool [15:50] a weekend of beer waffles chocolate and geeks :D [15:50] cannot wait [15:55] don't eat the geeks! [16:05] wgrant,StevenK: any chance of a review of https://code.launchpad.net/~cjwatson/launchpad/bpph-phase/+merge/144154 ? === matsubara is now known as matsubara-lunch === dpm-laptop is now known as dpm === matsubara is now known as matsubara-afk [23:37] wgrant: https://code.launchpad.net/~stevenk/launchpad/precache-specification-linked-branches/+merge/145544 has updated [23:39] StevenK: You still need the explicit invalidate? [23:39] Also, the "specs" list is not useful at all [23:39] You only read from it to get the store to invalidate, and you can get that from product just as easily [23:42] wgrant: The test passes without the invalidate [23:42] But I'm still not convinced it invalidates the store [23:43] Looks like you're right [23:44] I could make it do so, but that may have far reaching implications [23:46] Anyway, I guess that means you should eliminate the specs var and I will be happy :) [23:47] I've already done so: http://pastebin.ubuntu.com/1591256/ [23:47] Much better :) [23:49] wgrant: I'm happy to make BrowsesWithQueryLimit invalidate the store in a seperate branch and toss it at ec2 [23:52] StevenK: That might be worth a try [23:54] wgrant: The MP is updated [23:58] StevenK: r=me