[05:40] Hey, i have a Question about ISO Testing, is there a difference between testing on testdrive and testing with a ubuntu direct installed on my physical hardware? Should we test both or is one of them enough? [05:44] sm0x, Testing on real hardware is preferred due to being able to check how hardware that people will use. [05:45] However any testing is great, and testdrive can probably test faster due to know setup time [05:46] Remember that testdrive will make live USBs for you to test on real hardware if you want [05:48] ok thanks for the answer :) [05:49] how often we should test the daily image? i think it makes not much sense when i test really every day the iso, or? [06:09] sm0x, As much as possible. I try to test three different ISOs a week. e.g. xubuntu AMD64, Ubuntu i386, Lubuntu AMD64 [06:09] That's probably a good middle ground [06:09] Just try to find as many bugs as possible [06:11] ok thx :) [07:04] hey, one more question, when i have in the shutdown-dialog (iso testing) a few lines marked with "fail", should i report them ? [07:10] sm0x, as in once you've clicked shutdown? no, unless something breaks when you next log in [07:10] Evening e11bits [07:10] oops, i mean, elfy [07:10] hi Noskcaj [07:11] Morning elfy, Noskcaj o/ [07:11] hi DanChapman :) [07:16] Noskcaj: yes, It happens directly after i see the "installation finish"-dialog -> i click on reboot (http://imagesup.net/?di=16137378288414) [07:17] sm0x, It's fine, that happens [07:19] ok thx :) [07:20] no problem [20:42] Morning all [20:42] WebbyIT: Did you get an answer to your question? [20:42] thomi: which question? [20:43] Hi all :) How can I verify, with autopilot, that an object doesn't exist? [20:43] thomi: oh yes, thanks, I used introspection :) [20:43] cool [20:43] WebbyIT: you can also ask questions in #ubuntu-autopilot [20:44] thomi: oh, thanks! [20:49] thomi: BTW, this is what I answered for: https://code.launchpad.net/~rpadovani/ubuntu-calculator-app/1188703/+merge/174632 :) [20:52] WebbyIT: hmm, you shouldn't need to use get_root_instance like that [20:52] get_root_instance just returns the root of the tree - which you already have in 'self.app' [20:53] thomi: so if I use self.app is the same thing? [20:53] thomi: or there is a better way to do this? [20:54] WebbyIT: the thing you get back from calling 'self.launch_test_application' is the root of the tree. [20:55] WebbyIT: if you use select_single or select_many on that object, you're searching the entire tree [20:55] so yeah, you can use 'self.app' whenever you want to search the entire tree [20:55] thomi: ok, thanks, now I'm going to update my commit :) [20:56] I'd make a method called 'get_calc_label' that does 'self.app.select_single('CalcLabel', id=label_id)' behind the scenes [20:56] so you hide away the complexities of how to get that particular part of the user interface from the test code [20:56] that way, if/when the application updates it's internal structure, you on;ly need to change the test code in a single place [21:00] thomi: so, I have to do a get_calc_label and then something like self.assertThat(self.simple_page.get_calc_label(label_id), Equals(None) [21:01] WebbyIT: that sounds correct to me, yes [21:01] thomi: ok, thanks :) [21:01] WebbyIT: even better, use the eventually matcher, like this: [21:02] fn = lambda: self.simple_page.get_calc_lable(label_id) [21:02] self.assertThat(fn, Eventually(Equals(None))) [21:03] if you pass a callable object into assertThat and use the eventually matcher, the matcher knows what to do :) [21:22] thomi: thanks to you, here a better implementation :D https://code.launchpad.net/~rpadovani/ubuntu-calculator-app/1188703/+merge/174632 [21:25] thomi: to check if has been saved, can I use self.assertThat(label, Eventually(NotEquals(None)))? [21:31] WebbyIT: does the CalcLabel object name change? I'm wondering if that could be hard-coded, rather than passed in? [21:33] WebbyIT: also, I recommend you hide those drag operations behind a function [21:33] thomi: are you thinking to something like def get_object(self, object, label_id):? [21:33] WebbyIT: no, something like: [21:33] label = lambda: self.simple_page.get_calc_label() [21:34] i.e.- does 'label_id' change from one run to the next, or is it a constant? [21:34] thomi: no, it's change [21:34] thomi: is based on how many calc you have done [21:34] WebbyIT: ahh, ok then :) [21:35] WebbyIT: I'd still put those drag operations behgind a method or function though [21:35] WebbyIT: so instead of having this in your test code: "self.pointing_device.drag(tx + h / 3 , ty - w / 2, tx - h / 3, ty - w /2)" [21:35] you can have this: "self.delete_calculation()" [21:35] thomi: good idea :) [21:35] which makes your tests a lot more readable, and means you don't need to use comments [21:36] WebbyIT: in general, my rule of thumb is that if I need a comment to explain what the test does, I probably need to change things to make the code more obvious :) [21:36] thomi: cool rule :) Is better implement it in test_simple_page.py or in simple_page.py? [21:37] simple_page.py is the emulator [21:38] WebbyIT: I'd do it in the emulator, since this seems like something that will be used often [21:38] if it's something that's likely to only be used by that one test suite, I'd put it in the test suite [21:39] thomi: ok, thanks for your availability :) [21:52] WebbyIT: no worries - it's Monday for me anyway :)